
Shader编程
无_空
每天改变一点,做回真实的自己
展开
-
OpenGL应用开发---纹理
一、纹理的作用在进行模型渲染的时候为了使模型看起来更加的逼真,细节更加的真实我们使用纹理贴在物体的表面。使用纹理我们可以不用再为每个顶点指定颜色,通过纹理映射到顶点上然后对纹理进行操作,和配色。然模型显得更加的漂亮、真实。二、纹理坐标为了能够使纹理能够正确的映射到模型的每一个顶点上,在我们定义模型坐标时,额外还要指定每个顶点各自对应纹理坐标,纹理坐标用于指定当前顶点对应的是纹理的那个部分。一张纹理是原创 2016-12-19 01:47:24 · 1314 阅读 · 0 评论 -
OpenGL应用开发----向量
一、向量简介向量是一种具有大小和方向的数学列表、向量的大小代表了向量本身的长度,而向量的方向描述了指向的方位。通常向量使用一个带有箭头的线段来表示一个向量,线段的长度则是向量的大小,箭头则表示向量的方向因此向量可以用来表示位移、速度、角色的观察方向、光线传播方向、光反射方向等 二、向量的表示在数学书写上通过使用一个方括号括起来表示一个向量,而在程序中通常使用一个数组来表示一个向量三、向量原创 2016-08-14 14:16:16 · 872 阅读 · 0 评论 -
OpenGL应用开发---Shader基础
一、着色器代码规范我们在编写一个着色器是首先需要声明的就是使用的着色器代码的版本号,根据不同的版本号着色器编译器会更具不同的方式来解析着色器的语法#version 330 core在这其中 #version 是一个宏定义表示当前所用的版本号,在后面330表示使用的是OpenGL3.3版本的着色器代码,core表示的是使用的OpenGL3.3核心版本的的着色器代码不会向下兼容。你也可以忽略layout原创 2016-12-17 00:04:34 · 655 阅读 · 0 评论 -
OpenGL应用开发---渲染管线
一、图形渲染与渲染流水线在计算机中的图形渲染,给定一个视点,和需要绘制的图形的几何顶点的几何,然后通过一系列的数学运算,然后转换为计算机可以识别的数据最后显示在二维的屏幕上。在我们生产手机的工厂中就有许多的流水线,流水线的每个阶段都执行不同的功能,而在计算机图形中我们也是将图形的渲染分为几个大的阶段,而每个大的阶段中又有几个小的阶段,在大的阶段中我们通过把渲染管线分为三个阶段 1、应用程原创 2016-11-07 01:13:47 · 954 阅读 · 0 评论 -
OpenGL应用开发----矩阵
一、矩阵简介 矩阵是一种具有m行n列的多维数组,矩阵的行和列指定了矩阵的维度,矩阵中的每个原始通过行和列下标来进行元素的访问二、矩阵的记法三、特殊矩阵1、方阵 方阵是一种行和列相同的矩阵。 方阵的对角元素是指行和列下标都相同的元素,其他都是非对角元素 2、对角矩阵 当除开对角元素外其他元素都是0则称这种矩阵为对角矩阵3、单位矩阵原创 2016-08-22 09:58:15 · 1292 阅读 · 0 评论 -
OpenGL应用开发---基础变换
一、齐次坐标系向量的w分量也叫齐次坐标。想要从齐次向量得到3D向量,我们可以把x、y和z坐标分别除以w坐标。我们通常不会注意这个问题,因为w分量通常是1.0。使用齐次坐标有几点好处:它允许我们在3D向量上进行位移(如果没有w分量我们是不能位移向量的)。如果一个向量的齐次坐标是0,这个坐标就是方向向量(Direction Vector),因为w坐标是0,这个向量就不能位移(译注:这也就是我们说的不能位原创 2016-12-21 00:57:32 · 722 阅读 · 0 评论 -
OpenGL应用开发---图形绘制
一、OpenGL中的一些基本概念1、顶点缓冲对象(VBO) VBO的作用就是管理GPU中的储存数据的内存块,每当我们在GPU中分配一块内存并向GPU中发送一个数据块时,就可以创建一个顶点缓冲对象来管理它,这样我们就可以针对不同的数据块使用不同的VBO来进行数据的操作。使用这些缓冲对象的好处是我们可以一次性的发送一大批数据到显卡上,而不是每个顶点发送一次。从CPU把数据发送到显卡相对较慢,所以只要可能原创 2016-12-10 02:05:53 · 720 阅读 · 0 评论 -
OpenGL应用开发---材质
一、材质是什么在现实世界中每一个物体都有颜色、以及物体表面看起来像什么质地、以及对环境中的光照进行反射和折射等,在渲染系统中材质则是记录物体的色彩、纹理、光滑度、透明度、反射率、折射率、发光度等属性等然后将材质附加到模型的表面使模型开起来更加的象现实世界中的一个真实的物体。在顶点着色器阶段我们就会记录物体与光照的相互作用,然后将这些计算结果保存在材质中,然后将材质传递到渲染其中进行渲染最后得到我们想原创 2016-12-16 01:28:33 · 469 阅读 · 0 评论 -
3D数学基础----四元素
二、四元数1、四元素的表示 四元数使用一个三维向量来表示旋转的坐标轴和一个旋转角度。其物理意义为 :围绕一个通过坐标系原点的坐标轴旋转一定的角度四元数的表示方法 : w表示旋转量,其余 的表示坐标轴。2、四元素中的旋转角与旋转轴在使用矩阵进行我们使用n表示旋转轴,θ表示旋转角度,同样我们不必关系旋转轴n的长度,把他当做一个单位向量来处理,在四元数中也是储存了旋转轴和旋转角度,但储存的对应方式不同原创 2016-10-14 20:28:49 · 2849 阅读 · 0 评论 -
3D数学基础----欧拉角
旋转是对物体的一种操作,而朝向则是物体的一种状态,在对物体进行旋转时就会改变物体的朝向状态。一、欧拉角我们可以很快的构建一个旋转矩阵来对物体进行旋转,但在进行矩阵的构建时难度却很大,我们需要获取旋转轴的朝向等是非常困难的。欧拉角的核心思想是将需要旋转的角度分为绕坐标轴的三个坐标轴旋转的三个角度的组合。是一由单个单独的旋转矩阵组合起来的旋转矩阵。欧拉角的三个轴旋转顺序通常规定为: 1、先绕headi原创 2016-09-10 23:39:48 · 938 阅读 · 0 评论 -
OpenGL应用开发----基础数学
一、对数对数定义 :以a为底x为真数,其中x就是a的n次方。 对数的基本运算 : 特殊的对数 : 以e为底,其中e=2.781…,这个对数称为自然数,自然数记为: 二、二元方程通常将一个二元方程记作:求解一个二元方程与x轴的交点值:1、将方程两边同时除A此时的方程变为: X就代表曲线与X轴的交点坐标。2、判断曲线与x原创 2016-08-23 21:09:50 · 558 阅读 · 0 评论