【发布时间】:2012-04-02 23:51:12
【问题描述】:
我对 WebGL 不太熟悉(猜想同样的问题会在 OpenGL 中翻译)。我正在使用顶点和片段着色器渲染我的对象。基本上所有着色器所做的就是获取顶点的输入颜色,然后将其原封不动地传递到片段,所以步骤:
In vertex shader, amongst other things:
attribute vec4 aVertexColor;
varying vec4 vColor;
.................
vColor = aVertexColor;
..................
In shader color:
varying vec4 vColor;
...........
gl_FragColor = vColor;
现在这工作正常。但是,从我可以看到片段的插值默认为线性,我想将其更改为最近的。现在我正在尝试做的是:
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
但这似乎没有任何效果,即使我用 gl.LINEAR 更改 gl.NEAREST ,据我所知,这并没有完全改变。着色器是否以某种方式覆盖了一些东西,这就是为什么我没有得到想要的效果?
现在我已经附上了我得到的结果。现在我的目标是让三角形位于 3 个不同颜色的区域(与顶点相同)。所以在我的情况下,我的目标是~1.3 蓝色,~1.3 绿色,~1.3 红色,没有任何中间颜色。有什么提示吗?
这是我想要得到的:
【问题讨论】: