• 这一篇文章中,我们将讲解如何在unity3D中通过shader来实现UV动画,来修改纹理Uv坐标以滚动贴图。 先看效果图 UV动画是一种常用的渲染技巧,经常用来描述水的流动、霓虹灯的闪烁等。实现的原理就是动态...

    这一篇文章中,我们将讲解如何在unity3D中通过shader来实现UV动画,来修改纹理Uv坐标以滚动贴图。

    先看效果图



    UV动画是一种常用的渲染技巧,经常用来描述水的流动、霓虹灯的闪烁等。实现的原理就是动态修改贴图的UV坐标,使物体表面产生变化。采用不同的算法模型可以实现很多很复杂的效果,以下是shader代码:

    Shader "Unlit/MyShader/UVAim"
    {
    Properties
    {
    _MainTex ("Texture", 2D) = "white" {}
    _ScrollY("Scroll Speed", Float) = 1.0
    }
    SubShader
    {
    Tags { "RenderType"="Opaque" }
    LOD 100


    Pass
    {
    CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    // make fog work
    #pragma multi_compile_fog

    #include "UnityCG.cginc"


    float _ScrollY;


    struct appdata
    {
    float4 vertex : POSITION;
    float2 uv : TEXCOORD0;
    };


    struct v2f
    {
    float2 uv : TEXCOORD0;
    UNITY_FOG_COORDS(1)
    float4 vertex : SV_POSITION;
    };


    sampler2D _MainTex;
    float4 _MainTex_ST;

    v2f vert (appdata v)
    {
    v2f o;
    o.vertex = UnityObjectToClipPos(v.vertex);
    o.uv = TRANSFORM_TEX(v.uv, _MainTex) + frac(float2(0, _ScrollY) * _Time.y);


    UNITY_TRANSFER_FOG(o,o.vertex);
    return o;
    }

    fixed4 frag (v2f i) : SV_Target
    {
    // sample the texture
    fixed4 col = tex2D(_MainTex, i.uv);
    // apply fog
    UNITY_APPLY_FOG(i.fogCoord, col);
    return col;
    }
    ENDCG
    }
    }
    Fallback "VertexLit"
    }

    展开全文
  • Unity3D基础知识、游戏算法一网打尽。
  • unity3duv流动动画效果

    2019-10-01 05:26:37
    计算物体起始点和终点的坐标信息,都转换成本地坐标和UV, 转载于:https://www.cnblogs.com/newyue/archive/2012/12/18/2823595.html

    计算物体起始点和终点的坐标信息,都转换成本地坐标和UV,

    转载于:https://www.cnblogs.com/newyue/archive/2012/12/18/2823595.html

    展开全文
  • 在用U3D做特效的时候我们有时候需要用到手K UV动画,当然有些脚本可以实现,但是没有手K的可控性强。今天抽空给大家讲一下怎么实现。 1、我自己制作了一张序列图,有文字1-8的排序,便于观看。贴在模型上是这样...

    http://www.cgjoy.com/forum.php?mod=viewthread&tid=110555



    在用U3D做特效的时候我们有时候需要用到手K UV动画,当然有些脚本可以实现,但是没有手K的可控性强。今天抽空给大家讲一下怎么实现。

    1、我自己制作了一张序列图,有文字1-8的排序,便于观看。贴在模型上是这样的效果。



    2、可以看的出来这并不是我们需要的排列,我们需要单个的数字占满整个Plane,而不是现实整张图。所以,我们需要修改贴图的Tiling,让数字1占满Plane


    3、这个时候就可以打开动画编辑器来K序列图的动画了。先让UV走到数字2试试。我们需要Offset的数值,这个是用来控制贴图UV的流动。由于这张序列图是4*2的,所以,横向移动0.25个单位即移动了一格。

    4UV走到数字45之间的时候,UV需要纵向移动一格。这个地方也是特别需要注意的。

    5、当K完所有的帧之后还不够,此时播放的话我们会发现贴图走动是异常混乱的,这个时候我们需要到曲线里面,把所有关键帧的曲线都打直。到此unity3d手动实现UV动画就完成,是不是很简单。



    我的博客地址:http://blog.sina.com.cn/intn 欢迎大家交流

    在用U3D做特效的时候我们有时候需要用到手K UV动画,当然有些脚本可以实现,但是没有手K的可控性强。今天抽空给大家讲一下怎么实现。

    1、我自己制作了一张序列图,有文字1-8的排序,便于观看。贴在模型上是这样的效果。



    2、可以看的出来这并不是我们需要的排列,我们需要单个的数字占满整个Plane,而不是现实整张图。所以,我们需要修改贴图的Tiling,让数字1占满Plane


    3、这个时候就可以打开动画编辑器来K序列图的动画了。先让UV走到数字2试试。我们需要Offset的数值,这个是用来控制贴图UV的流动。由于这张序列图是4*2的,所以,横向移动0.25个单位即移动了一格。

    4UV走到数字45之间的时候,UV需要纵向移动一格。这个地方也是特别需要注意的。

    5、当K完所有的帧之后还不够,此时播放的话我们会发现贴图走动是异常混乱的,这个时候我们需要到曲线里面,把所有关键帧的曲线都打直。到此unity3d手动实现UV动画就完成,是不是很简单。



    我的博客地址:http://blog.sina.com.cn/intn 欢迎大家交流
    展开全文
  • unity流动效果

    2020-07-02 09:45:09
    unity shaderUV图片具有流动效果,收藏起来,备用很重要。
  • Unity3D动画贴图、滚动纹理、滚动贴图脚本 using UnityEngine; using System.Collections; //Decompile by Si Borokokok public class ScrollBehaviour : MonoBehaviour { public int materialIndex; public ...

    Unity3D动画贴图、滚动纹理、滚动贴图脚本

    using UnityEngine;
    using System.Collections;
    
    //Decompile by Si Borokokok
    
    public class ScrollBehaviour : MonoBehaviour
    {
        public int materialIndex;
        public string textureName = "_MainTex";
        public Vector2 uvAnimationRate = new Vector2(1f, 0f);
        private Vector2 uvOffset = Vector2.zero;
    
        private void LateUpdate()
        {
            uvOffset += (Vector2) (uvAnimationRate * Time.deltaTime);
            if (renderer.enabled)
            {
                renderer.materials[materialIndex].SetTextureOffset(textureName, uvOffset);
            }
        }
    }
    
    
     
    



    展开全文
  • 使用Linerender制作虚线 Shader "Custom/Pipe" { Properties { _Cutoff( "Mask Clip Value", Float ) = 0.5 _Speed("Speed", Range( 0 , 150)) = 0.01 _MainTex("MainTex", 2D) = "white" {} ...

    使用Linerender制作虚线

    Shader "Custom/Pipe"
    {
    	Properties
    	{
    		_Cutoff( "Mask Clip Value", Float ) = 0.5
    		_Speed("Speed", Range( 0 , 150)) = 0.01
    		_MainTex("MainTex", 2D) = "white" {}
    		_Number("Number", Range( 0 , 100)) = 3.082893
    		[HideInInspector] _texcoord( "", 2D ) = "white" {}
    		[HideInInspector] __dirty( "", Int ) = 1
    	}
    
    	SubShader
    	{
    		Tags{ "RenderType" = "TransparentCutout"  "Queue" = "AlphaTest+0" "IgnoreProjector" = "True" }
    		Cull Back
    		CGPROGRAM
    		#include "UnityShaderVariables.cginc"
    		#pragma target 3.0
    		#pragma surface surf Standard keepalpha addshadow fullforwardshadows 
    		struct Input
    		{
    			float2 uv_texcoord;
    		};
    
    		uniform sampler2D _MainTex;
    		uniform float _Speed;
    		uniform float _Number;
    		uniform float _Cutoff = 0.5;
    
    		void surf( Input i , inout SurfaceOutputStandard o )
    		{
    			float2 temp_cast_0 = (_Number).xx;
    			float2 uv_TexCoord158 = i.uv_texcoord * temp_cast_0;
    			float4 tex2DNode174 = tex2D( _MainTex, ( ( _Speed * _Time ) + uv_TexCoord158.x ).xy );
    			o.Albedo = tex2DNode174.rgb;
    			o.Alpha = 1;
    			clip( tex2DNode174.a - _Cutoff );
    		}
    
    		ENDCG
    	}
    	Fallback "Diffuse"
    }

     

    效果如下:

     

    https://img-blog.csdnimg.cn/20191202134858847.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMTIwOTQ2,size_16,color_FFFFFF,t_70

    展开全文
  • 实现目标 多个粒子组成环状,每个粒子都有各自的运动轨迹 实现步骤 在场景中创建一个空对象,并将其命名为ParticleHalo,再在其下创建一个Particle System子对象,命名为Halo 两个新的脚本,分别命名为ParticleData...
  • 实现工厂流程的传送带传送物体的过程,包过一些基础的知识点。1.传送物体左右上下移动2.传送带滚轮的旋转3.传送带贴图流动,创建panel,加上贴图。
  • 网上看到的UV动画既能实现效果,又不费资源,perfect! UV动画其实就是动态改变UV的坐标,让模型在一张不同颜色的贴图之间滑动,形成模型上贴图一直在动的感觉,如果你有一张河流的贴图,做出来的效果就是一个流动的...
  • shader处理纹理贴图移动特效产生岩浆、瀑布效果
  • //功能分析:这里采用UV动画的方式来实现,利用Alpha贴图控制流动的形状 // 利用Alpha遮罩贴图,控制模型中哪些地方需要进行流动 Shader "Custom/DataFlowEffect" { Properties { _MainC...
  • 做了个样例,突然想到贪吃蛇,哈哈,所以以后要实现蛇的效果好像也可以用哎,就在标题来添加啦。 主要把这个水管分为n段,每段是一个类 类的内容如下: using System.Collections; using System.Collections....
  • 目前,Unity3D应用范围非常广泛,从手机游戏到联网的大型游戏,从严肃游戏到电子商务,再到VR虚拟现实均可完美呈现。Unity3D是一软专业3D游戏引攀,其具备跨平台发布、离效能优化、高性价比,AAA级游戏画面演染效果...
  • unity3d水特效

    2020-07-09 12:07:46
    特别好用的unity3d水特效,shader示例,可以进行二次开发
  • 绝对干货,请收藏以让自己觉得已掌握需要时随时查阅,请点击在看及转发到朋友圈以在朋友圈装逼帮助更多的朋友!...Unity3D各种效果的Shader等实现、Shader等Unity3D图形渲染知识、骨骼动画和物理等Uni...
  • 目前,Unity3D应用范围非常广泛,从手机游戏到联网的大型游戏,从严肃游戏到电子商务,再到VR虚拟现实均可完美呈现。Unity3D是一软专业3D游戏引攀,其具备跨平台发布、离效能优化、高性价比,AAA级游戏画面演染效果...
  • LIQUID PHYSICS物理模拟资源包,使用2D物理引擎,使用粒子来模拟水的效果,然后使用一整张图通过shader算法将粒子整合起来形成水的效果,可以实现类似小鳄鱼爱洗澡的水流效果,性能可以在手机端使用。资源包中还有...
  • Unity3d 实现用LineRenderer画线 不依赖摄像机位置 用LineRenderer画线难点: 鼠标坐标和屏幕坐标之间的转换 我是弄了很多天才弄好的 跟大家分享一下 using UnityEngine; using System.Collections; using...
  • Unity3D手游开发实践

    2018-04-29 10:58:53
    虽然基于Unity3D,很多东西同样适用于Cocos。本文从以下10大点进行阐述:架构设计、原生插件/平台交互、版本与补丁、用脚本,还是不用?这是一个问题、资源管理、性能优化、异常与Crash、适配与兼容、调试及开发工具...
1 2 3 4 5 ... 15
收藏数 285
精华内容 114