gpt4 book ai didi

c++ - OpenGL:在着色器中执行 TexCoord 计算,不好的做法?

转载 作者:行者123 更新时间:2023-11-28 04:32:26 25 4
gpt4 key购买 nike

我目前正在为一款游戏开发 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 将转化为性能降级。此外,正如@BDL 所指出的,您需要将数据重新发送到 GPU,这是整个过程中最糟糕的部分。

另一种情况是当您执行对所有着色器实例都相同的计算时,这将更适合在 CPU 上执行此类操作并将其作为统一上传。

关于c++ - OpenGL:在着色器中执行 TexCoord 计算,不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52511592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com