열차 목업의 내부 확인용 프로젝트
smchoi
2024-07-24 ec231f4110c782d44ea2820a1eaaa7a5711c6f16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//////////////////////////////////////////////////////
// MK Glow Composite Sample                            //
//                                                    //
// Created by Michael Kremmel                       //
// www.michaelkremmel.de                            //
// Copyright © 2020 All rights reserved.            //
//////////////////////////////////////////////////////
#ifndef MK_GLOW_COMPOSITE_SAMPLE
    #define MK_GLOW_COMPOSITE_SAMPLE
    
    UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(o);
    
    FragmentOutputAuto fO;
    UNITY_INITIALIZE_OUTPUT(FragmentOutputAuto, fO);
 
    half4 g = SampleTex2D(PASS_TEXTURE_2D(_BloomTex, sampler_BloomTex), UV_0);
 
    half4 source = SAMPLE_SOURCE;
    g.a = source.a;
    
    #ifdef COLORSPACE_GAMMA
        half3 src = GammaToLinearSpace(source.rgb);
    #else
        half3 src = source.rgb;
    #endif
 
    #ifdef MK_GLOW_DEBUG
        src = 0;
    #endif
 
    g.rgb *= BLOOM_INTENSITY;
 
    #ifdef MK_LENS_SURFACE
        half3 dirt = SampleTex2DNoScale(PASS_TEXTURE_2D(_LensSurfaceDirtTex, sampler_LensSurfaceDirtTex), LENS_SURFACE_DIRT_UV).rgb;
        half3 diffraction = SampleTex2DNoScale(PASS_TEXTURE_2D(_LensSurfaceDiffractionTex, sampler_LensSurfaceDiffractionTex), LENS_DIFFRACTION_UV).rgb;
 
        #ifdef COLORSPACE_GAMMA
            dirt = GammaToLinearSpace(dirt);
            diffraction = GammaToLinearSpace(diffraction);
        #endif
 
        dirt *= LENS_SURFACE_DIRT_INTENSITY;
        diffraction *= LENS_SURFACE_DIFFRACTION_INTENSITY;
        g.rgb = lerp(g.rgb * 3, g.rgb + g.rgb * dirt + g.rgb * diffraction, 0.5) * 0.3333h;
    #endif
    
    //When using gamma space at least try to get a nice looking result by adding the glow in the linear space of the src even if the base color space is gamma
    #ifdef MK_GLOW_COMPOSITE
        #ifdef COLORSPACE_GAMMA
            #ifndef MK_NATURAL
                g.rgb += src.rgb;
            #endif
            RETURN_TARGET_TEX ConvertToColorSpace(g);
        #else
            #ifndef MK_NATURAL
                g.rgb += src.rgb;
            #endif
            RETURN_TARGET_TEX g;
        #endif
    #else
        RETURN_TARGET_TEX ConvertToColorSpace(g);
    #endif
#endif