请教unity3d 空气墙气浪效果怎么做,有没现成shader

如何实现人物被遮挡以后的透视效果?
就像x光射线一样,人物的脚被挡住了,那么就挡住的部分出现x光透视效果,如果没挡住,那就正常效果,不知道要用什么脚本
要评论请先&或者&
:只能使用shader来实现了。先绘制其他物体,然后绘制这个物体,这个shader的片元做深度判断,深度比其他物体深的以透视效果呈现,深度比其他物体深的以正常效果呈现。 怎么判断片元深度呢 shader里面好像没找到判断深度的说明啊
正要用到这种效果,求指导
楼上大大好厉害,貌似是这种解决方案可用,尝试中
昨天浏览的时候看到有这个资料。看看合不合适。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1305/thread/2_8942_a0bdaeb.png');" alt="效果1" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1305/thread/2_e866e56fe.png');" alt="效果2" />
以下是相关内容using UnityE
using System.C &
public class example : MonoBehaviour { & &
void Update() { & & & &
&&RaycastHit[] & & & &
&&hits = Physics.RaycastAll(transform.position, transform.forward, 100.0F); & & & &
&&int i = 0; & & & &
&& & & & while (i & hits.Length) { & & & & & &
&& &RaycastHit hit = hits; & & & & & &
&& & &Renderer renderer = hit.collider. & & & & & &
&& &if (renderer) { & & & & & & & &
&& & &renderer.material.shader = Shader.Find(&Transparent/Diffuse&); & & & & & & & &
&& & & & renderer.material.color = new Color(renderer.material.color.r,renderer.material.color.g,renderer.material.color.b,0.3f);
&&
&& &} & & & & & &
&& &i++; & & & &
&& } & &
&& }
:我貌似见过插件实现类似的功能的。 话说这个插件是啥类型的,是不是那个可以通过各种图形表来拼装成一个shader的插件呢,那个是有了,但是目前还不知道要怎么用的说,或者是说还有其他的插件
我貌似见过插件实现类似的功能的。
只能使用shader来实现了。先绘制其他物体,然后绘制这个物体,这个shader的片元做深度判断,深度比其他物体深的以透视效果呈现,深度比其他物体深的以正常效果呈现。在unity中使用shader制作流光效果
我的图书馆
在unity中使用shader制作流光效果
流光,关键在于流动。从画法的角度看,流光效果的成本很低,一张流光图,一张过滤图,一个渲染遍,即可实现效果。但是效果很令人印象深刻。你跟随着这篇东西去一步步操作,就能得到一些实际可用的Shader。在开始写一个简单的流光效果之前,我们先普及一些shader的知识这是一个新建的shader,我只是添加了一些注释接下去,我们要在此基础上,一步步修改加上流光的效果。这里我们使用 surfaceshader,surfaceshader是unity的一个特别设计。他是pixelshader的一部分,准确的说,前半部分。Surfaceshader自动生成一个传统的vertexshader和pixelshader,根据你所指定的光照模型。因为大部分的shader并不干涉光照模型,而只是在像素阶段做一些叠加、混合什么的。Surfaceshader巧妙的让你可以只关心这一部分,学习的时候,只关注一部分,恰恰是个优点。随便准备两张图片,一张底图,一张流光图这里顺便给出一个快速制作流光图的ps操作方法。1、弄一个黑色的背景2、使用渐变工具其中logo01是底图,无所谓用什么东西,最好选择一张比较暗的图,我们准备采用加法让他变亮,暗一点效果更明显。我们想使用flow图的alpha通道,flow图延x方向运动,循环往复。至少要让flow图的一个半边全黑,因为加法全黑等于没加。当使用这半边时完全不加亮Flow贴图的设置这里要特别说明三个地方Alpha from Grayscale 从图片的灰度生成alpha通道,直接制作alpha通道不直观,灰度图很直观。
这个选项就是让你用一张直观的灰度图生成通道。你可以不用这个选项,而是自己提供一个有alpha通道的图片wrap Mode当uv超出0 1 范围是的取值方法,我们需要让这张图循环往复,就是利用wrap mode repeat来实现的。
必须使用这个选项Format,因为这张图我们只需要一个通道,而且不适合压缩,没有比Alpha8更适合的存储格式了
可选,只是为了节省内存容量
然后流光Shader 新手拈来,有注释的部分是在空shader基础上增加的稍微解释一下原理,把一张贴图的四个顶点的uv连成一个红框,是这样的。把每个顶点的uv.x /2 是这样的对uv.x 再加上同一个值是这样的我们就是要用加上的这个值,对这个红框做动画效果如下拖动shader下面的拉杆就可以看到循环效果,用一个脚本去驱动这个参数做动画,就有流光效果了。然后让我们做一点改变,动画这个东西不用脚本也能做。因为shaderlab里面有默认参数_Time.y 他等于Time.timeSinceLevelLoad经过Step02的修改,这个材质可以自动的动起来,不需要代码驱动。然后我们可以再改一点点,让他变成透明的也可以改成不受光影响的附注:本人大部分出自《剑英陪你玩转图形学》,作者李剑英
TA的最新馆藏
喜欢该文的人也喜欢相关文章:&&&&&&&&&&&&
最新添加资讯
24小时热门资讯
附近好友搜索}

我要回帖

更多关于 unity 水源波浪 光影 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信