UnrealEngine4禅意花园项目中的水池 - 纳金网
联系我们

给我们留言

联系我们

地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网

邮箱:info@narkii.com

电话:0595-82682267

(周一到周五, 周六周日休息)

当前位置:主页 > 3D教程 > 图文教程

UnrealEngine4禅意花园项目中的水池

来源: 52vr | 责任编辑:传说的落叶 | 发布时间: 2019-06-13 08:22 | 浏览量:
这篇文章介绍了禅意花园项目中的水的效果实现方法。
 
禅意花园
 
禅意花园是Epic Games的官方项目,现在已经开放在Market Place中自由下载。这个项目中使用了特别的方法来实现水池,效果如下:
 

Unreal Engine 4 —— 禅意花园项目中的水池

 
水面表现
 
整体的水池效果分成水面与池底两块,针对于水面来说使用了Cubemap + noise,原本不是十分特别的地方,但是针对于Cubemap反射这一块有个黑魔法,值得一看:
 

Unreal Engine 4 —— 禅意花园项目中的水池

 
这个函数写的很复杂而且不好阅读,应该是美术写的。但是如果把它翻译成代码其实不难理解——它处理的是以场景设计师在关卡中放置的一个点为反射点,通过这个反射点、水面像素和相机位置的计算来获得一个反射向量。这个反射向量在对应的CubeMap中采样,从而获得水面的反射效果,效果如下:
 

Unreal Engine 4 —— 禅意花园项目中的水池

 
目前这个材质的实现似乎还有点小问题,可以进行修复。这里不方便将修复后的材质放出,读者可以自己进行实现。
 
总体来讲这个想法很新颖,可以在仅仅使用Emissive Color与Opacity通道的情况下来实现很好的水面的效果,尤其在反射效果上的效果很不错。
 
因此,这个水面效果可以在移动平台上兼顾性能和效果。
 
水底
 
禅意花园中水池的水底效果的脑洞也开的很大。在正常情况下想要表现水底的效果通常是使用Refraction通道。但是Refraction通道在某些设备上表现的不太正常,性能也是一个必须考虑的问题。
 
因此水底的模型是让水底本身使用World Position Offset通道来对顶点进行位移操作,这种操作主动让池底的网格模型进行浮动,这样一来也就会比较好适配大部分的设备。
 
这种做法是很新颖的,另一方面效果也很不错。
 
后记
 
看到了Epic Games提出的一些解决问题的方法,感觉到提出这些方法的人似乎已经到了另一种境界。《孙子兵法》说“以正合,以奇胜。”大部分人似乎花了太多的功夫在“正”上,例如不停地去钻底层,硬碰硬的提高效率和表现。但是是否能够在“奇”这一块来解决实际的问题,这种“奇”的能力又该怎么去培养?

相关文章
网友评论

您需要登录后才可以发帖 登录 | 立即注册

关闭

全部评论:0条

推荐
热门