[程式]水面效果實作方法分享&討論
大家好
由於我目前正在製作的遊戲(+簡易遊戲引擎
需要製作水面的渲染(render),因此找了相關的資料
目前以該教學網頁的方法做修改後去實作
連結:
https://tutorialsplay.com/opengl/2014/09/26/lesson-15-water
-with-opengl-on-the-gpu-with-glsl/
目前實作方法為,先生成水的mesh後儲存
(除非水產生變化,否則不進行修改,重複使用
接著由於水是半透明的,因此需要在非透明物體先render完後
才能進行render避免遮蓋後方物體
(因為depth test關係,水面雖然是透明
接著在vertex shader計算水波的高度(我是使用多個波進行重疊
需要的參數有時間,波長,波高,座標(目前vertex的世界座標,取x跟z
接著直接修改vertex高度(vertex的高度+=波高
我是在geometry shader用三角形兩邊向量cross取法向量
(其實應該有更好的方法,
最後在fragment shader用水的顏色(自己設定的..)
跟skymap(一個存背景圖的cubeMap)取出的反射顏色去混色
最後乘上亮度,設定水的透明度(我是抓0.85)
就完成簡易的水的渲染了
附上影片demo
https://youtu.be/8Ceof034DAY
github原始碼連結:
https://github.com/tim099/GameTest
希望也能有人分享一些相關的資料
感謝您耐心的閱讀
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.234.148
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1456594801.A.C9D.html
推
02/28 01:51, , 1F
02/28 01:51, 1F
→
02/28 01:52, , 2F
02/28 01:52, 2F
→
02/28 03:36, , 3F
02/28 03:36, 3F
→
02/28 03:37, , 4F
02/28 03:37, 4F
推
03/14 20:39, , 5F
03/14 20:39, 5F
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章