SKYBOX

 Shader "Unlit/CSKYBOX"

{

    Properties{

        _Tint("Tint Color", Color) = (.5, .5, .5, .5)

        [Gamma] _Exposure("Exposure", Range(0, 8)) = 1.0

        _Power("Power", Float) = 1.0

        _Rotation("Rotation", Range(0, 360)) = 0

        _BrightnessColor("Brightness Color", Color) = (1,1,1,1)

        _BrightnessAmp("Brightness Amplifier", Float) = 1

        _BrightnessCutline("Brightness Cutline", Float) = 3

        [NoScaleOffset] _Tex("Cubemap   (HDR)", Cube) = "grey" {}

    }


        SubShader{

            Tags { "Queue" = "Background" "RenderType" = "Background" "PreviewType" = "Skybox" }

            Cull Off ZWrite Off


            Pass {


                CGPROGRAM

                #pragma vertex vert

                #pragma fragment frag

                #pragma target 2.0


                #include "UnityCG.cginc"


                samplerCUBE _Tex;

                half4 _Tex_HDR;

                half4 _Tint;

                half _Exposure;

                half _Power;

                half3 _BrightnessColor;

                half _BrightnessAmp;

                half _BrightnessCutline;

                float _Rotation;


                float3 RotateAroundYInDegrees(float3 vertex, float degrees)

                {

                    float alpha = degrees * UNITY_PI / 180.0;

                    float sina, cosa;

                    sincos(alpha, sina, cosa);

                    float2x2 m = float2x2(cosa, -sina, sina, cosa);

                    return float3(mul(m, vertex.xz), vertex.y).xzy;

                }


                struct appdata_t {

                    float4 vertex : POSITION;

                    UNITY_VERTEX_INPUT_INSTANCE_ID

                };


                struct v2f {

                    float4 vertex : SV_POSITION;

                    float3 texcoord : TEXCOORD0;

                    UNITY_VERTEX_OUTPUT_STEREO

                };


                v2f vert(appdata_t v)

                {

                    v2f o;

                    UNITY_SETUP_INSTANCE_ID(v);

                    UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);

                    float3 rotated = RotateAroundYInDegrees(v.vertex, _Rotation);

                    o.vertex = UnityObjectToClipPos(rotated);

                    o.texcoord = v.vertex.xyz;

                    return o;

                }


                fixed4 frag(v2f i) : SV_Target

                {

                    half4 tex = texCUBE(_Tex, i.texcoord);

                    half3 c = DecodeHDR(tex, _Tex_HDR);

                    c = c * _Tint.rgb * unity_ColorSpaceDouble.rgb;

                    c = pow(c, _Power);

                    c *= _Exposure;

                    if (length(c) > _BrightnessCutline)

                        c *= _BrightnessAmp * _BrightnessColor.rgb;


                    return half4(c, 1);

                }

                ENDCG

            }

    }


        Fallback Off


}


댓글

이 블로그의 인기 게시물

About AActor!!! "UObject" has no member "BeginPlay"

UNREAL Android build information

C++ 생성자 위임 (delegating constructor)