vertex_program Ogre/ParticleGS/GenerateVScg cg { source ParticleGS.cg entry_point GenerateParticles_VS profiles vs_1_1 arbvp1 } geometry_program Ogre/ParticleGS/GenerateGScg cg { source ParticleGS.cg entry_point GenerateParticles_GS profiles gp4gp gpu_gp } vertex_program Ogre/ParticleGS/DisplayVScg cg { source ParticleGS.cg entry_point DisplayParticles_VS profiles vs_1_1 arbvp1 } geometry_program Ogre/ParticleGS/DisplayGScg cg { source ParticleGS.cg entry_point DisplayParticles_GS profiles gp4gp gpu_gp } fragment_program Ogre/ParticleGS/DisplayPScg cg { source ParticleGS.cg entry_point DisplayParticles_PS profiles ps_2_0 arbfp1 } vertex_program Ogre/ParticleGS/GenerateVShlsl4 hlsl { source ParticleGS.hlsl entry_point GenerateParticles_VS enable_backwards_compatibility no target vs_4_0 } geometry_program Ogre/ParticleGS/GenerateGShlsl4 hlsl { source ParticleGS.hlsl entry_point GenerateParticles_GS enable_backwards_compatibility no target gs_4_0 } vertex_program Ogre/ParticleGS/DisplayVShlsl4 hlsl { source ParticleGS.hlsl entry_point DisplayParticles_VS enable_backwards_compatibility no target vs_4_0 } geometry_program Ogre/ParticleGS/DisplayGShlsl4 hlsl { source ParticleGS.hlsl entry_point DisplayParticles_GS enable_backwards_compatibility no target gs_4_0 } fragment_program Ogre/ParticleGS/DisplayPShlsl4 hlsl { source ParticleGS.hlsl entry_point DisplayParticles_PS enable_backwards_compatibility no target ps_4_0 } vertex_program Ogre/ParticleGS/GenerateVSglsl glsl { source ParticleGS_GenerateVS.glsl syntax glsl150 } geometry_program Ogre/ParticleGS/GenerateGSglsl glsl { source ParticleGS_GenerateGS.glsl syntax glsl150 } vertex_program Ogre/ParticleGS/DisplayVSglsl glsl { source ParticleGS_DisplayVS.glsl syntax glsl150 } geometry_program Ogre/ParticleGS/DisplayGSglsl glsl { source ParticleGS_DisplayGS.glsl syntax glsl150 } fragment_program Ogre/ParticleGS/DisplayPSglsl glsl { source ParticleGS_DisplayPS.glsl syntax glsl150 } //The material used to generate the particle system geometry material Ogre/ParticleGS/Generate { technique cg { pass { vertex_program_ref Ogre/ParticleGS/GenerateVScg { } geometry_program_ref Ogre/ParticleGS/GenerateGScg { param_named frameGravity float3 0 -0.1 0 param_named globalTime float 0.0 param_named elapsedTime float 0.1 param_named secondsPerFirework float 0.3 } //This texture unit will be filled at runtime texture_unit RandomTexture { tex_address_mode wrap filtering none } } } technique hlsl4 { pass { vertex_program_ref Ogre/ParticleGS/GenerateVShlsl4 { } geometry_program_ref Ogre/ParticleGS/GenerateGShlsl4 { param_named frameGravity float3 0 -0.1 0 param_named globalTime float 0.0 param_named elapsedTime float 0.1 param_named secondsPerFirework float 0.3 } //This texture unit will be filled at runtime texture_unit RandomTexture { tex_address_mode wrap filtering none } // This is needed if you render to a stream out buffer, otherwise, atleast DX 11 complains depth_write off depth_check off } } technique glsl { pass { vertex_program_ref Ogre/ParticleGS/GenerateVSglsl { } fragment_program_ref Ogre/BasicFragmentPrograms/PassthroughFP { } geometry_program_ref Ogre/ParticleGS/GenerateGSglsl { param_named frameGravity float3 0 -0.1 0 param_named globalTime float 0.0 param_named elapsedTime float 0.1 param_named secondsPerFirework float 0.3 } //This texture unit will be filled at runtime texture_unit RandomTexture { tex_address_mode wrap filtering none } } } } //The material used to display the generated particle system geometry material Ogre/ParticleGS/Display { technique cg { pass { depth_write off vertex_program_ref Ogre/ParticleGS/DisplayVScg { } geometry_program_ref Ogre/ParticleGS/DisplayGScg { param_named_auto inverseView inverse_view_matrix param_named_auto worldViewProj worldviewproj_matrix } fragment_program_ref Ogre/ParticleGS/DisplayPScg { } texture_unit { tex_coord_set 0 texture particle.dds } scene_blend alpha_blend } } technique hlsl4 { pass { depth_write off vertex_program_ref Ogre/ParticleGS/DisplayVShlsl4 { } geometry_program_ref Ogre/ParticleGS/DisplayGShlsl4 { param_named_auto inverseView inverse_view_matrix param_named_auto worldViewProj worldviewproj_matrix } fragment_program_ref Ogre/ParticleGS/DisplayPShlsl4 { } texture_unit { tex_coord_set 0 texture particle.dds } scene_blend alpha_blend } } technique glsl { pass { depth_write off vertex_program_ref Ogre/ParticleGS/DisplayVSglsl { } geometry_program_ref Ogre/ParticleGS/DisplayGSglsl { param_named_auto inverseView inverse_view_matrix param_named_auto worldViewProj worldviewproj_matrix } fragment_program_ref Ogre/ParticleGS/DisplayPSglsl { } texture_unit { tex_coord_set 0 texture particle.dds } scene_blend alpha_blend } } }