OpenGL:将Z深度设置为统一深度,而不是冗余存储在顶点内
OpenGL: Setting Z depth as a uniform vs. stored redundantly within vertices
OpenGL中的2D渲染引擎通常会使用四边形渲染2D图像,四边形在相同的Z深度上各包含4个顶点。对于纹理坐标,这些顶点通常由(X,Y,Z)和(U,V)组成。
然而,由于任何给定图像的所有4个顶点都将始终占据相同的深度,因此每个垂直线只上传(X、Y、U、V)并在着色器中将其Z深度设置为单独的统一体会更好吗?或者,在实践中,每4个顶点更新一个统一体的成本会太高吗?
你绝对可以随心所欲。它不会产生任何可检测的差异——当您将以数百万个片段着色器实例的顺序运行相同的4个顶点着色器执行时,您对4个顶点所做的任何更改实际上都不可能对性能产生任何影响。
就我个人而言,我根本不为四边形使用属性——我使用顶点ID在4个固定值之间切换,这使我根本不必使用缓冲区。
相关文章:
- 如何擦除冗余输入?
- 使用提升几何缓冲区缩放多边形时的冗余折点
- 我应该担心冗余声明吗?
- Qt的slot(?)将冗余命名空间插入连接
- 方法冗余移动调用的移动语义
- 使用 llvm 和本地值编号算法擦除冗余表达式
- 优化堆上创建的冗余变量
- 如何消除访客模式冗余?
- 表达式模板需要冗余重载
- C++,处理多个构造函数重载和冗余代码
- 使用模板基类消除工厂类派生类冗余的干净方法
- 连接两个文件时如何避免冗余尾随换行符?
- CMake:修改共享库时的冗余链接
- 提升精神 X3:"属性没有预期的大小"冗余
- 如何简化此冗余C++代码?
- 是``if`语句''在modulo之前和分配操作之前的冗余
- 使用最终类说明符时,最终函数说明符是否冗余?
- 简化冗余std :: array初始化,当时没有constexpr构造函数
- 尝试使用 OpenMP 并行化递归函数的冗余计算
- OpenGL:将Z深度设置为统一深度,而不是冗余存储在顶点内