2011-08-16 59 views
2

浮動32位,因爲這是我所提供的,或者他們是一個highp浮點的精度?統一mat4浮點值的精度是多少?

+0

這是在你的頂點着色器還是片段着色器?在OpenGL ES 2.0中,您必須在片段着色器中定義此精度,因此它將由您指定的lowp,mediump或highp限定符決定(否則,您將得到着色器編譯錯誤)。 –

回答

2

如果您絕對需要使用highp,請在着色器中指定它。

uniform highp mat4 m; 

您還可以測試glGetShaderPrecisionFormat可用的精度。至於什麼是默認使用,它在不同的硬件和不同的着色器階段之間有所不同。

+0

我不明白的是,如果默認使用32位來定義均勻4x4矩陣的浮點數。這是我希望的,因爲我通過API的值是float32。我很好奇,如果我的精確度低於這個水平,那麼當我看規範時,我只會看到關於lowp,mediump和highp的討論。 – Xavier

+0

是的,你可能會失去精度,這一切都取決於硬件如何實現浮點精度。 highp,mediump和mediump限定符都指定了所需的最小精度範圍。硬件如何實現這種精度因機器而異。 –