我在Android中使用OpengGL ES 2.0。我已经给出了这些顶点,我曾经通过用线连接来绘制形状。现在我需要单独更改每条线的颜色。我尝试通过顶点着色器将每个顶点的颜色矩阵传递给片段着色器,但颜色得到插值(实际上这是有道理的,因为我给两个顶点赋予了不同的颜色)。我做了一些谷歌搜索,发现无法在OpengGL ES中禁用glSmoothShader。
有没有办法在没有颜色插值的情况下为这些线着色?
或者有没有办法使用多个三角形在两个顶点之间绘制一条线,这样我就可以为每个三角形平面着色。
答案 0 :(得分:1)
一种解决方案是复制顶点。也就是说,如果您当前有一个顶点V连接到三条线(作为示例),则创建具有相同位置但颜色不同的三个顶点V1,V2和V3,其中每个顶点具有相应线的颜色。因此,如果第1行为红色,第2行为蓝色,第3行为绿色,则V1为红色,V2为蓝色,V3为绿色。
答案 1 :(得分:1)
基本上,唯一的方法是使用三角形绘制,而不是使用三角形条带或风扇。并且对于每组三个顶点来构成单个三角形使用相同的颜色。那将删除阴影效果导致相同颜色之间的插值是相同的颜色。更复杂的解释:http://ruh.li/GraphicsShading.html