`
ruilin215
  • 浏览: 1151427 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

El游戏引擎-2. 水

阅读更多

2.

游戏中对水的表现,从初期的简单表示到如今的高仿真,渲染的方法一直是层出不穷。

2.1 wow经典水

相信玩过魔兽世界的玩家对于wow里波光粼粼的水一定印象深刻,这种水效果虽然简单,但是放在游戏场景中的表现即使在现在也毫不逊色。网上也有不少对wow水渲染方法的研究,基本上为采用30张纹理轮换交替形成水波荡漾状,这里贴出ArtsyLee2007年给出的demo《吉安娜的远征》的下载链接,大家可以在源码中清楚地看到仿wow经典水的效果是如何实现的。

http://bbs.gameres.com/showthread.asp?threadid=87645

2.2 实时渲染水

随着硬件水平日新月异的提高,实时渲染的水被越来越多的游戏所采纳。魔兽世界也在最新的资料片《大灾变》中采用了这一技术。El中实现的就是实时渲染的水。

这一做法基本上分为两步:

1. 渲染场景到纹理;

2. 将纹理作为贴图贴的水体模型上。

其中,步骤一中需要在绘制场景时将相机参照水平面翻转,以得到一个“倒过来”的世界。

步骤二倒影贴图在被采样时使用的纹理坐标是水体模型顶点投影后的位置,即要使用类似tex2Dproj的纹理坐标。在ps中对顶点投影坐标除以齐次坐标系的w,然后转换到纹理坐标的[0,1]区间即可。

另外,在采样时加入Perlin噪声扰动即可产生效果很好的起伏水面。

详细论述可以在下述链接中找到,更高级的水体效果如折射等,在该作者的blog中也有很好的阐述。

http://hi.baidu.com/shallow_sleep/blog/item/4a16d0818eb87cd3bd3e1e03.html

另有示例代码下载,该源码的水shader梢有纰漏,相信读者在理解后可自行更正。

http://show.gameres.com/ParallelWorld/ParallelWorld.zip

Water

2.1

分享到:
评论

相关推荐

    mips64el-linux-android.zip

    1. **性能关键应用**:当应用程序需要高性能计算,如游戏引擎或物理模拟时,使用原生代码可以更高效地利用CPU资源。 2. **重用现有C/C++库**:开发者可能已经有用C/C++编写的库,可以利用NDK将这些库集成到Android...

    mips64el-linux-android-4.9.rar

    NDK是Android开发的一个关键组件,它允许开发者用C++或其他原生语言编写高性能的应用程序模块,比如游戏引擎、图形库或者需要高效计算的部分。 “mips64el”代表MIPS64的Little Endian模式,这是一种32位扩展的...

    mips64el-linux-android-4.9.zip

    3. **Android NDK**:NDK允许开发者用C/C++编写Android应用的高性能部分,例如游戏引擎、图形处理和物理模拟。 4. **交叉编译**:由于开发环境和目标环境(如个人电脑和MIPS64设备)不同,需要在开发环境中使用交叉...

    apache-tomcat-8.5.72-embed.zip

    6. **tomcat-embed-el.jar**:EL(Expression Language)是Java EE的一部分,用于在JSP页面中表达式计算。这个库让开发者可以方便地访问和操作页面作用域、请求作用域等对象的属性。 7. **annotations-api.jar**:...

    mipsel-linux-android-4.9.rar

    6. 使用场景:这些工具链常被Android开发者用来编译原生库,比如游戏引擎、多媒体处理软件或任何需要高性能计算的任务。同时,它们也适用于对特定硬件加速特性的利用,如GPU渲染、加密算法优化等。 7. NDK版本R16:...

    JSP版Flash小游戏小偷-jsgame.zip

    5. **Servlet**:作为JSP的后台处理引擎,可能编写了自定义的Servlet来处理用户请求,执行游戏逻辑,如计算得分、更新用户状态等。 6. **Flash ActionScript**:在客户端,游戏的动画效果和交互逻辑可能是通过...

    tomcat8.5+mysql5.5+nginx1.16+ncurses-5.9.zip

    MySQL 5.5是其一个重要的里程碑版本,引入了许多性能优化、新功能和改进,如InnoDB存储引擎的增强,支持更高的并发读写操作,以及更强大的复制功能,使得数据备份和恢复更为便捷。 3. **Nginx 1.16**:Nginx是一个...

    mips64el-linux-android-4.9

    使用这样的工具链,开发者可以编写高性能的原生代码,例如游戏引擎、图像处理库或者需要底层硬件访问的应用。工具链可能包括以下组件: 1. **GCC(GNU Compiler Collection)**:包括C、C++、Fortran等语言的编译器...

    El游戏引擎、3ds Max导出插件、Demo源码及资源

    "El游戏引擎"是一款由作者在业余时间精心研发的游戏开发平台,主要面向学习者和爱好者。这个引擎的设计目的是为了提供一个便捷的环境,让初学者能够理解和实践游戏开发中的核心概念,同时也为有一定经验的开发者提供...

    java开源包10

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包2

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包1

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包101

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包11

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包3

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包6

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包5

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包4

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包8

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

Global site tag (gtag.js) - Google Analytics