位置: 编程技术 - 正文
推荐整理分享【猫猫的Unity Shader之旅】之反光材质(猫猫的游戏),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:猫猫的娱乐,猫的游戏解说,猫的合集,猫咪的testflight,猫的游戏视频,猫的游戏解说,猫的游戏视频,猫猫的游戏,内容如对您有帮助,希望把文章链接给更多的朋友!
现实生活中有许多反射的例子,镜子、平静的水面、光滑的金属表面都有或多或少的反射效果,一种简单的模拟这种现象的做法是利用天空盒和Input结构中的worldRefl变量。
为了使用天空盒资源,我们可以导入官方的Skyboxes资源包,然后自己创建一个天空盒资源。一个天空盒资源需要六张贴图,分别表示盒子的六个面。
worldRefl表示世界空间中的反射向量,关于这个东西,猫猫目前把它理解成反射过程中的入射光方向,具体的细节还不清楚,有时间会详细研究一下。总之,有了这个向量,我们就可以用texCUBE函数去索引到天空盒上的一个颜色。具体的代码如下:
实现的效果是这样的:
菲涅尔效果
咦?这里有奇怪的名字出现哦~
话说这位菲先生其实是法国的一位物理学家。关于这位老先生的生平事迹这里就不说啦,总之这位菲先生发现了一个有趣的光学现象,所以这个现象就直接叫做菲先生现象啦。这个现象具体指的是:当我们观察物体表面的角度(相对于法线)越大时,看到的反射效果也越明显。
基于菲先生的结论,我们可以实现一个这样的Shader,效果也很不错。为了得到观察的方向,我们需要用到Input结构中的另一个变量:viewDir。对上面的代码稍作修改就可以做出菲涅尔效果:
得到的效果是这样的:
话说这位菲先生确实给我们提供了一些思路。用viewDir这个变量,我们可以轻松表示出观察物体表面角度的变化。利用这种变化我们可以实现出很多效果,比如边缘发光,随视角变化的颜色衰减等,如果有足够的想象力,这种方式可以做出很多效果。
结束语反射效果可以极大的增强渲染的真实效果,使用天空盒这种方式牺牲的效率也是比较小的,结合上一回说过的利用贴图实现表面不同部分的不同处理,反射也可以做出不同的形式。而viewDir这个东西也给了我们充分的发挥想象力的空间,这里真的要感谢菲先生啦~
【Unity3D插件】在Unity中读写文件数据:LitJSON快速教程 - 王选易 JSON是一个简单的,但功能强大的序列化数据式。它定义了简单的类型,如布尔,数(int和float)和字符串,和几个数据结构:list和dictionnary。可以在http:
PHP实现用户登录和注册的功能 登陆界面login.php.formaction="logincheck.php"method="post".用户名:inputtype="text"name="username"/.br/.密码:inputtype="password"name="password"/.br/.inputtype="submit"name="su
Unity网络编程NetworkView组件使用 废话不多说:先上代码服务器端脚本:///summary///Unityserver.///CreatebyCuiYongduo///date:--:////summaryusingUnityEngine;usingSystem.Collections;publicclassUnityServer:MonoB
标签: 猫猫的游戏
本文链接地址:https://www.jiuchutong.com/biancheng/380146.html 转载请保留说明!友情链接: 武汉网站建设