【发布时间】:2021-01-03 01:06:41
【问题描述】:
我的跨平台图形程序使用以 GLSL 1.40 版编写的着色器。 GLSL 1.40 的特性完全满足了应用程序的需求。事实上,非常基本的着色器用于渲染纹理:
顶点着色器:
attribute vec2 position;
attribute vec2 textureCoordinates;
uniform mat3 transformationProjectionMatrix;
varying vec2 interpolatedTextureCoordinates;
void main() {
interpolatedTextureCoordinates = textureCoordinates;
gl_Position.xywz = vec4(transformationProjectionMatrix * vec3(position, 1.0), 0.0);
}
片段着色器:
precision mediump float;
uniform vec4 color;
uniform sampler2D textureData;
varying vec2 interpolatedTextureCoordinates;
void main() {
gl_FragColor.rgba = color * texture(textureData, interpolatedTextureCoordinates).bgra;
}
在程序中为不同版本的 GLSL 设置多个着色器是否有意义,这些着色器将根据特定硬件的支持进行选择? 使用更现代的着色器语言版本是否可以获得加速?
【问题讨论】: