我寫了一個着色器,並且它在我將其添加到位於相機前面的平面中(在這種情況下相機沒有着色器)時它工作正常。但是隨後我將這個着色器添加到相機,它不會在屏幕上顯示任何內容。這裏是我的代碼,你能告訴我如何改變它與Camera.RenderWithShader方法兼容嗎?在Unity中使用着色器進行相機渲染
Shader "Custom/she1" {
Properties {
top("Top", Range(0,2)) = 1
bottom("Bottom", Range(0,2)) = 1
}
SubShader {
// Draw ourselves after all opaque geometry
Tags { "Queue" = "Transparent" }
// Grab the screen behind the object into _GrabTexture
GrabPass { }
// Render the object with the texture generated above
Pass {
CGPROGRAM
#pragma debug
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0
sampler2D _GrabTexture : register(s0);
float top;
float bottom;
struct data {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 position : POSITION;
float4 screenPos : TEXCOORD0;
};
v2f vert(data i){
v2f o;
o.position = mul(UNITY_MATRIX_MVP, i.vertex);
o.screenPos = o.position;
return o;
}
half4 frag(v2f i) : COLOR
{
float2 screenPos = i.screenPos.xy/i.screenPos.w;
float _half = (top + bottom) * 0.5;
float _diff = (bottom - top) * 0.5;
screenPos.x = screenPos.x * (_half + _diff * screenPos.y);
screenPos.x = (screenPos.x + 1) * 0.5;
screenPos.y = 1-(screenPos.y + 1) * 0.5 ;
half4 sum = half4(0.0h,0.0h,0.0h,0.0h);
sum = tex2D(_GrabTexture, screenPos);
return sum;
}
ENDCG
}
}
Fallback Off
}
我有Unity Pro。但我沒有魚眼腳本。你能和我分享代碼嗎?除了魚眼腳本之外,還有哪些模塊或庫需要添加? – user1021110
請參閱以下鏈接,警告我在24小時內刪除該文件:https://www.dropbox.com/s/rs8nx7fn1lgkg70/Image%20Effects%20%28Pro%20Only%29.unityPackage – MichaelTaylor3D
謝謝。我已經下載了它。我會在這裏留下結果。再次感謝你的幫助。 – user1021110