我有一个健康栏,它是两个GL_QUADS,在同一个z坐标上呈现,一个是红色,一个是绿色(绿色是剩余的健康部分。)但是,我现在才意识到,如果两个都只有1个GL_QUAD可见呈现在相同的位置。有没有办法改变单个GL_QUAD的一部分的颜色?
答案 0 :(得分:1)
是一种更改单个GL_QUAD
着色的方法,尽管您不想这样做。它将涉及通过改变纹理坐标来在其上滑动纹理贴图。不太聪明。
你想要的是两个四边形,其尺寸取决于健康状况。您将需要使用线性插值(LERP)来查找一个四边形和一个四边形开始的边缘。
这是数学伪代码,假设您的健康栏是水平的
Quad_1.x start = 0
Quad_1.x end = X%
Quad_2.x start = X%
Quad_2.x end = 1
Quad_1
最终占据该区域的X%,Quad_2
最终占据该区域的(1-X)%。它们都将占据该区域的100%,您可以轻松地将其缩放到任何尺寸。只要确保你没有负面的健康状况或超过100%的健康状况弄乱你的图画。
注意:GL_QUADS
已旧并且已弃用。使用GL_TRIANGLES
或GL_TRIANGLE_STRIP
如果你效率(眨眼)。
替代方法: