- 博客(4)
- 资源 (24)
- 收藏
- 关注
原创 OpenGL学习笔记(二十)
目录深度缓冲的可视化 深度缓冲的可视化 片段着色器中,内建gl_FragCoord向量的z值包含了那个特定片段的深度值。如果我们将这个深度值输出为颜色,就可以显示场景中所有片段的深度值。我们可以根据片段的深度值返回一个颜色向量来完成这一工作: void main() { FragColor = vec4(vec3(gl_FragCoord.z), 1.0); } 如果运行程序的话,会注意到所有东西都是白色的,看起来就像所有的深度值都是最大的1.0。所以为什么没有靠近0.0(即变暗)的深度值呢? 你可能还记得
2020-08-31 16:33:31 253
原创 OpenGL学习笔记(十九)
目录深度值精度 深度值精度 深度缓冲包含了一个介于0.0和1.0之间的深度值,它将会与观察者视角所看见的场景中所有物体的z值进行比较。观察空间的z值可能是投影平截头体的近平面(Near)和远平面(Far)之间的任何值。我们需要一种方式来将这些观察空间的z值变换到[0, 1]范围之间,其中的一种方式就是将它们线性变换到[0, 1]范围之间。下面这个(线性)方程将z值变换到了0.0到1.0之间的深度值: depth=(z−near)/(far−near) 这里的near和far值就是提供给投影矩阵设置可视平截头
2020-08-31 16:32:53 178
原创 OpenGL学习笔记(十八)
目录深度测试函数 深度测试函数 OpenGL允许我们修改深度测试中使用的比较运算符。这允许我们来控制OpenGL什么时候该通过或丢弃一个片段,什么时候去更新深度缓冲。我们可以调用glDepthFunc函数来设置比较运算符(或者说深度函数(Depth Function)): glDepthFunc(GL_LESS); 这个函数接受下面的比较运算符: GL_ALWAYS 永远通过深度测试 GL_NEVER 永远不通过深度测试 GL_LESS 在片段深度值小于缓冲的深度值时通过测试 GL_EQUAL 在片段深度值
2020-08-31 16:32:18 198
原创 OpenGL学习笔记(十七)
目录深度测试 深度测试 运用了深度缓冲(Depth Buffer),或z缓冲(z-buffer),可以防止被阻挡的面渲染到其它面的前面。 深度缓冲就像颜色缓冲(Color Buffer)一样,在每个片段中储存了信息,并且和颜色缓冲有着一样的宽度和高度。深度缓冲是由窗口系统自动创建的,它会以16、24或32位float的形式储存它的深度值。在大部分的系统中,深度缓冲的精度都是24位的。 当深度测试(Depth Testing)被启用时,OpenGL会将一个片段的的深度值与深度缓冲的内容进行对比。OpenGL会
2020-08-31 16:30:08 133
Qt plugin+QGraphicsView
2017-09-06
文件读写操作demo
2017-08-08
QT+VS点击按钮弹出新窗口的实现
2017-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人