/////////////////////////////////////////////////////////////////////////////// // // ## ###### // ###### ### // ## ############### Shark 3D Engine (www.shark3d.com) // ########## # # # // ######## Copyright (c) 1996-2006 Spinor GmbH. // ######### # # # All rights reserved. // ## ########## // ## // /////////////////////////////////////////////////////////////////////////////// // Definition of the shaders. // A shader is an object responsible for drawing objects. shader_array { name "bloom" ident "eng_shader_std.group" param { env "shaderenv" init_method "init_method" child_array { ident "eng_shader_std.regionenter" param { env "shaderenv" usage "geo" insp_ident "showbound" insp_rank 80000 insp_color 1.0 0.0 0.0 enter_array { triggers "main_trigger" method "main_method" } } } { ident "eng_shader_std.bundle" param { env "shaderenv" methods "main_method" rank 35010 new_method "bundle_method" } } { ident "eng_shader_std.redirect" param { env "shaderenv" register_methods "main_method" // negative value of 'close_rank' register_rank -35010 close_methods "bundle_method" // define when EndRenderTex is called close_rank 90000 // define when BeginRenderMain is called open_methods "bundle_method" open_rank 90030 destprop_antialias 0 dest_array { from_var "" to_var "screentex" texprop_restrusage 0 texprop_depth 0 texprop_comp 4 texprop_float 0 samplermode_filter 0 samplermode_clamp 1 } } } { // Reduce image size and get bright pixels. ident "eng_shader_special.filter" param { env "shaderenv" methods "bundle_method" rank 90010 iter_start 0 iter_end 0 iter_step 0 width_scale 0.5 height_scale 0.5 destprop_antialias 0 passinfo_var "passinfo" src_array "screentex" dest_array { from_var "" to_var "brightsmooth" texprop_restrusage 0 texprop_depth 0 texprop_comp 4 texprop_float 0 samplermode_filter 1 samplermode_clamp 1 } shaderprog_ident "levelutil/shader/prog/" & "bloom_bright.s3d_shaderprog_run" //shaderprog_ident "levelutil/shader/prog/" // & "bloom_presmooth_bright.s3d_shaderprog_run" shaderprog_param_array { src_var "passinfo" dest_progvar "prog_passinfo" } } } { // Smooth (exponential averaging). ident "eng_shader_special.filter" param { env "shaderenv" methods "bundle_method" rank 90020 iter_start 4 iter_end 0 iter_step -1 width_scale 1.0 height_scale 1.0 destprop_antialias 0 passinfo_var "passinfo" src_array "brightsmooth" dest_array { from_var "" to_var "brightsmooth" texprop_restrusage 0 texprop_depth 0 texprop_comp 4 texprop_float 0 samplermode_filter 1 samplermode_clamp 1 } shaderprog_ident "levelutil/shader/prog/" & "bloom_smooth.s3d_shaderprog_run" shaderprog_param_array { src_var "passinfo" dest_progvar "prog_passinfo" } } } { ident "eng_shader_std.rectmesh" param { env "shaderenv" methods "bundle_method" mesh_var "rectmesh" attr_var "rectattr" } } { ident "eng_shader_std.paintmesh" param { env "shaderenv" methods "bundle_method" rank 90040 cull_mode "back" depth_test "always" depth_write 0 mesh_var "rectmesh" texchan_var_array "screentex" "brightsmooth" tex_attr_var_array "rectattr" attrmat_var_array "" use_vertex_point 1 blend_col_src_fac "one" blend_col_dest_fac "zero" shaderprog_ident "levelutil/shader/prog/" & "bloom_combine.s3d_shaderprog_run" shaderprog_param_array { src_var "passinfo" dest_progvar "prog_passinfo" } } } } } $