b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

opengl超级宝典_opengl超级宝典第八版_opengl超级宝典第七版(2)

电脑杂谈  发布时间:2017-01-10 17:27:52  来源:网络整理

顶点数据和Shader的绑定:有16种类型,编号为0-15.预定义类型一般为GLT_ATTRIBUTE_VERTEX...(GLT_ATTRIBUTE_XXX)

Uniform的设置:GLShaderManager::UseStockShader(GLenum shader,....)

后面带的参数就是shader需要的uniform

5、基于GLTools的图元绘制

使用GLTools中的GLBatch类可以进行图元的绘制,绘制前需要指定绘制的图元类型,顶点数和顶点数据

GLBatch::Begin(GLenum primitive,GLuint nVerts,GLuint nTextureUnits = 0)

可选的Private包括GL_POINTS,GL_LINES,GL_LINE_STRIP,GL_LINE_LOOP,GL_TRIANGLES,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN.

需要特别解释的是GL_LINE_STRIP和GL_LINE_LOOP,一个是线带,一个是线环,一个没有闭合一个有闭合

GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN,一个是三角带,一个是三角扇,后者可以连成扇形甚至是圆形

通过CopyXXXData复制顶点各种属性数据之后,调用指定的着色器,调用Batch.Draw便可以绘制图元

技术分享

6、背面剔除和深度缓冲

1、不开启背面剔除和深度测试的情况下,出现三角形重叠的时候,很难分出哪些三角形应该在前面哪些在后面,绘制顺序一团糟

技术分享

2、一种优化的测试方法:先渲染远的三角形再渲染近的三角形。

缺点:需要对所有三角形进行排序,消耗大,而且重叠的像素需要进行两次写操作,在存储中进行写操作会是速度变慢

3、开启背面剔除:glEnable(GL_CULL_FACE)默认剔除背面,可以通过glCullFace(mode)来修改剔除正面还是背面。

优点:在渲染的图元装配阶段就抛弃一些三角形,提高性能

缺点:当发生自身重叠的情况,正常的渲染顺序还是会被打乱

注:当我们旋转的时候,原来的背面会变成正面,正面会变成正面,这应该是通过跟摄像机的法线判断来确定三角形的正反面的,也就是说不是一定顺时针环绕的背面永远看不到。()

技术分享

4、开启深度测试:glEnable(GL_DEPTH_TEST)开启深度测试,当然在开启之前,应该初始化一个深度缓冲区glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH);

优点:深度测试将消除那些应该被以存在的像素覆盖的像素,解决背面剔除的问题

opengl超级宝典第七版_opengl超级宝典第八版_opengl超级宝典

缺点:需要更多的内存开销

7、描边的效果:

开启深度测试之后,如果要描边或做贴花的效果,可能会出现Z轴冲突的现象,通过多边形偏移可以解决这个问题

glPolygonOffset(-1.0f,-1.0f)

glEnable(GL_POLYGON_OFFSET_LINE)

8、裁剪:确定最终渲染到窗口的视口大小

开启:glEnable(GL_SCISSOR_TEST)

设置:glScissor(x,y,width,height)

9、混合:Alpha显示以及抗齿锯支持的条件,只有开启混合才会有半透明和抗齿锯的效果

开启:glEnable(GL_BLEND)

常用的颜色混合:glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA):源颜色与自己身的alpha相乘,加上目标颜色乘以1-源颜色的Alplha。源颜色的Alpha越高,添加的源颜色成分就越多,目标颜色保留的成分就越少


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25410-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...