2012-08-22 116 views
0

OpenGL會自動截斷它還是這是一個錯誤?當調用glUniform4f來設置float3變量時會發生什麼?

我有一塊令人討厭的OpenGL代碼,似乎是在程序中通過使用glUniform4fv與一個大數組,其中float4的值(即每行4浮點數,而不是3),並且它似乎工作。也就是說,OpenGL只會將3個值複製到矩陣的每一行,並跳過第4個值。可以假設這將始終有效嗎?

+0

OpenGL沒有'float4','float3'或'float4x3'類型。你在談論'vec4','vec3'和'mat4x3'嗎? –

+0

@NicolBolas是的 – kaalus

回答

0

的GLSL規範是對這個相當明確:爲glUniform*呼叫的大小和類型必須正好在着色器聲明的尺寸和類型相匹配(除了採樣和布爾值)。因此,如果您撥打glUniform4fv,則必須設置類型爲vec4的單個變量或類型爲vec4的數組變量中的count條目數組。

相關問題