【发布时间】:2018-09-26 06:50:43
【问题描述】:
我目前正在为游戏开发 2D 图形引擎。我的着色器采用 2 个 UV 偏移浮点数并通过应用偏移量来计算 TexCoord。
这是我的顶点着色器示例:
#shader vertex
#version 330 core
layout(location = 0) in vec4 position;
layout(location = 1) in vec2 texCoord;
out vec2 v_TexCoord;
uniform float u_Offset;
uniform float v_Offset;
void main()
{
gl_Position = position;
v_TexCoord = vec2(texCoord.x + u_Offset, texCoord.y + v_Offset);
};
我是否应该担心这会导致长期的性能问题?如果我在传递最终 UV 之前执行 CPU 端的计算,会有多大的不同,是否值得优化?
【问题讨论】:
-
偏移量多久改变一次?万一它可能改变每一帧,在 CPU 端进行计算甚至可能比在着色器中慢。请注意,在 CPU 上计算最终的 tex-coord 也意味着将整个几何数据复制回 GPU 内存。