嗯,我有一個3D場景,目前只有一個帶有紋理的四邊形(繪畫)。在繪畫和「相機」之間,我有另外一個四方,我想表現得像一個光學鏡頭:扭曲「下方」的圖片 如何用着色器和一些像素緩衝區來實現它?鏡頭着色器/圖像失真
3
A
回答
3
這是我前一段時間發現的一個例子,它與你想要的非常類似。 http://www.paulsprojects.net/opengl/refract/refract.html
您可能需要稍微修改代碼才能達到所需的反轉效果,但這會讓您開始正確的軌道。
編輯: 順便說一句,你不會需要第二個圖像(倒小矩形)。只需使用單個背景圖像和着色器。
2
畫和「攝像頭」之間,我有地方的其他四我想表現得像一個光學鏡頭:
這是一個棘手的一個。首先必須瞭解的是,OpenGL是一個所謂的本地化渲染模型光柵器,這意味着通俗地說,它就像畫布上的鉛筆和畫筆一樣工作。
因此,它與全球場景表示渲染器(如光線追蹤器)形成鮮明對比。光線追蹤器實際上是在完全定義的場景下運行的,因爲它可以適用於像折射一樣的事情。
確實,人們必須像對待藝術家一樣對待OpenGL來對待它的工具。因此,您想要創建的任何光學「效果」必須通過使用OpenGL提供的工具掌握各種繪圖技術來實現。要創建你想要的效果,你必須實現一個多階段過程。
對於折射,首先渲染場景在所有方向(您創建動態立方體貼圖)時由折射對象「看到」,然後使用此立方貼圖作爲柵格化「折射」對象的輸入數據,其中a着色器用於確定撞擊光柵化碎片的光線的折射方向。
BTW:對於任何其他類似的交互效果,折射成立。陰影像OpenGL中的折射一樣不重要。
相關問題
- 1. opengl:glsl着色器中的鏡像對象
- 2. 圖像着色c
- 3. 鏡像圖像從攝像頭
- 4. JavaScript濾鏡圖像顏色
- 5. SCSS圖像失真
- 6. C#圖像失真
- 7. 使用着色器比較圖像
- 8. Love2d extern圖像中斷着色器
- 9. HLSL着色器減去背景圖像
- 10. opengl着色器使顏色「消失」
- 11. 在.NET中「着色」圖像
- 12. 在Java中着色圖像
- 13. iOS着色透明圖像
- 14. 着色灰度圖像as3
- 15. 着色分段圖像
- 16. 着色灰度圖像
- 17. CSS - 着色灰度圖像
- 18. 圖像着色算法
- 19. iOS CGImageRef像素着色器
- 20. 糾正視頻在Matlab中的鏡頭失真?
- 21. 鏡頭失真模型VS修正模型
- 22. 任何想法如何使用頂點着色器實現Sigma鏡頭
- 23. Flash - 用於電影鏡頭的圖像
- 24. ImageContext返回圖像失真
- 25. iOS圖像處理(失真)
- 26. OpenCV裁剪圖像失真
- 27. 圖像失真問題jCrop
- 28. 還原失真的圖像
- 29. 通過調色板着色圖像Android
- 30. 實時網絡攝像頭+着色器效果
「倒置的小矩形」只是着色器製作的第一步,旨在說明我將先存檔的內容 – Valerij