
OpenGL
在下二狗
一个菜鸡但还没有丢掉梦想的大学生/
展开
-
高级OpenGL-帧缓冲
OpenGL-framebuffers 1.创建一个帧缓冲 到目前为止,我们使用了用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲、用于丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲。我们目前的工作都是在默认帧缓冲的渲染缓冲上进行,GLFW为我们提供的,但是opengl还允许我们定义自己的缓冲,帮助我们来实现更多的效果。 同其他对象一样,我们通过glGenFramebuffers来创建帧缓...原创 2020-02-25 22:49:15 · 561 阅读 · 0 评论 -
高级OpenGL-面剔除
OpenGL-faceculling 1.环绕顺序 有时候我们需要将背对我们的面剔除,因为计算这些面然后在深度测试中丢弃,开销会很大。所以我们需要知道哪些面试背对我们的,然后将他们提前丢弃。OpenGL所采用的方法就是根据顶点的环绕顺序判断法向量方向。 通过右手来判断,四指遵循顶点环绕顺序,大拇指所指的就是面的朝向。 2.面剔除 和前面的例子一样,面剔除默认也是关闭的,需要可爱的我们手动来打开 g...原创 2020-02-21 10:10:17 · 314 阅读 · 0 评论 -
高级OpenGL-混合
OpenGL-Blending 1.混合 混合这个概念对于我们来讲比较好理解,常见的玻璃,常用的png图片中的A通道代表的就是alpha值。 我们与混合的第一次接触应该是在opengl入门里的纹理一章节,我们在一个立方体上采用了两个texture,并通过↑和↓键,改变两个texture的混合比例。在那节教程中,导入texture时我们也发现普通的jpg图片采用的是GL_RGB三通道24位颜色数据,...原创 2020-02-21 02:58:35 · 388 阅读 · 0 评论 -
高级OpenGL-模板测试
OpenGL-Stenciltest 1. 模板测试 模板缓冲在片段着色器处理完之后开始执行,被保留的片段则会继续进入深度测试。GLFW会自动帮助我们创建模板缓冲,但是我们应当关注窗口库的文档,检查它是否会帮助我们创建模板缓冲。 模板缓冲允许我们将模板缓冲设定成为一个特定的值,在渲染的时候修改模板缓冲的内容。在每一个渲染迭代中,读取这些值并决定丢弃还是保留某个片段。 形象点来讲的话,模板缓冲就像是...原创 2020-02-20 10:19:29 · 365 阅读 · 0 评论 -
高级OpenGL-深度测试
高级OpenGL-深度测试笔记 1. 深度测试 深度测试被启用时,将该片段的深度值与深度缓冲中的深度值比较,如果测试通过则更新缓冲中的深度值。深度测试在片段着色器运行后,模板测试之后进行。并且仅对屏幕空间中的片段进行深度测试。 片段着色器里gl_FragCoord中的x和y分量代表片段在屏幕中的坐标,z分量就是与深度缓冲值对比的深度值。 深度测试在OpengGL中默认是禁用的,因此需要手动启用它 ...原创 2020-02-19 01:26:02 · 530 阅读 · 0 评论