unity中shader的Cutout問題

2021-06-23 08:40:07 字數 1491 閱讀 2374

unity中自帶的shader裡有cutout型別的shader,今天發現這種型別很詭異,先

貼幾種自帶的:

shader "transparent/cutout/diffuse"

_cutoff ("alpha cutoff", range(0,1)) = 0.5

}subshader

lod 200

cgprogram

#pragma su***ce surf lambert alphatest:_cutoff

sampler2d _maintex;

fixed4 _color;

struct input ;

void surf (input in, inout su***ceoutput o)

endcg

}fallback "transparent/cutout/vertexlit"

}shader "transparent/diffuse"

}subshader

lod 200

cgprogram

#pragma su***ce surf lambert alpha

sampler2d _maintex;

fixed4 _color;

struct input ;

void surf (input in, inout su***ceoutput o)

endcg

}fallback "transparent/vertexlit"

}我現在做的某個專案,模型需要用transparent/diffuse的效果,但是有的建築窗戶是貼圖,貼圖中的邊緣匯入時alpha是0,

我綜合上述**寫了個shader,能再電腦上的unity的android平台上執行,但是在手機上會宕機。。android手機只能同時支援

lightmap,alphatest,ztest 中的兩種。

shader "custom/trandifext"

_cutoff ("alpha cutoff", range(0,1)) = 0.5

}subshader

lod 200

cgprogram

//#pragma su***ce surf lambert alpha

#pragma su***ce surf lambert

#include "unitycg.cginc"

sampler2d _maintex;

fixed4 _color;

fixed _cutoff;

struct input ;

void surf (input in, inout su***ceoutput o)

endcg

}fallback "vertexlit"

}然後又被同夥找了個shader:"transparent/cutout/vertexlit",可以在手機android上執行,同時有lightmap,alphatest,ztest 三種(不宕機)

Unity中的Shader的形態

unity通過shaderlab來組織shader 作為一款號稱跨平台性最好的遊戲開發引擎,unity使用自定義使用mono這個開源的.net來實現。對於要適應不同的gpu的shader來說,unity使用自定義shaderlab來組織shader的內容,並會針對不同的平台進行編譯。1.關鍵字sha...

Unity中shader變數的名字規範

unity的shader讓我想起了以前被c語言的巨集支配的恐懼,裡面很多的變數名字都是固定的,會在其他 中被隱式的使用,把遇到的記錄下來。1.maintex base rgb 2d white main tex會在 後處理中的graphics.blit src,tempbuffer,material...

Unity3D中的shader高階

unity3d shader 基礎知識 unity3d shader 官方教程翻譯 1.unity中配備了強大的陰影和材料的語言工具稱為shaderlab,以程式語言來看,它類似於cgfx和direct3d的效果框架語法,它描述了材質所必須要的一切諮詢,而不僅僅侷限於平面頂點 畫素著色。2.在uni...