
open GL
文章平均质量分 66
春天里晴朗的天空
这个作者很懒,什么都没留下…
展开
-
3d空间坐标变换(3d math primer for graphics and game developent Chapter 7 )
3d向量可以乘以一个3*3的MATRICS 来实现变换,这种变换不可以改变坐标原点,但可以改变一个物体的形状,长度,角度,面积,体积。下面几个是MATRICS的属性: MATRICS的每一行可以解释成新坐标系统中的X,Y,Z向量坐标。MATRICS乘以0向量,仍然为0,所以通过乘以一个MATRICS 来实现的变换不会改变原点。原创 2010-02-22 16:19:00 · 686 阅读 · 0 评论 -
openGL ES 2.0 fragment shader and framebuffer
chapter 10 1. 内建变量:gl_FragColor 用于输出,可以不写入该变量,比如你只想修改depth buffergl_FragCoord 只读变量,值 (x, y, z, 1/w)gl_FrontFacing 内建只读变量,如果该fragment为三角形正面的一部分,该值 为真gl_PointCoord:只读变量,值 为point sprite的纹理坐原创 2011-06-15 00:14:00 · 5202 阅读 · 2 评论 -
openGL ES 2.0 笔记 6
精度声明<br />这个是GLSL 在ES中新引入的<br /> <br />两种声明方式,一种是在每一个变量前面声明,如下:<br /> <br />highp vec4 position;<br />varying lowp vec4 color;<br />mediump float specularExp;<br /> <br /> <br />另一种是在shader开始之前声明,如下:<br /> <br /> <br />precision highp float;<br />precision原创 2011-04-18 02:35:00 · 4913 阅读 · 1 评论 -
openGL ES 2.0 笔记1
<br /> <br />1.<br /><pre lang="c"> void glAttachShader(GLuint program, GLuint shader) program handle to the program object shader handle to the shader object to attach to the program </pre> <br />调用glattachshader时,shader可以还没有编译,甚至可以还没有绑定源码。<br /> <br原创 2011-04-17 00:10:00 · 1271 阅读 · 0 评论 -
openGL ES 2.0 笔记 5
预处理指令<br /> <br />和C语言一样,有如下预处理指令<br />#define #undef #if #ifdef #ifndef #else #elif #endif <br /> <br />下面是一些预处理宏,在编译是被替换为适当的值<br />__LINE__ // Replaced with the current line number in a shader __FILE__ // Always 0 in OpenGL ES 2.0 __VERSION__ //原创 2011-04-18 02:05:00 · 1368 阅读 · 0 评论 -
openGL ES 2.0 笔记 4
循环语句<br />openGL es2.0 支持类似下面的循环语句:<br />for(int i = 0; i < 3; i++) { sum += i; } <br /> <br />有几点需要特别注意:只能有一个循环控制变量,并且该变量只能通过下面方式变化:(i++, i--, i+=constant, i-=constant)循环结束判断语句必须是循环控制变量和一个常量的比较不能在循环体内改变循环控制变量<br />下面语句是错误的:<br />float myArr[4]; for(in原创 2011-04-18 00:10:00 · 830 阅读 · 0 评论 -
openGL ES 2.0 笔记 2
变量初始化<br />基本数据类型(包括float, int bool)和C语言一样,就不介绍了<br />向量类型数据结构初始化,遵循下面规则:如果向量的构造函数里只有一个标量值,那么这个标量将用于该向量所有的字段如果构造函数是标量和向量的混合体,那么这个向量各字段值从左到右依次取,如果是多个标量的话,标量个数至少要有向量的维数那么多。举例如下:<br />vec4 myVec4 = vec4(1.0); // myVec4 = {1.0, 1.0, 1.0, 1.0} vec3 myVec3 = ve原创 2011-04-17 23:20:00 · 1023 阅读 · 0 评论 -
openGL ES 2.0 笔记 vertex shader
1. 内建变量gl_Position,gl_PointSize, gl_FrontFacing, 2. 内建uniform gl_DepthRange 3. built-in constants : gl_MaxVertexAttribsgl_MaxVertexUniformVectors vertex shader中最大以vec4为计数单位的uniform变量个数,原创 2011-06-07 10:43:00 · 2006 阅读 · 0 评论 -
openGL ES 2.0 Primitive Assembly and Rasterization
<br /><br />1. attribute不可以定义为结构和数组,只支持如下数据类型:<br />float, vec2,<br />vec3, vec4, mat2, mat3, and mat4.<br /> <br />2. 除了用客户端数组指定顶点数据,可以用VBO指定,如何确定哪个VBO对应哪个attribute,书中没有给出明确文字<br />应该是执行glBindBuffer(GL_ARRAY_BUFFER, vboIds[0]);绑定到一个buffer 数组时,执行glEnableVe原创 2011-05-31 22:40:00 · 2982 阅读 · 0 评论 -
openGL ES 2.0 笔记 7 Vertex Attribute
<br /><h1>顶点属性</h1><br /> <br />用于Vertex shader, GLES至少支持8个Vertex Attribute变量。这些变量可以有以下类型:<br /> <br />1. 常量式顶点属性<br /> <br />比如顶点颜色都一样,就可以用一个常量vertex attribute来表示。通过下面几个函数来指定值,目前只支持输入float值,因为这个最常用,其它数据类型被忽略。<br /> <br />void glVertexAttrib1f(GLuint index原创 2011-04-29 00:18:00 · 2258 阅读 · 0 评论