学习LearnOpenGL时记录的一些简单的笔记,教程网址为LearOpenGL CN
面剔除
事先定义顶点顺序,只适用于封闭图形
正向面:从观察方向看,顶点顺序为逆时针
背向面:从观察方向看,顶点顺序为逆时针
glEnable(GL_CULL_FACE) // 开启面剔除
glCullFace(GL_BACK) // 剔除背向面
glFrontFace(GL_CCW) // 规定逆时针为正向面
帧缓冲
包括颜色缓冲、深度缓冲、模板缓冲等,默认帧缓冲在创建窗口时生成和配置。通过自定义帧缓冲,就可以实现延迟渲染了。
glGenFramebuffers(1, &fbo)
glBindFramebuffer(GL_FRAMEBUFFER, fbo)
立方体贴图
含有6个纹理,通过方向向量来采样
天空盒随着摄像机移动,可以通过消除观察矩阵的位移部分来实现,把4×4矩阵转成3×3矩阵,再转成4×4矩阵即可
最后渲染天空盒,让它的深度值为1(最大),这样就在所有可见物体的后面,天空盒只是一个1×1×1的小立方体
几何着色器
输入一个图元的一组顶点,对其进行变换