日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个透明的shader

發布時間:2023/11/30 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个透明的shader 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
楊航最近在學Unity3D

Shader "Custom/xiankuang" {
?Properties {

??? _LineColor ("Line Color", Color) = (1,1,1,1)
??? _GridColor ("Grid Color", Color) = (1,1,1,0)
??? _LineWidth ("Line Width", float) = 0.2
?}
?SubShader {
?? Pass
??? {
??? //Tags { "RenderType" = "Transparent" }
?? // Blend SrcAlpha OneMinusSrcAlpha//這句可以注釋掉,能夠避免線框太粗出現的模糊效果。
??? //AlphaTest Greater 0.5
??? //Cull Off//這句是后加的,取消遮擋消隱,體現出透明
????
??? CGPROGRAM
??? #pragma vertex vert
??? #pragma fragment frag
????
??? uniform float4 _LineColor;
??? uniform float4 _GridColor;
??? uniform float _LineWidth;
????
??? // vertex input: position, uv1, uv2
??? struct appdata
??? {
??? float4 vertex : POSITION;
??? float4 texcoord1 : TEXCOORD0;
??? float4 color : COLOR;
??? };
????
??? struct v2f
??? {
??? float4 pos : POSITION;
??? float4 texcoord1 : TEXCOORD0;
??? float4 color : COLOR;
??? };
????
??? v2f vert (appdata v)
??? {
??? v2f o;
??? o.pos = mul( UNITY_MATRIX_MVP, v.vertex);
??? o.texcoord1 = v.texcoord1;
??? o.color = v.color;
??? return o;
??? }
????
??? fixed4 frag(v2f i) : COLOR
??? {
??? fixed4 answer;
????
??? float lx = step(_LineWidth, i.texcoord1.x);
??? float ly = step(_LineWidth, i.texcoord1.y);
??? float hx = step(i.texcoord1.x, 1.0 - _LineWidth);
??? float hy = step(i.texcoord1.y, 1.0 - _LineWidth);
????
??? answer = lerp(_LineColor, _GridColor, lx*ly*hx*hy);
????
??? return answer;
??? }
??? ENDCG
??? }
??? }
??? Fallback "Vertex Colored", 1
}

總結

以上是生活随笔為你收集整理的一个透明的shader的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。