小编Mik*_*ike的帖子

在顶点着色器中声明常量而不是文字.标准做法还是不必要的严谨?

顶点着色器中,当然允许有限量的统一存储,并且我理解不同的系统可以在编译代码方面以略微不同的方式实现GLSL.我听说过建议使用常量而不是在顶点着色器代码中写出文字.

例如,下列代码可推测导致可均匀存储的降低.(我不太明白.)

示例1:使用文字

vec4 myVector = vec4(1.0, 0.0, 0.0, 1.0);
Run Code Online (Sandbox Code Playgroud)

据我了解,每次使用1.00.0占用一定数量的统一存储空间都有可能.因此,建议将之前的代码转换为如下代码:

示例2:使用常量而不是文字

const float zero = 0.0;
const float one = 1.0;

vec4 myVector = vec4(one, zero, zero, one);
Run Code Online (Sandbox Code Playgroud)

有谁理解背后发生的争论?我没有任何代码问题,我只是想正确理解这些东西,以便将来我没有问题.

我的正式问题如下:特别是对于使用OpenGL ES 2.0iOS平台,最好的做法是用文字(例子1)或用常量(例子2)写出东西.我应该每次都花时间用常量写出来的东西,还是应该写出文字,如果顶点着色器无法正确编译,我应该只使用常量?

谢谢!

objective-c ios opengl-es-2.0

5
推荐指数
1
解决办法
524
查看次数

标签 统计

ios ×1

objective-c ×1

opengl-es-2.0 ×1