В интернете нашёл только на HLSL, и переписал на CG. Модельки из HL2 и Metro 2033. (на скринах есть ещё ссао и блум) Для Ogre3d vignetting.cg: sampler RT : register(s0);
float4 main_ps(float2 iTexCoord : TEXCOORD0, uniform float radius, uniform float darkness) : COLOR { float4 color=tex2D(RT,iTexCoord); float2 inTex = iTexCoord - 0.5; float vignette = 1 - dot(inTex, inTex); color.rgb *= saturate(pow(vignette, radius) + darkness); return color; } fragment_program Vignetting cg { source vignetting.cg entry_point main_ps default_params { param_named radius float 4 param_named darkness float 0.7 } profiles ps_2_x arbfp1 }
material Ogre/Compositor/Vignetting { technique { pass { depth_check off
vertex_program_ref Ogre/Compositor/StdQuad_Cg_vp { }
fragment_program_ref Vignetting { }
texture_unit RT { tex_coord_set 0 tex_address_mode clamp filtering linear linear linear } } } }
compositor vignetting { technique { texture rt0 target_width target_height PF_R8G8B8
target rt0 { input previous }
target_output { // Start with clear output input none
pass render_quad { material Ogre/Compositor/Vignetting input 0 rt0 } } } }
|