当前位置:网站首页>unity 扫描圈 圆扩展方法
unity 扫描圈 圆扩展方法
2022-06-30 05:17:00 【小生云木】
unity 扫描圈 圆扩展方法
完整shader代码
Shader "SongShaderDemo/RadiationCircle"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {
}
_CentorPoint("CentrePoint",Vector)= (0, 0, 0, 0)
_Dis("Float", Float) = 30//最大距离
_Range("Range", Range(0, 1.0)) = 0.01//移动范围
_LineWide("LineWide", Range(0, 1)) = 0.001//线宽
_Color("color",Color) = (1,1,1,1) //颜色,一般用fixed4
_TransColor("TransColor",Color) = (1,1,1,0) //颜色,一般用fixed4
_FillTex("FillTexture", 2D) = "white" {
}
_FillColor("FillColor",Color) = (1,1,1,1) //颜色,一般用fixed4
}
SubShader
{
Tags {
"RenderType" = "Transparent" "IgnoreProjector" = "True" "Queue" = "Transparent" }
LOD 100
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv0 : TEXCOORD0;
float2 uv : TEXCOORD2;
float4 vertex : SV_POSITION;
float3 worldPos : TEXCOORD3;
};
CBUFFER_START(UnityPerMaterial)
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _FillTex;
fixed4 _FillColor;
float4 _FillTex_ST;
float4 _CentorPoint;
float _Dis;
float _Range;
float _LineWide;
fixed4 _Color;
fixed4 _TransColor;
CBUFFER_END
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _FillTex);
o.uv0 = TRANSFORM_TEX(v.uv, _MainTex);
o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.uv0);
float dis = distance(i.worldPos, _CentorPoint.xyz);
float rangeMax = _Dis * _Range ;
float rangeMin = (_Dis)*_Range - _LineWide;
fixed4 Circle= _TransColor;
fixed4 FillCol = _TransColor;
if (dis> rangeMin&&dis< rangeMax)
{
Circle= fixed4(_Color.xyz, ((dis - rangeMin) / _LineWide)*(1 - _Range));
}
if (dis < rangeMin)
{
fixed4 FillTex = tex2D(_FillTex, i.uv);
if (FillTex.w!=0)
{
FillCol = fixed4(FillTex.xyz, (1 - _Range)) + _FillColor;
}
else
{
FillCol = FillTex + _FillColor;
}
}
fixed4 all = Circle + FillCol;
return all*all.w+ col*(1- all.w);
}
ENDCG
}
}
}
边栏推荐
- Go Land no tests were Run: FMT cannot be used. Printf () & lt; BUG & gt;
- Unity2019.3.8f1 development environment configuration of hololens2
- Unity Logitech steering wheel access
- [typescript] cannot redeclare block range variables
- PyGame. Why can't I exit when I click X in the window? I can only exit when I return idle
- 《谁动了我的奶酪》读后感
- C # uses monopinvokecallback to directly call back C # function
- Operation of JSON file
- Unity3d Google Earth
- Special folders in unity3d and their meanings
猜你喜欢

The file has been downloaded incorrectly!

Unity Logitech steering wheel access
Sourcetree usage

14x1.5cm竖向标签有点难,VFP调用BarTender来打印

Unity publishing /build settings

【 VCS + Verdi joint simulation】 ~ Taking Counter as an Example

Basic operations of Oracle data

ParticleSystem in the official Manual of unity_ Collision module

LxC and LXD container summary

Redis cluster concept
随机推荐
Force buckle 977 Square of ordered array
Set a plane to camera viewport
Unity download and installation website
Summary of common loss functions in pytorch
Records of some problems encountered during unity development (continuously updated)
Unity dotween plug-in description
Force buckle 209 Minimum length subarray
Unity Logitech steering wheel access
Unity3d packaging and publishing APK process
Display steerable 3D model in front of unity UI
Installation and getting started with pytoch
Unity + hololens2 performance test
虚析构和纯虚析构
East Tower attack and defense world - XSS bypasses the safety dog
Win10 vs2015 compiling curaengine
【 VCS + Verdi joint simulation】 ~ Taking Counter as an Example
UnityEngine. JsonUtility. The pit of fromjason()
遥感图像/UDA:Curriculum-Style Local-to-Global Adaptation for Cross-Domain Remote Sensing Image Segmentat
Responsive flow layout
Unity notes_ SQL Function
