KITASENJU DESIGN BLOG

memo, html, javascript, unity

ComputeScreenPos in Compute Shader

元のComputeScreenPos

            #define V2F_SCREEN_TYPE float4
            inline float4 ComputeScreenPos (float4 pos) {
                float4 o = pos * 0.5f; //why myltiply by .5f
                #if defined(UNITY_HALF_TEXEL_OFFSET)
                o.xy = float2(o.x, o.y*_ProjectionParams.x) + o.w * _ScreenParams.zw;
                #else
                o.xy = float2(o.x, o.y*_ProjectionParams.x) + o.w;
                #endif
                
                #if defined(SHADER_API_FLASH)
                o.xy *= unity_NPOTScale.xy;
                #endif
                
                o.zw = pos.zw;
                return o;
            }

こう書いた


float4 computeScreenPos(float4 pos){
    float4 o = pos * 0.5f;
    o.xy = float2(o.x, o.y) + o.w;
    o.zw = pos.zw;
    return o;
}
"FOOTER"