我正在尝试用低地形制作一个简单的WebGL2场景。当我让着色器在三种顶点颜色之间插值时,一切都按预期运行。但只要我添加平的
输入整件事中断,每个三角形开始“闪烁”。
顶点着色器
#版本300 es精密介质浮子;在vec3 in_vertexPosition中;vec3颜色;统一mat4 u_projectionMatrix;统一mat4 u_viewMatrix;展开vec3 pass_fragColor;空main(){gl_Position=u_projectionMatrix*u_viewMatrix*vec4(in_vertexPosition,1.0);pass_fragColor=in_color;}
片段着色器
#版本300 es精密介质浮子;vec3 pass_fragColor中的平面;输出vec4 out_fragColor;空main(){out_fragColor=vec4(pass_fragColor,1.0);}
顶点、索引和颜色:
常量顶点=[0、0、0,//左下角1、0、0、//右下角1、1、0、//右上角0、1、0//左上];常量颜色=[0.3、0.3、0.8,//左下角0.3、0.3、0.6,//右下角0.3、0.3、0.4,//右上角0.3、0.3、0.2//左上角];常数指数=[0、1、3、//bl、br、tl3、1、2//tl、br、tr];
我尝试了不同的方法来使用索引和其他类型的顶点,但似乎没有什么效果。使用VBO可以获得更好的结构。
我确实注意到,当三角形中的所有三个顶点都具有相同的颜色时,闪烁明显停止。我读到的是平的
type使三角形中的所有三个顶点都使用激发顶点的颜色(默认情况下,三角形中的最后一个顶点)。不幸的是,这使得三角形“闪烁”,我不明白为什么。
使用我的NVIDIA GTX 1060显卡。
GIF显示“闪烁”:https://gyazo.com/7d3ba42afe1ba1458cd2820729490e47