2017-08-04 64 views
0

這可能很奇怪,因爲據我所知矢量和標量不能添加。但是我發現this sample和線157它執行以下操作:GLSL矢量和矢量vec3和浮點數

hsv.x + vec3(0.,2./3.,1./3.) 

其中hsv.x恰好是一個float數量,價值來自於鼠標X座標和良好的休息是vec3

我的問題是該操作的結果是什麼?

+0

標量將被添加到向量的每個組件。 – Rabbid76

+0

@ Rabbid76謝謝!仍然,在數學運算中,這是不可能的,或者我錯了嗎?對於OpenGL來說,這是一種特殊情況,還是其他編程語言也是如此? – Pipo

+0

找到了(5.10頁59):https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.3.30.pdf – Pipo

回答

1

如果添加一個標量的向量,則標將被添加到該向量的每個分量,因爲The OpenGL Shading Language規範(4.6版,第5章運算符和表達式)說:

一個操作數是一個標量,另一個是矢量或矩陣。在這種情況下,標量運算是獨立應用於向量或矩陣的每個分量的 ,導致相同大小的向量或矩陣。

+0

謝謝!我只是抓住了glsl,但我不確定我是否做得好。我已經開始使用「shadertoy」測試東西,並從Khronos.org上面粘貼我的鏈接。仍然不確定這是否是正確的道路,你有任何推薦?我也一直在檢查YouTube上的視頻,但是我最終變得更加困惑,因爲在那些着色器文件被分割爲兩個文件頂點和片段着色器。 – Pipo