玻璃质感_如何在游戏中表现玻璃的质感?这个方法效率超高

9219683fbb6570122962908b02fe33b0.gif

编者按 玻璃的质感表现,在游戏中一直都是比较难制作的,因为玻璃包含了很多特殊的特性。本文作者将分享一种非常低开销的实现unity玻璃材质的方法,希望对大家有所帮助。

文 | Blood

腾讯互动娱乐 天美工作室群高级游戏美术师

一直以来玻璃的质感表现在游戏中都是比较难制作的一种,因为玻璃包含了很多特殊的特性:反射、折射、厚度等,而这些特性在渲染的时候需要消耗大量的计算。这也导致真实的玻璃渲染基本都是离线渲染的。

包括目前主机端游戏的一些玻璃效果也不是很理想,离离线品质还有很大的差距。基本都缺少了折射项,只有高光部分。

fa5aeff0eee6b3ee651341ecc58676a2.png (图中玻璃杯来自ff7重置版、大表哥2)

本文分享一种非常低开销的实现一种玻璃材质的思路。它基本可以适应目前的任何平台。同时这个方案在迭代上非常灵活,只需要替换灯光反射与环境反射部分就可以运用到PBR上。

它没有复杂的算法,没有光线追踪。 可以没有RT,没有后处理。 主要从美术表现的视觉层面来实现最终效果。

我们先看下实现出来的效果!(以下所有图片均为unity实时截屏,No tonemapping )

下面是模拟的高脚杯,以及香槟。

09027a397dfb574e74f521ca68025fa6.png

杯子、啤酒、泡沫,都是同一个shader实现的。

15a33eadffd81b95c3fcdbbb8080474d.png

啤酒里面的气泡,以及香槟里面的气泡。

4ad489437f86341a269649e16423ca24.gif d5912f69b06306a534d8220f581607cf.gif 09c63b3f82c83a9fb8281911b9c5ab8b.png

先来分析下玻璃的特点。

655118247dbf59cf754909da95bec2bb.png

玻璃本身是透明的,影响玻璃质感的主要有2个点:

1)反射

玻璃会反射环境里高亮的地方。

2)折射
玻璃越厚的地方折射越强。

而最难的地方就在于折射的计算。

ed1c409dbe50af0f21feda9a6d033dd2.png

b963a912b80f2b869ad392e5a73718a3.png

但在人的视觉上,强烈的折射会打断背景的连续性,在折射率强的地方已经无法看清背后的事物,会让人感觉“这块区域不是完全透明的”。我们主要从这一点入手,来模拟视觉层面的折射表现。

为了节省性能我这里以Matcap来制作环境纹理的采样。(不过这里是很灵活的可以根据需求替换PBR的ibl环境以及实时高光)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值