我知道glVertexAttribPointer
會根據指向數組設置頂點屬性的值。儘管如此,glVertexAttrib
是什麼?它看起來只是爲頂點屬性設置了一個(可能是矢量)值,那麼當你有多個頂點時會發生什麼?所有的頂點都會看到屬性的相同值嗎?什麼是glVertexAttrib(與glVertexAttribPointer)用於?
22
A
回答
40
這主要與舊立即模式(glBegin/glEnd
)一起使用,其中不使用頂點數組,它已棄用(並且已在OpenGL ES 2.0和桌面OpenGL 3+核心中刪除)。
但是這個函數仍然與數組一起使用(這就是爲什麼它仍然存在於現代版本中)。你的假設是,這個調用之後的所有頂點對這個屬性具有相同的值(當然,只有當你不啓用這個屬性的數組時)。或者,更確切地說,每個使用的着色器屬性都沒有啓用其對應的陣列,它將從單個狀態值獲取其值,並且可以使用glVertexAttrib
來更改此值。
這是有用的,如果你有一個通用的着色器與例如一個顏色屬性和一個位置屬性,並且你有一個顏色不變的對象。因此,通過使用glVertexAttrib
,您不必爲每個頂點提交顏色,也不必使用顏色更改爲統一顏色的特殊着色器。
相關問題
- 1. 什麼是glVertexAttribPointer和glVertexAttrib1f
- 2. 爲什麼沒有glVertexAttribPointer用於索引緩衝區對象?
- 3. 關於glVertexAttribPointer的用法
- 4. glVertexAttribPointer的最後一個參數是什麼意思?
- 5. OpenGL 4:使用glVertexAttrib繪製
- 6. 什麼是用於
- 7. 什麼是+ =用於?
- 8. 什麼是用於
- 9. 什麼是(;;)用於?
- 10. 什麼是用於
- 11. 什麼是用於
- 12. glsl佈局與glvertexattribpointer問題
- 13. glVertexAttribPointer()只適用於第一個流
- 14. 在D3D11中是否有與OpenGL glVertexAttrib()等價的功能?
- 15. enCapsa - 它是什麼和用於什麼?
- 16. 什麼是com.itextpdf.test。** - 用於什麼類?
- 17. 什麼是applescript,它用於什麼?
- 18. 使用glVertexAttribPointer的openGL
- 19. 究竟是什麼ObjectFactory是什麼,它用於什麼?
- 20. 什麼是sys/user.h用於?
- 21. 什麼是用於swarminject?
- 22. 什麼是[super awakeFromNib];用於?
- 23. 什麼是iframe用於?
- 24. 什麼是Switch類用於?
- 25. 什麼是Adapter.getItem()用於?
- 26. 什麼是HAVE_PSI_INTERFACE宏用於?
- 27. 什麼是_references.js用於?
- 28. 什麼是robots.txt.dist用於?
- 29. 什麼是CookieAuthenticationOptions.AuthenticationType用於?
- 30. 什麼是#pragma用於?
使用單色就是一個很好的例子。謝謝! –
真棒回答:-)我總是問自己,爲什麼會用一個常數屬性而不是制服;但你的榜樣對我來說很有意義。 – Mecki