我正在尝试使用宽度>制作宽线10px使用此主题作为示例https://forum.libcinder.org/topic/smooth-thick-lines-using-geometry-shader。 但我遇到了一个问题:琐碎的视角划分
gl_Position = vec4(gl_PositionIn[0].xy/gl_PositionIn[0].w + width, 0, 1);
给了我近平面前的椎体(w <0)的不良行为。
是否可以为这些顶点计算正确的屏幕空间坐标? 或者,坐标可以计算为
float w = 1.0;
if(gl_PositionIn[0].w < 0)
w = - 1.0;
gl_Position = vec4(gl_PositionIn[0].xy/abs(w) + width, 0, w);
然而,它使线条视角,但我希望线条恒定宽。它可以帮助禁用gl_Position的透视插值吗?是否有某种方法可以在#version 120着色器中禁用(或补偿)它?