셰이더를 작성했으며 카메라 앞에 위치한 평면에 추가했을 때 제대로 작동합니다 (이 경우 카메라에는 셰이더가 없습니다). 하지만이 쉐이더를 카메라에 추가하면 화면에 아무것도 표시되지 않습니다. 여기 내 코드입니다, 당신은 내가 Camera.RenderWithShader 메서드와 호환되도록 그것을 어떻게 바꿀 수 있는지 알려줄 수 있습니까?유니티에서 카메라 렌더링을위한 셰이더 사용
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
}
유니티 프로가 있습니다. 하지만 어안 대본이 없습니다. 코드를 나와 공유 할 수 있습니까? Fisheye 스크립트 외에 추가해야하는 모듈이나 라이브러리가 있습니까? – user1021110
다음 링크를 참조하십시오. 24 시간 후에 파일을 삭제합니다. https://www.dropbox.com/s/rs8nx7fn1lgkg70/Image%20Effects%20%28Pro%20Only%29.unityPackage – MichaelTaylor3D
감사합니다. 나는 그것을 다운로드했다. 나는 결과를 여기서 남겨 둘 것이다. 도와 줘서 고마워. – user1021110