3DS三维数据文件渲染:
3DS是一种常见的三维数据文件格式,这里采用OpenGL渲染列表进行实时渲染,同时在创建贴图时还对是否是Alpha贴图进行判断,图中可以看出,树干部分为普通贴图,树叶部分为带有Alpha通道的贴图。树后面的地形为常见的高度图生成的地形。
该图片展示的是渲染MS3D动画效果图。
MS3D是一种常见的骨骼动画文件。在该平台中我们采用四元数对骨骼进行插值,十分平滑地再现鱼在水中自如地游动。图中线框表示鱼处于编辑状态,可用鼠标对三维场景中任意物体进行点选,对选中物体的操作包括,添加物体,删除物体,平移,旋转,缩放等。鱼后面的汽泡采用粒子系统+Alpha+Billboard实现。图示为开启雾效后的效果。
水底中的花纹为水刻蚀效果,这个水刻蚀效果和前面的那个实现方法不同,它可以投影在场影中的三维物体上,运动的三维物体也可以,并且这个实现效率还很高哦。
下图为用动态纹理实现垢水刻蚀效果,效果一般般,效率很高,在有些场合在下以采用,后文将介绍一种真实感更强的的实现。一定惊奇树为什么会生长在水里吧,这里是在对数据进行测试。
再发几张图片
下图片示为水面效果图:
水面采用高度图插值实现,使用GPU渲染,效率高。
对于天空,现在比较流行的人两种方式,一种是天空盒,另一种是天空球,天空盒比较简单,易于实现,在立方体连接处易出现纹理裂缝,需要精心加以处理才能达到不错的效果。本图采用天空球。远处的树采用3DS文件。对于静态物体的渲染,为了达到最高的效率,通常采用渲染列表或VBO技术。在大多数电脑上,两者运行效率相差不大。
面片鱼模拟鱼群:
这是我做的一个小探索,通常对于鱼类的仿真都是采用骨骼动画或关键帧动画模型,但对于远处的鱼群,采用这种方式来模拟效果并不好,且会浪费宝贵的CPU资源。本例采用Alpha透贴和正弦衰减函数对鱼进行建模,效果逼真。
其它个人作品还有有:
基于高度图插值的水面效果,地形效果仿真。
基于八邻域插值实现的水面特效仿真。
基于Billboard技术的植物,太阳仿真。
基于粒子系统的火焰,雨,雪,喷泉,汽泡等特效模拟。
基于GPU和贝兹曲线插值实现的动态水草效果仿真。
基于GPU渲染,Alpha混合技术实现的大面积草体渲染。
实现了一个基于动态纹理和投影贴图技术的水刻蚀效果仿真(研究生论文)。
MD3人物角色打斗场面的渲染。
2009年10月14日