OpenGL Shader

opengl:右手坐标系,矩阵列优先

1,创建着色器对象

glCreateShader

2,着色器对象关联着色器代码

glShaderSource

3,把着色器源代码编译成目标代码

glCompileShader

4,验证着色器是否已经编译通过

glGetShaderiv

glGetShaderInfoLog

5,创建一个着色器程序

glCreateProgram

6,把着色器链接到着色器着色器程序中

glAttachShader

7,链接着色器程序

glLinkProgram

8,验证着色器程序是否链接成功

glGetProgramiv

glGetProgramInfoLog

9,使用着色器程序进行定点或片段处理

glUseProgram

缩放

Cocos2dx中,GLProgramCache类负责初始化并且保存Shader程序,并且为需要渲染的元素提供需要的Shader程序

uniform类型

sampler2D

vec2

vec3

vec4

mat4

uniform vec2 u_XXX[25];

中间输入的变量有v_texCoord

v_fragmentColor

最终显示为gl_FragColor

采用texture2D(sampler2D, vec2)获取坐标元素值

操作:

dot()

OpenGL ES 2.0 Shader

1)加载shader

2)获取指向顶点着色器相应数据的Index

3)根据Index向顶点着色器中传递数据

着色语言是类C语言,支持类型有限

支持的类型有:

float bool int

vec2 vec3 vec4

ivec2 ivec3 ivec4

bvec2 bvec3 bvec4

mat2 mat3 mat4

采样器sampler1D sampler2D sampler3D

OpenGL渲染管线

OpenGL是个状态机

编写Shader的语言为GLSL语言

GLSL着色器代码分为两个部分:vertex shader   fragment shader

有时还会有geometry shader

gl_Color

http://blog.csdn.net/racehorse/article/details/6638455

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容