1. // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'
  2.  
  3. // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'
  4.  
  5. Shader "Custom/RadarWave" {
  6. Properties {
  7. _Color ("Color", Color) = (,,,)
  8. _MainTex ("Albedo (RGB)", 2D) = "white" {}
  9. _Glossiness ("Smoothness", Range(,)) = 0.5
  10. _Metallic ("Metallic", Range(,)) = 0.0
  11. _TransVal("Transparency Value", Range(,)) = 0.5
  12. _StripWidth("Strip Width", Range(0.1,)) = 0.2
  13. _Speed("Speed", Range(,)) =
  14. }
  15. SubShader {
  16. Tags { "RenderType"="Opaque" "Queue" = "Transparent" }
  17. LOD
  18. //Cull Off//关闭背面裁剪
  19. //Lighting Off//此设置在surface shader中不起作用,貌似是在Unlit Shader中使用的
  20. //ZWrite On
  21. //ZTest On
  22. Blend SrcAlpha OneMinusSrcAlpha
  23.  
  24. CGPROGRAM
  25. // Physically based Standard lighting model, and enable shadows on all light types
  26. //#pragma surface surf Standard fullforwardshadows alpha vertex:vert
  27. #pragma surface surf NoLightModel fullforwardshadows alpha vertex:vert
  28.  
  29. // Use shader model 3.0 target, to get nicer looking lighting
  30. #pragma target 3.0
  31.  
  32. sampler2D _MainTex;
  33.  
  34. struct Input {
  35. float2 uv_MainTex;
  36. float4 modelPos_;
  37. };
  38.  
  39. half _Glossiness;
  40. half _Metallic;
  41. half _TransVal;
  42. half _StripWidth;
  43. half _Speed;
  44. fixed4 _Color;
  45.  
  46. // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
  47. // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
  48. // #pragma instancing_options assumeuniformscaling
  49. UNITY_INSTANCING_CBUFFER_START(Props)
  50. // put more per-instance properties here
  51. UNITY_INSTANCING_CBUFFER_END
  52.  
  53. void surf(Input IN, inout SurfaceOutput o) {
  54. // Albedo comes from a texture tinted by color
  55. fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
  56. o.Albedo = c.rgb;
  57. //float4 tmp = mul(unity_WorldToObject, IN.modelPos_);
  58. if (fmod(floor((IN.modelPos_.z-_Time.y*_Speed)/ _StripWidth),)!=)
  59. {
  60. //clip(-1);
  61. discard;
  62. }
  63. //o.Alpha = c.a;
  64. o.Alpha = _TransVal;
  65. }
  66.  
  67. void vert(inout appdata_full v, out Input o)
  68. {
  69. UNITY_INITIALIZE_OUTPUT(Input, o);
  70. o.modelPos_ = v.vertex;
  71. }
  72.  
  73. //命名规则:Lighting接#pragma suface之后起的名字
  74. //lightDir :点到光源的单位向量 viewDir:点到摄像机的单位向量 atten:衰减系数
  75. float4 LightingNoLightModel(SurfaceOutput s, float3 lightDir, half3 viewDir, half atten)
  76. {
  77. float4 c;
  78. c.rgb = s.Albedo;
  79. c.a = s.Alpha;
  80. return c;
  81. }
  82.  
  83. ENDCG
  84. }
  85. FallBack "Diffuse"
  86. }

Unity关闭shader中的光照模型以及如何自定义光照模型的更多相关文章

  1. [Unity]在Shader中获取摄像机角度、视线的问题

    又踩了一坑,好在谷歌到了之前的一个人遇到相同的问题,顺利解决. 先说说问题背景,我目前的毕设是体数据渲染,实现的办法是raycast.最基本的一点就是在fragment program里,获取rayc ...

  2. Unity Shader入门教程(三)自制光照模型

    光照模型的概念目前还不明晰,因为笔者也是一个初学者,所以请小心对待笔者介绍的内容.笔者认为光照模型是规定光照算法的模型,比如说前面提到的Lambert光照模型,规定了材质表面的光线的表达式为 环境光+ ...

  3. 【Unity Shaders】Shader中的光照

    写在前面 自己写过Vertex & Fragment Shader的童鞋,大概都会对Unity的光照痛恨不已.当然,我相信这是因为我们写得少...不过这也是由于官方文档对这方面介绍很少的缘故, ...

  4. 【Unity Shaders】Diffuse Shading——在Surface Shader中使用properties

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  5. unity, multi pass shader中的surface pass

    今天尝试写一个multi pass shader,但其中有一个Pass是surface pass,总是莫名奇妙地报错.后来看到下面帖子: http://forum.unity3d.com/thread ...

  6. unity, shader中获得当前像素深度

    frag shader中直接访问i.pos.z就是深度,不必除以i.pos.w,因为系统已经自动进行过了透视除法且已将i.pos.w置为0.

  7. 【淡墨Unity3D Shader计划】五 圣诞用品: Unity在Shader三种形式的控制&amp;混合操作编译

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/42060963 作者:毛星云(浅墨)  ...

  8. Unity的shader学习1

    先来看一段我们项目常见的Shader代码,这个是Vertex&Fragment shader,目前已经不常用了,不过还是适合我们理解一些基础知识和理解一些比较老的shader 代码.下次我们再 ...

  9. [转] Draw Call未被批处理?告诉你在Unity 5.6中如何查找原因 [复制链接]

    Unity在5.6之前的版本中并未提供很直接的方式来查找Draw Call未被批处理的原因,但Unity 5.6在Frame Debugger中新增了一项功能,帮助开发者查找相关信息.今天这篇文章就为 ...

随机推荐

  1. Linux共享库 base64库

    base64网上实现很多,但是如果是对中文进行编码,有的无法编码,有的编码结果不一致 经过研究,发现base64算法都没有问题,问题出现在汉字的编码上,下面的base64编码稍微做了一些改进,增加了编 ...

  2. FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)

    转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1  概述 在高速系统中FPGA时序约束不止包括内部时钟 ...

  3. C++ 结构体和枚举

    共同体 共同体(union) 是一种数据格式, 它能够存储不同的数据类型, 但只能同时存储其中的一种类型.也就是说, 结构可以同时存储int.long 和 double, 共同体只能存储int.lon ...

  4. Android O seLinux 编译错误

    编译android O源码,遇到错误 FAILED: out/target/product/hon450/obj/ETC/sepolicy_intermediates/sepolicy /bin/ba ...

  5. mysql存储过程----临时表 temporary

    在存储过程中可以使用临时表,下面有一个分割字符串的例子 语法 1.创建:create temporary table 表名(列信息); 2.删除:drop table 表名; 3.清空:truncat ...

  6. 在Asp.net WebAPI使用Session

    最近在改写WebApp时要将以前用泛型处理例程写的Captcha 改成使用WebApi 来实作机制,在实作的过程中发现使用IRequiresSessionState session也无法使用(cont ...

  7. Unity -----一些可能存在的错误

    关于Unity中的资源管理,你可能遇到这些问题 张鑫 8 个月前 原文链接:关于Unity中的资源管理,你可能遇到这些问题 - Blog 在优化Unity项目时,对资源的管理可谓是个系统纷繁的大工程. ...

  8. (转)libhybris及EGL Platform-在Glibc生态中重用Android的驱动

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/41412587 libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于G ...

  9. (实用)Ubuntu 开启NFS服务

    本文介绍如何在Ubuntu下开启NFS文件系统,从而挂载网络上其他机器的文件系统. NFS, Network File System, 即网络文件系统,通常NFS有提供者和使用者,提供者export自 ...

  10. font-awesome 使用方法

    需要引入文件 font-awesome.css <link rel="stylesheet" href="{$yf_theme_path}public/font-a ...