在Z-缓冲区测试之后,片段着色器会在丢弃的片段上运行吗?Z-测试是在片段着色器运行之后发生的吗?
请告诉我Z测试中一步一步发生的事件.
还有什么是早期Z-测试和如何实现它?
发布于 2017-02-15 02:55:06
当启用深度测试时,测试将在片段着色器执行后进行。这个过程相对简单(这里很清楚地说明了这一点):
早期-z丢弃是当一个光栅化器在碎片着色器运行之前丢弃一个片段,因为很明显它在早期不会通过深度测试。但是,如果发生某些事情(例如调用discard()或修改片段着色器中的片段深度),则光栅程序无法安全地做到这一点。这是一种硬件优化,除非使用OpenGL 4.2或扩展名强制执行,否则不需要进行优化。
有些东西可以防止早-z丢弃的发生。为实现这一目标:
discard()https://computergraphics.stackexchange.com/questions/4722
复制相似问题