讓我在房間中央有一些網格(例如球體),充滿了立方體和一個光源。我怎樣才能使快速和容易陰影投射在OpenGL中,只使用「標準」(固定)功能?注意:結果也必須包含立方體和球體陰影。如何在OpenGL中創建不帶陰影的快速和簡單的場景獨立陰影
回答
如果您可以生成球體的輪廓,那麼您可以使用shadow volumes。 nVidia硬件也同時支持固定功能shadow mapping。
陰影體積具有填充率要求非常高的缺點。陰影地圖可以更好,但需要額外的傳球。
如果你投射到一架飛機上,它可能會更容易,只是project the object on to a plane。
重點是使用通用算法 - 不僅僅適用於球體輪廓=)但是,無論如何,謝謝! =) – shybovycha 2010-11-21 16:23:20
抱歉,沒有點擊第二個鏈接有點......沒錯,你是對的,陰影映射是不錯,我發現它自己(愚蠢的我)=) – shybovycha 2010-11-21 18:11:15
@shybovycha:就這樣你知道。上面列出的技術都不適用於球體;) – Goz 2010-11-21 21:38:38
沒有快速簡單的方法。有很多不同的技術,每個都有自己的優點和缺點。您可以看看我在github上託管的項目,它使用非常簡單的代碼創建陰影,並使用陰影體積技術(http://iuiz.github.com/VolumeShadow/)。不過,它是用Java編寫的,但不應該很難將其轉換爲任何其他語言。
創建陰影的最重要方法是所謂的「陰影映射」方法,在該方法中,您將場景(光源處的相機,指向每個陰影投射對象)渲染爲紋理。第二種技術是shadow voulume方法(以Doom3着名)。
謝謝,但我已經有了這個想法=)投影陰影會足夠=) – shybovycha 2010-11-21 16:24:53
我發現了一種使用StencilBuffers的方法。有一段時間有點困惑,我終於明白了 - 最難的事情就是循環播放每個光源並投影所有場景對象。這看起來比紋理陰影更漂亮,並且工作速度比volumeric陰影更快。 here和here是一些資源,這有助於我理解矩陣乘法步驟(當我查看dino演示時,它讓我感到困惑)。至於我,這種方法最容易理解和使用。要解決的唯一問題是如何計算乘法矩陣。
儘管此方法可以使用紋理as shown here進行一些更改。
謝謝大家! =)
- 1. 創建OpenGL陰影
- 2. OpenGL ES 2D陰影的陰影
- 3. OpenGL | ES添加陰影/陰影貼圖
- 4. OpenGL的陰影誤
- 5. 帶陰影的場景的投影矩陣
- 6. OpenGL中的陰影映射
- 7. 在OpenGL中添加陰影
- 8. 帶陰影的UIView
- 9. OpenGL陰影貼圖
- 10. 使用陰影映射時Opengl 3.3+不正確的陰影
- 11. 創建一個帶陰影的圓錐
- 12. 陰影路徑和陰影在PNG
- 13. 如何在css3中創建陰影框
- 14. 帶陰影矩陣的投影,簡單測試失敗
- 15. 箱陰影和背景
- 16. Photoshop和CSS3背景陰影
- 17. 如何在Swing中創建帶邊框陰影的JButton
- 18. 如何在OpenGL中創建廉價陰影?
- 19. 如何創建CPBarPlot的陰影?
- 20. 如何創建陰影的css主體
- 21. 如何使用漸變和陰影在底部創建帶圓圈的背景
- 22. 瀰漫陰影和ambiant陰影
- 23. OpenGL:製作陰影和光線卷的最簡單方法?
- 24. 如何在SWIFT3.0.1陰影中同時提供一個帶有圓角的陰影
- 25. OpenGL:如何設置渲染器以顯示陰影,燈光和無色陰影?
- 26. 爲UITableView創建陰影
- 27. D3.js SVG陰影快速轉換
- 28. 聚光燈創建陰影僞影
- 29. R陰影的陰影部分
- 30. 帶陰影的視圖
BTW-「標準函數」並不是你正在尋找的表達式。 「固定功能」更像它,但着色器是現在已經「標準化」的幾年。 – Kos 2010-11-21 18:19:54
是的,我在想如何在編寫我的問題時調用這個。現在已經修復了,謝謝! =) – shybovycha 2010-11-21 18:24:05