无缝贴图使用该shader,在移动过程中可以无限延伸,保持固定位置。


Shader "TransparentWire"
{Properties{_Texture0("Texture 0", 2D) = "white" {}_YNormal("YNormal", Float) = 0.5_XNormal("XNormal", Float) = 0.5_Multiply("Multiply", Float) = 2_Texture1("Texture 1", 2D) = "white" {}_alpha("alpha",Float)=1[HideInInspector] _texcoord( "", 2D ) = "white" {}}SubShader{Tags { "RenderType"="Opaque" }LOD 100CGINCLUDE#pragma target 3.0ENDCGBlend SrcAlpha OneMinusSrcAlphaAlphaToMask OffCull BackColorMask RGBAZWrite OffZTest LEqualOffset 0 , 0Pass{Name "Unlit"Tags { "LightMode"="ForwardBase" }CGPROGRAM#ifndef UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX//only defining to not throw compilation error over Unity 5.5#define UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input)#endif#pragma vertex vert#pragma fragment frag#pragma multi_compile_instancing#include "UnityCG.cginc"#define ASE_NEEDS_FRAG_WORLD_POSITIONstruct appdata{float4 vertex : POSITION;float4 color : COLOR;half3 ase_normal : NORMAL;float4 ase_texcoord : TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct v2f{float4 vertex : SV_POSITION;#ifdef ASE_NEEDS_FRAG_WORLD_POSITIONfloat3 worldPos : TEXCOORD0;#endiffloat4 ase_texcoord1 : TEXCOORD1;float4 ase_texcoord2 : TEXCOORD2;UNITY_VERTEX_INPUT_INSTANCE_IDUNITY_VERTEX_OUTPUT_STEREO};uniform sampler2D _Texture0;uniform half _XNormal;uniform half _YNormal;uniform half _Multiply;uniform sampler2D _Texture1;uniform half4 _Texture1_ST;uniform half _alpha;v2f vert ( appdata v ){v2f o;UNITY_SETUP_INSTANCE_ID(v);UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);UNITY_TRANSFER_INSTANCE_ID(v, o);half3 ase_worldNormal = UnityObjectToWorldNormal(v.ase_normal);o.ase_texcoord1.xyz = ase_worldNormal;o.ase_texcoord2.xy = v.ase_texcoord.xy;//setting value to unused interpolator channels and avoid initialization warningso.ase_texcoord1.w = 0;o.ase_texcoord2.zw = 0;float3 vertexValue = float3(0, 0, 0);#if ASE_ABSOLUTE_VERTEX_POSvertexValue = v.vertex.xyz;#endifvertexValue = vertexValue;#if ASE_ABSOLUTE_VERTEX_POSv.vertex.xyz = vertexValue;#elsev.vertex.xyz += vertexValue;#endifo.vertex = UnityObjectToClipPos(v.vertex);#ifdef ASE_NEEDS_FRAG_WORLD_POSITIONo.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;#endifreturn o;}fixed4 frag (v2f i ) : SV_Target{UNITY_SETUP_INSTANCE_ID(i);UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);fixed4 finalColor;#ifdef ASE_NEEDS_FRAG_WORLD_POSITIONfloat3 WorldPosition = i.worldPos;#endifhalf3 ase_worldNormal = i.ase_texcoord1.xyz;half3 normalizedWorldNormal = normalize( ase_worldNormal );half3 temp_output_83_0 = abs( normalizedWorldNormal );half3 temp_output_98_0 = ( _Multiply * WorldPosition );half temp_output_113_0 = (temp_output_98_0).x;half temp_output_114_0 = (temp_output_98_0).y;half2 appendResult77 = (half2(temp_output_113_0 , temp_output_114_0));half temp_output_115_0 = (temp_output_98_0).z;half2 appendResult78 = (half2(temp_output_113_0 , temp_output_115_0));half2 ifLocalVar70 = 0;if( _YNormal >= (temp_output_83_0).y )ifLocalVar70 = appendResult77;elseifLocalVar70 = appendResult78;half2 appendResult79 = (half2(temp_output_114_0 , temp_output_115_0));half2 ifLocalVar72 = 0;if( _XNormal >= (temp_output_83_0).x )ifLocalVar72 = ifLocalVar70;elseifLocalVar72 = appendResult79;float2 uv_Texture1 = i.ase_texcoord2.xy * _Texture1_ST.xy + _Texture1_ST.zw;finalColor = ( tex2D( _Texture0, ifLocalVar72 ) * tex2D( _Texture1, uv_Texture1 ).r *_alpha);return finalColor;}ENDCG}}CustomEditor "ASEMaterialInspector"}

Unity无缝贴图无限延伸Shader相关推荐

  1. Unity 法线贴图、高光贴图、Cube Map shader

    Unity 相关纹理贴图 写unity shader有些时候了,出于寂寞,拿出来晒晒吧!!!! 先看一下Unity 法线贴图.高光贴图.Cube Map shader最终效果: 说老实话,我不怎么喜欢 ...

  2. Unity从零开始实现一个全息效果Shader

    Unity从零开始实现一个全息效果Shader 前言 开始捣鼓 一.准备阶段 二.先从透明效果开始 三.顶点故障效果 四.扫描线效果 五.菲尼尔反射效果 六.颗粒效果 七.颜色故障效果 CustomE ...

  3. 解决Unity模型贴图反转的问题

    解决Unity模型贴图反转的问题 设置shader的贴图属性:tiling x为-1 参考链接:https://www.cnblogs.com/vivid-stanley/p/5494218.html

  4. 案例学习——Unity基于体绘制的大气散射shader

    本案例学习资料来源 Volumetric Atmospheric Scattering 案例学习--Unity基于体绘制的大气散射shader 0 效果展示 1 引入 1.0 介绍 1.1 单次散射( ...

  5. Unity基础三: 什么是Shader

    什么是Shader Shader(着色器)是一段能够针对3D对象进行操作.并被GPU所执行的程序.Shader并不是一个统一的标准,不同的图形接口的Shader并不相同.OpenGL的着色语言是GLS ...

  6. unity 线程断点时卡机_Compute Shader在Unity和UE4中的应用

    该文档为学习文档,如有错误欢迎指正. 1. D3D11 Compute Shader概述 Compute Shader 是一个通用计算 Stage.它利用了GPU的并行处理器,实现大量线程并发执行.它 ...

  7. 3D万花筒无限延伸动画特效(源码)

    HTML代码 <!DOCTYPE html> <html lang="en" > <head> <meta charset="U ...

  8. SVG黑科技排版『点击多次展开无缝长图』

    案例解析 SVG黑科技排版『点击多次展开无缝长图』 模板拆解 第一次展开 <!DOCTYPE html> <html> <head><meta charset ...

  9. Unity教程之-Unity光照贴图Lightmapping

    一直没有光照贴图的深入了解,只知道它与灯光比起可以降低drawCall,偶然看到一本外文书上有详细的资料,这里学习并分享一下,下面开始! 一:简要说明一下Unity光照贴图的概念 翻译会有各种偏差,这 ...

最新文章

  1. Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)
  2. java里面add报错_java.util.Arrays$ArrayList addAll报错
  3. 远程办公的破冰行动!
  4. 最好的ppt转pdf软件
  5. Java:Overriding与Overloading
  6. Installing third-party firmware on x3-55 letv (by quqi99)
  7. tomcat配置war包解压地址
  8. 新手如何配置WordPress站点
  9. 【《2021机器学习-李宏毅》学习笔记】
  10. 雪球产品,场外雪球结构介绍
  11. oRbIt 的专栏 用天文方法计算二十四节气(下)
  12. allegro 进行outline倒角
  13. 傅里叶变换、拉普拉斯变换、Z 变换的联系是什么?为什么要进行这些变换?...
  14. JavaEE学习笔记整理
  15. ffmpeg批量转换flac为wav,m4a转换为wav,批量删除目录下某一后缀名文件,复制文件中有相同部分的文件
  16. 数据版吐槽大会:盘点2018国产综艺节目
  17. WebServer应用示例:不到100行代码玩转Siri语音控制 | ESP32轻松学(Arduino版)
  18. 如何将Blender模型导入Panda3d
  19. 2021年三季度中国医药商业行业A股上市企业营收排行榜:运盛医疗于8月初成功摘帽(附热榜TOP33详单)
  20. 第四章 选择个好老板

热门文章

  1. mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK
  2. 全球十大外汇黄金交易平台排名2020版
  3. PHP爬取微信公众号文章(可做为扩展类直接使用)
  4. oppok10pro和红米k50哪个值得买 两者配置对比
  5. 【app性能测试】Python脚本监控app指标
  6. 安装mysql第三步红叉_MySQL安装失败解决的方法
  7. 人工智能带来的影响和趋势分析
  8. 一文了解国家为什么大力推行OFD版式文件格式?
  9. TypeScript杂谈(一)——type关键字
  10. 宣传片怎么制作效果更好