1

据我所知,绘制一个你使用的点

gl_FragColor =  texture2D(Texture, gl_PointCoord);

并映射一个三角形

gl_FragColor =  texture2D(Texture, TexCoorFromVertexShader);

因此,如果我想对我们俩-点和三角形,我该如何处理。到目前为止,我正在考虑拥有多个程序并根据我要绘制的内容来切换它们,但这似乎是很多开销。或者事情就是这样运作的?

4

1 回答 1

1

你的假设是正确的,单独的着色器是要走的路。if单个 GLSL 程序中的多个语句可能非常昂贵。在您的情况下,我敢打赌它们是真正的性能打击,因为查找将按顶点完成。

在此处阅读以获取更多信息:着色器分支问题

于 2013-02-19T13:40:05.067 回答