我想渲染深度緩衝區來做一些漂亮的陰影映射。我的繪圖代碼由許多着色器開關組成。如果我設置了glColorMask(0,0,0,0)
,並保留所有着色器程序,紋理和其他圖形,並只渲染深度緩衝區,它會是'OK'嗎?我的意思是,如果glColorMask禁用「寫入顏色分量」,是否意味着每片段着色不會執行?關於glColorMask及其工作的快速問題
2
A
回答
2
對於渲染陰影貼圖,通常需要將深度貼圖(最好是正方形和兩個冪,因爲立體聲驅動程序將此作爲提示!)綁定到FBO,並使用一個着色器(儘可能簡單)爲了一切。你不想附加一個顏色緩衝區,因爲你根本對顏色不感興趣,而且它給ROP帶來了更多不必要的壓力(另外,有些硬件可以僅使用深度渲染速度提高一倍或更多)。你不想在許多着色器之間切換。
根據您是否進行「經典」陰影映射或諸如指數陰影貼圖等更復雜的操作,您將使用的着色器可能非常簡單(常量顏色,無深度寫入),或者對深度執行一些(適度複雜的)計算,但通常不需要執行任何顏色計算,因爲這意味着無用的計算將不會以任何方式顯示。
1
不,着色器程序獨立於固定功能管線執行。設置glColorMask
將不會影響着色器程序。
1
不,不管怎樣片段操作都會被執行,但它們的結果將被零色彩掩碼壓扁。
如果您不希望執行某些片段操作 - 請使用正確的着色器程序,其中附加了一個空片段着色器,並將繪製緩衝區設置爲GL_NONE。
還有另一種方法來禁用片段處理 - 使GL_RASTERIZER_DISCARD,但你不會在這種情況下:)
相關問題
- 1. 關於編譯器及其工作原理的問題
- 2. 關於MVC的快速問題在PHP
- 3. 關於JSON的快速問題
- 4. 關於Java OOP及其問題
- 5. 關於TeamCity依賴關係的快速問題
- 6. 關於javascript(body-tag)的快速提問
- 7. 關於我的程序快速詢問
- 8. 關於plist的快速提問
- 9. 在PHP中快速查詢相關內容的快速問題!
- 10. 有關XPath/DOM快速的問題
- 11. 有關DOM Reflow的快速問題
- 12. 關於Java遊戲的MVC框架的快速問題
- 13. 關於通過字符類的子集快速的問題
- 14. AS3:快速關於兒童和引用它們的問題
- 15. 關於IIS 7 Asp.Net設置的快速問題
- 16. 關於CSS精靈和內存使用的快速問題
- 17. 關於MSBuild複製任務的快速問題
- 18. 關於Android應用程序設計的快速問題
- 19. 關於切換事件的快速jQuery問題
- 20. 夫婦關於Apache Lucene的快速問題
- 21. 關於getline(cin,string)的C++快速問題
- 22. 關於instanceof的工作問題
- 23. 快速SQL問題
- 24. 快速jQuery問題
- 25. 快速Cufon問題...?
- 26. 快速PHP問題
- 27. 快速Preg_Replace問題
- 28. 關於領域模型及其知名度的問題
- 29. 關於base64編碼及其瀏覽器支持的問題
- 30. iphone - 關於UITextView及其大小的問題
因此,讓即使是深度值,我應該切換到固定管道,然後繪製深度緩衝? – 2011-02-09 19:14:51