当前位置:首页 >  开发者 >  【转】水效模拟

【转】水效模拟

RealisticWater,Real-time,Reflection,Refraction,Bumpmapping.1,StaticWater这种水适合用于平静的小水面,比如小水沟或雨后积水。分别渲染水面上和水面下的场

Realistic Water, Real-time, Reflection, Refraction, Bump mapping.

1, Static Water

这种水适合用于平静的小水面,比如小水沟或雨后积水。分别渲染水面上和水面下的场景作为反射贴图和折射贴图,再做叠加。

tips:

1,渲染反射贴图时需要把水面下的部分剪裁掉。最简单的方法是在shader里设置gl_ClipDistance,可惜不同硬件厂商甚至不同的驱动程序对其实现都是不同的。另一种简单的方法是使用Oblique Frustum Clipping,它通过修改ProjectionMatrix以使用任意平面作为NearPlane,达到剪裁的效果。值得注意的是,这种方式会影响到ZBuffer。

2,折射贴图可以直接使用场景渲染图,不过水面上的物体如果被折射采样,会出现问题。CryTek的建议是:Mask out everything above water surface。

3,通过比较水面和场景的深度,可以柔化它们的交界处。

2, Bump Water

对于大一些的水面,比如水塘或河流,需要表现出水的流动。这通常使用一个平面几何体作为水的表面,使用NormalMap模拟水纹,卷动DudvMap进行纹理扰乱,模拟水的波动。

3, Wave Water.

对于大面积的水面,比如湖或海,仅仅有水纹是不够的,还需要波浪。一种做法是将预先做好的网格投射到屏幕上,然后在VertexShader中通过DisplaceMap修改每个顶点的位置。另一种做法是不使用几何体作为水面,直接在PixelShader中读取场景深度,对高度低于水面的像素渲染水效果。参考:http://www.gamedev.net/reference/articles/article2642.asp

饮水思源,不忘初心。 要面包,也要有诗和远方。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,
如果涉及侵权请联系站长邮箱:support@yingtwo.com 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:none

相关推荐

最近更新

68.C++中的const
68.C++中的const

编写程序过程中,我们有时不希望改变某个变量的值...

封神榜哪个版本游戏
封神榜哪个版本游戏

PC上的荡神志、刀剑封魔录、封神榜之英雄无敌P...

硬盘怎么清洁
硬盘怎么清洁

给笔记本电脑硬盘清理灰尘的方法如下:1、用螺丝...

410m和7670哪个好
410m和7670哪个好

首先三款笔记本的处理器都是i52450m,内存...

手机2k17乔丹怎么获得
手机2k17乔丹怎么获得

NBA2k17选择乔丹先创建MC人物,打三局大...

多态、抽象类、接口练习:愤怒的小鸟
多态、抽象类、接口练习:愤怒的小鸟

需求说明:模拟实现愤怒的小鸟,定义鸟叫的接口,...

rx480配什么amdcpu
rx480配什么amdcpu

rx480可以搭配酷睿i3-6100cpu,酷...

6s主要的指导是什么
6s主要的指导是什么

6s指的是什么6s指的是什么,在现实生活中,6...

手机里dst什么意思
手机里dst什么意思

将时间在正常情况下提前一小时,如果实行“夏令时...

斗鱼1鱼翅等于多少鱼丸
斗鱼1鱼翅等于多少鱼丸

100鱼丸=100g,1T=1000kg=10...