Ogre水面倒影的實現
這裏簡單介紹一下水面倒影的渲染實現方式,因爲我自己也沒有找到比較理想的水面波動生成算法,所以就不介紹了
直接說原理吧,和上一篇的陰影實現有點類似
在實現水面倒影前我們先想想,當攝像機在水面上方移動的時候倒影的渲染也會變化,所以倒影的渲染和相機的紋理息息相關
假設攝像機Camera0此幀在P位置,水面爲Plane,我們創建一個新的相機Camera1,將Camera1位置,方向用Plane做一個鏡面對稱,將水面設置爲近截面。然後利用Camera1渲染出一張RTT紋理。和紋理陰影記錄紋理和視圖投影M1矩陣,在Shader裏面進行相對的映射(有時候會考慮水面法向量),映射方式請參考上一篇紋理陰影映射方式。
然後將水面本身的顏色和當前映射出的顏色做混合。即得到了倒影效果,簡單吧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
codeforces 1251E1/E2 Voting
祤溪
2020-07-08 12:36:32
獲取某一目錄下所有文件夾名,返回vector「string」
COSummer
2020-07-08 12:27:32
linux環境下開源庫jsoncpp使用教程
Worthy_Wang
2020-07-08 12:19:12
C++:模擬實現list容器(支持迭代器)
ETalien_
2020-07-08 12:19:01
C++(面試題):給40億個不重複的無符號整數,沒排過序,如何快速判斷一個數是否在這40億個數中
ETalien_
2020-07-08 12:19:01
C++ 併發中的無鎖編程
蚓无爪牙之利
2020-07-08 11:23:03
數據結構——數組(3) 在有序數組中找出重複的次數最多的數
zhangying_496
2020-07-08 10:38:18
數據結構——數組(1)數組求和&打印二維數組&判斷數組是否遞增
數組求和 方法一:直接一次for循環 int GetSum1(int *a,int n) { int sum=0; for (int i=0; i<n;i++) { sum+=a[i];
zhangying_496
2020-07-08 10:38:18
C語言實現的json解析程序
lindorx
2020-07-08 10:35:53
大話設計模式C++版本-04-代理模式
wkd_007
2020-07-08 10:27:39
大話設計模式C++版本-07-模板方法模式
wkd_007
2020-07-08 10:27:28
大話設計模式C++版本-05-工廠方法模式
wkd_007
2020-07-08 10:27:26