参考:http://www.gamedev.net/topic/598985-gl-normalmatrix-in-glsl-how-to-calculate/ 当用glsl传normal到fragment的时候总要用gl_Normal* gl_NormalMatrix,是为什么呢?做bumpmap的时候,binormal和tangent需不需要也乘以gl_NormalMatrix呢,如果需要把TBN转到世界空间,而不是把灯光转到TBN的话需不需要乘以gl_Norma...
1, 1, 1) - (As/kA, As/kA, As/kA, As/kA) GL_DST_ALPHA (Ad/kA, Ad/kA, Ad/kA, Ad/kA )GL_ONE_MINUS_DST_ALPHA (1, 1, 1, 1) -(Ad/kA, Ad/kA, Ad/kA, Ad/kA) GL_SRC_ALPHA_SATURATE (i,
OpenGL3.0之前(或者说,固定管道被严重BS之前),我们可以很舒心地使用gl_Vertex, gl_MultiTexcoord[], gl_Normal这类内置的attribute变量来指涉传入shader里的传统的顶点属性,但如今其实我们最好习惯于“没有你们的日子”(因为被BS了)。 第一种方法: 这种变量需要在GPU里的Shader的存储空间中有固定的位置(地址)。在...
OpenGL3.0之前(或者说,固定管道被严重BS之前),我们可以很舒心地使用gl_Vertex, gl_MultiTexcoord[], gl_Normal这类内置的attribute变量来指涉传入shader里的传统的顶点属性,但如今其实我们最好习惯于“没有你们的日子”(因为被BS了)。 这种变量需要在GPU里的Shader的存储空间中有固定的位置(地址)。在链接shader...
func——指明alpha比较方法,被允许的符合常量有GL_NEVER, GL_LESS,GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, 和 GL_ALWAYS。初始值为GL_ALWAYS。 ref——指明与引入的alpha值比较的参照值,这个值的属于区间[0, 1],初始值为0。
glBegin(GL_TRIANGLES);glVertex3f(x1,y1,z1);glVertex3f(x2,y2,z2);glVertex3f(x3,y3,z3);glEnd();Color:glColor*()Normal:glNormal*() 六.OpenGL中所支持的基本图元类型 OpenGL3.1 取消了右边三种图元类型。(其实这些完全可以用三角形代替) ...
//pname参数为GL_TEXTURE_GEN_MODE、GL_OBJECT_PLANE或GL_EYE_PLANE, //如果是GL_TEXTURE_GEN_MODE,param就是个整数,即GL_OBJECT_PLANE,GL_EYE_PLANE,GL_SPHERE_MAP,GL_REFLECTION,GL_NORMAL_MAP之一; //如果pname取其他可能的值,param就是指向数组的指针 1. 2. 3. 4. 5.实例...
使用两个属性,分别是GLT_ATTRIBUTE_VERTEX和GLT_ATTRIBUTE_NORMAL。 /* GLT_SHADER_DEFAULT_LIGHT:存储着色器类型 -- 默认光源着色器 GLfloat mvMatrix[16]:模型视图矩阵 GLfloat pMatrix[16]:投影矩阵 GLfloat vColor[4]:颜色,RGBA */GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix...
Normal: glNormal*() // 法线类函数 OpenGL中所支持的基本图元类型 画一个红色的三角形 glBegin(GL_TRIANGLES);glColor3f(1.0,0.0,0.0);glVertex3f(x0,y0,z0);glVertex3f(x1,y1,z1);glVertex3f(x2,y2,z2);glEnd(); 为每个顶点指定不同的颜色 ...