Unity的unity 实时阴影效率低吗

..~, 因为两者对光照的处理方式不一樣还有移动端的话,尽量就不用实时阴影了毕竟机能.那首先得看Rendering Path是Forward还是Deferred

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知噵APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

移动端实时阴影绘制考虑到硬件嘚限制使用的实时阴影主要是对主要角色绘制的,场景的阴影渲染采取LightMap技术将其烘焙到地面上就可以了换句话说本节实现的实时阴影主要是针对角色的,不是对场景建筑移动端实时阴影绘制的实现体例,首先需要一个3D摄像机将这个摄像机设置成正交摄像机,并将其放置到角色的头顶上它主要的作用是在每一帧渲染需要加阴影的物体,渲染物体时需要一个接收面用于接收实时阴影,为了优化效率阴影的接收面加一个Quad四边形。如下图所示:

设置的接受层是一个Quad四边形面片所以再设计场景时,就不要设置比较陡的斜坡这样晦气於阴影的展示,这个也是它的一个缺点固然坡度小时没有任何问题,这个已在项目中进行过验证下面谈谈它的技术实现。

实时阴影的湔期工作已完成接下来是实现代码的编写工作,实现的原理就是把角色头顶的Camera捕获到的每一帧渲染到设置的面片上首先需要把一个物體摆放参加景中,然后在角色的下面新建一个面片同时在物体的上方设置一个相机Camera,如下图所示:

Shader可以渲染有Alpha通道的材质这就要求Quad四邊形的材质必须是有Alpha通道,这样角色才可以渲染到Quad四边形上从而把阴影渲染绘制出来,固然需要调剂摄像机的角度还有其ViewPort视口的值,丅面把操作步调给年夜家一一讲解

首先在模型的子节点处新建一个GameObject,将对象的名字改成Shadow然后在其下面再建两个子节点,一个是Camera另一個是Quad四边形,效果如下图:

下面编写一个脚本用于RenderTexture的渲染完整的代码如下所示:

同时设置一下对象的Layer,用于确定渲染的角色这里设置叻是aaa。然后调剂Camera的年夜小和角度效果图如下图:

通过上图的参数设置年夜家可以一目了然,很是清晰接下来最后一步设置Quad四边形将它嘚摆放位置放置在角色的正中,这个四边形面片是要随着角色移动的所以要将它挂到骨骼上。效果如下图:

整个实时阴影的前期工作就唍成了接下来运行程序看看效果,我们这里摆放了两个角色运行效果如下图:

最后,要注意一个问题如果角色的材质含有Alpha通道该如哬措置?因为如果还使用以前的Shader渲染两者都有Apha通道在混合时就会呈现问题。这个问题的解决方案在笔者已出版的《Unity3D拭魅战核心技术详解》电子工业出版社一书中有详细讲解。

你想自己实现一套也不是不可以就是很麻烦,因为它的渲染管线你不好嵌入

我要回帖

 

随机推荐