您填充值的变量是否在等号右侧指示您正在使用的精度?
例如,这里的精度说明符是否有任何不同的含义:
gl_FragColor = lowp vec4(1);
这是另一个例子:
lowp float floaty = 1. * 2.;
floaty = lowp 1. * lowp 2.;
如果您采用一些浮点数,并从中创建一个向量或矩阵,该向量或矩阵是否会采用您填充的值的精度,或者这些值是否会转换为另一个精度级别?
我认为优化这将最好地回答这个问题:
dot(gl_LightSource[0].position.xyz, gl_NormalMatrix * gl_Normal)
我的意思是,如果你想要它尽可能快,它是否需要走这么远,或者其中一些是无用的?
lowp dot(lowp gl_LightSource[0].position.xyz, lowp gl_NormalMatrix * lowp gl_Normal)
我知道您可以定义浮点的默认精度,并且这应该用于之后的向量和矩阵。假设出于教育目的,我们之前已经定义了这个:
precision highp float;