赞
踩
本节实现Unity日夜循环天空球♥(´∀` )人
Unity中有两类skybox,一类是贴图类(6 sided, cubemap, panoramic),一类是procedural类,本文实现的就是procedural天空盒(其实就是100%纯手写天空盒= - =)
本文中的天空盒主要参考Minionsart的分享(日常表白→
Making a Stylized Skybox Shaderwww.patreon.com进行制作,根据需求有魔改,并关联时间系统,repo在此(」・ω・)」→
llapuras/UnityProceduralSkyboxgithub.com确保摄像机中设定Clear Flags
为skybox
模式,然后在随便哪个物体下挂上skybox组件,添加使用了skybox shader的材质。
Unity内置变量_WorldSpaceLightPos0存储了directional light的方向。这样就可以通过改变directional light的旋转使天空球旋转,形成日夜交替效果。
首先,光指向的正反方向就是我们绘制日月的地方!
计算uv坐标上天空球上的坐标与_WorldSpaceLightPos0间的距离,根据距离返这个数值绘制,得到的是一个中心到边缘亮度递减的圆形效果(距离方向坐标越近数值越小),可以用saturate
对球形区域内的颜色再处理一次,将sphere
乘上一个大点的数,返回数都为1,即可获得清晰边界。
- // sun
- float sun = distance(i.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。