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