首页 > 解决方案 > 在三角形顶点的精确坐标上渲染一条线的行为是什么

问题描述

我想在glDrawArrays(GL_LINES, 0, 6)三角形的两个顶点之间渲染一条线叠加。如果我在几何着色器上生成那个三角形,OpenGL 是否保证 GL_LEQUAL 深度测试会起作用?另外,如果我将 glLineWidth 设置为不同于 1 的值,比如 10,那么行为是什么?opengl 是否像禁用深度测试一样渲染整条线,还是渲染半圆柱体?

标签: opengl

解决方案


如果您要渲染两种不同类型的图元(线与三角形),则 OpenGL 的不变性规则不适用。因此,几何着色器的存在与否无关紧要。

线的宽片段的深度是线光栅化的函数。基本上,宽线在概念上是同一条线的多个渲染并排在一起。因此,一条线的“宽”段中的所有像素都将获得相同的深度值。因此,宽线的列或行都将具有相同的深度值。


推荐阅读