opengl - 在三角形顶点的精确坐标上渲染一条线的行为是什么
问题描述
我想在glDrawArrays(GL_LINES, 0, 6)
三角形的两个顶点之间渲染一条线叠加。如果我在几何着色器上生成那个三角形,OpenGL 是否保证 GL_LEQUAL 深度测试会起作用?另外,如果我将 glLineWidth 设置为不同于 1 的值,比如 10,那么行为是什么?opengl 是否像禁用深度测试一样渲染整条线,还是渲染半圆柱体?
解决方案
如果您要渲染两种不同类型的图元(线与三角形),则 OpenGL 的不变性规则不适用。因此,几何着色器的存在与否无关紧要。
线的宽片段的深度是线光栅化的函数。基本上,宽线在概念上是同一条线的多个渲染并排在一起。因此,一条线的“宽”段中的所有像素都将获得相同的深度值。因此,宽线的列或行都将具有相同的深度值。
推荐阅读
- python - 如何从 Python 2.7 中的字节字符串中提取混合的二进制和 ascii 值?
- javascript - 如何循环遍历 json 对象以获取我想要的数据
- c - 代码中的“UndefinedBehaviorSanitizer:DEADLYSIGNAL”错误
- node.js - `import { XXX} ` 和 import xxx 的区别
- python - 有人可以用 Python 解释这种行为吗?
- reactjs - 如何将require转换为es6语法中的导入
- c# - .NET Core Identity - 不覆盖现有文件的脚手架页面
- bots - select...Case...EndSelect 我的代码有问题
- ubuntu - 如何检查某个进程属于哪个用户?
- kotlin - 在 Ktor 应用程序模块而不是 Main 中获取命令行参数?