openGL ES 2.0 fragment shader and framebuffer
来源:互联网 发布:网络机房维保 编辑:程序博客网 时间:2024/05/01 00:49
chapter 10
1. 内建变量:
gl_FragColor 用于输出,可以不写入该变量,比如你只想修改depth buffer
gl_FragCoord 只读变量,值 (x, y, z, 1/w)
gl_FrontFacing 内建只读变量,如果该fragment为三角形正面的一部分,该值 为真
gl_PointCoord:只读变量,值 为point sprite的纹理坐标
2. 内建常量:
const mediump int gl_MaxTextureImageUnits = 8;
系统支持的最大纹理单元个数
const mediump int gl_MaxFragmentUniformVectors = 16;
最大vec4 为单位的uniform变量存储大小
const mediump int gl_MaxDrawBuffers = 1;
最大可写入buffers,目前只支持1个
==========================
chapter 11
1.framebuffer and renderbuffer区别
render buffer 是一个实实在在的buffer,申请后,可以用来作为color buffer, depth buffer, stencil buffer.
framebuffer 是clolor buffer, depth buffer, stencial buffer 指针的集合,The only 2D image that can be attached to the
stencil attachment point of an FBO is a renderbuffer object that stores
stencil values.
2. framebuffer中的color buffer到底是用texture还是用render buffer?
推荐使用render buffer, 理由如下:1.某些格式不能保存为纹理对象,只能保存为render buffer。2.如果照片不是用作纹理, 保存为render buffer可以加快处理速度
3. Framebuffer Objects 和 EGL surface的区别:1. 像素所有者测试,frame buffer永远返回真2,系统支持双buffer的 suface,不过只支持单buffer的 frame buffer 3.stencil 和 depth buffer可以在多个frame buffer中共享,而 EGL surface不行。 4 系统提供的EGL surface支持multisample buffers(?)
4. 产生一个render buffer, frame buffer
void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
void glGenFramebuffers(GLsizei n, GLuint *ids)
0 号 frame buffer由系统保留作系统frame buffer,即上面说的EGL surface
5. 如何使用render buffer
.先绑定void glBindRenderbuffer(GLenum target, GLuint renderbuffer)
.glRenderbufferStorage指定格式和大小
如果render buffer被attache to frame buffer,可以在attach 之后指定render buffer的格式
6. 如何使用frame buffer
.先绑定void glBindFramebuffer(GLenum target, GLuint framebuffer),同上,绑定的framebuffer可以没有生成,只要是未使用的frame buffer就可以,绑定成功后,成为渲染上下文的当前framebuffer。下面几个状态关联到一个frame buffer
Color attachment point
Depth attachment point
Stencil attachment point
Framebuffer completeness status
.检测framebuffer 是否complete glCheckFramebufferStatus
7. 删除一个render buffer时,如果该buffer 绑定在一个framebuffer上,并且 该 framebuffer是当前绑定buffer,则系统会自动datach 该render buffer,如果framebuffer 不是当前绑定buffer,则用户负责datach 该framebuffer
- openGL ES 2.0 fragment shader and framebuffer
- OpenGL ES 2.0 - Shader
- OpenGL ES 2.0 Shader
- OpenGL ES 2.0 Shader
- OpenGL ES 2.0 Shader
- OpenGL ES 2.0——片段着色器Fragment Shader
- OpenGL ES 2.0 Shader总结
- 【OpenGL】OpenGL ES 2.0 Shader相关介绍
- openGL ES 2.0 笔记 vertex shader
- 15、OpenGL ES 2.0 Shader相关介绍
- OpenGL ES 2.0 Shader相关介绍
- OpenGL ES 2.0 Shader相关介绍
- OpenGL ES 2.0 Shader相关介绍
- android OpenGL ES 2.0 Shader相关介绍
- OpenGL ES 2.0 Shader相关介绍
- OpenGL ES 2.0 Shader相关介绍
- OpenGL ES 2.0 Shader相关介绍
- 【转】OpenGL ES 2.0 Shader相关介绍
- SQLite VC环境搭建
- C# 数据库连接
- 由Cstring转LPWSTR而引发的一场血案
- 程序员是这样炼成的(11)- 你有投资潜力吗?
- disable touchepad while typing under ubuntu/linux
- openGL ES 2.0 fragment shader and framebuffer
- 查看SQL2005的解密存储过程
- JS1.8.5新增特性研究(一) 之 Object.create
- RFC SDK指南 连接到外部RFC系统
- IE里z-index的另一个BUG
- Kurskal算法生成最小生成树MST
- Object-C 正确使用内存的几条法则
- 善于总结
- 如梦令-找工作