1/////////////////////////////////////////////////////////////////////////// 2/// Declare CG shaders for skinning 3/////////////////////////////////////////////////////////////////////////// 4// Dual quaternion hardware skinning using two indexed weights per vertex 5vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsCg cg 6{ 7 source DualQuaternion.cg 8 entry_point dualQuaternionHardwareSkinningTwoWeights_vp 9 profiles vp40 vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_3_0 vs_2_0 vs_1_1 10 includes_skeletal_animation true 11 12 default_params 13 { 14 param_named_auto diffuse surface_diffuse_colour 15 } 16} 17 18// Dual quaternion two phase hardware skinning using two indexed weights per vertex, supports scaling and shearing 19vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseCg cg 20{ 21 source DualQuaternion.cg 22 entry_point dualQuaternionHardwareSkinningTwoWeightsTwoPhase_vp 23 profiles vp40 vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_3_0 vs_2_0 vs_1_1 24 includes_skeletal_animation true 25 26 default_params 27 { 28 param_named_auto diffuse surface_diffuse_colour 29 } 30} 31 32/////////////////////////////////////////////////////////////////////////// 33/// Declare CG shaders for shadow casters 34/////////////////////////////////////////////////////////////////////////// 35vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCasterCg cg 36{ 37 source DualQuaternion.cg 38 entry_point shadow_caster_dq_skinning_2weight_vs 39 profiles vp40 vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_3_0 vs_2_0 vs_1_1 40 includes_skeletal_animation true 41} 42 43vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCasterCg cg 44{ 45 source DualQuaternion.cg 46 entry_point shadow_caster_dq_skinning_2weight_twophase_vs 47 profiles vp40 vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_3_0 vs_2_0 vs_1_1 48 includes_skeletal_animation true 49} 50 51/////////////////////////////////////////////////////////////////////////// 52/// Declare hlsl shaders for skinning 53/////////////////////////////////////////////////////////////////////////// 54// Dual quaternion hardware skinning using two indexed weights per vertex 55vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsHLSL hlsl 56{ 57 source DualQuaternion.hlsl 58 entry_point dualQuaternionHardwareSkinningTwoWeights_vp 59 target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 60 includes_skeletal_animation true 61 62 default_params 63 { 64 param_named_auto diffuse surface_diffuse_colour 65 } 66} 67 68// Dual quaternion two phase hardware skinning using two indexed weights per vertex, supports scaling and shearing 69vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseHLSL hlsl 70{ 71 source DualQuaternion.hlsl 72 entry_point dualQuaternionHardwareSkinningTwoWeightsTwoPhase_vp 73 target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 74 includes_skeletal_animation true 75 76 default_params 77 { 78 param_named_auto diffuse surface_diffuse_colour 79 } 80} 81 82/////////////////////////////////////////////////////////////////////////// 83/// Declare hlsl shaders for shadow casters 84/////////////////////////////////////////////////////////////////////////// 85vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCasterHLSL hlsl 86{ 87 source DualQuaternion.hlsl 88 entry_point dualQuaternionHardwareSkinningTwoWeightsCaster_vp 89 target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 90 includes_skeletal_animation true 91} 92 93vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCasterHLSL hlsl 94{ 95 source DualQuaternion.hlsl 96 entry_point dualQuaternionHardwareSkinningTwoWeightsTwoPhaseCaster_vp 97 target vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 98 includes_skeletal_animation true 99} 100 101 102 103/////////////////////////////////////////////////////////////////////////// 104/// Declare GLSL shaders for skinning 105/////////////////////////////////////////////////////////////////////////// 106vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsCommon glsl 107{ 108 source DualQuaternion_Common.glsl 109 syntax glsl 110} 111 112vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsGLSL glsl 113{ 114 source DualQuaternion.glsl 115 syntax glsl 116 attach Ogre/DualQuaternionHardwareSkinningTwoWeightsCommon 117 includes_skeletal_animation true 118} 119 120// Dual quaternion two phase hardware skinning using two indexed weights per vertex, supports scaling and shearing 121vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseGLSL glsl 122{ 123 source DualQuaternion_TwoPhase.glsl 124 syntax glsl 125 attach Ogre/DualQuaternionHardwareSkinningTwoWeightsCommon 126 includes_skeletal_animation true 127} 128 129/////////////////////////////////////////////////////////////////////////// 130/// Declare GLSL shaders for shadow casters 131/////////////////////////////////////////////////////////////////////////// 132vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCasterGLSL glsl 133{ 134 source DualQuaternion_ShadowCaster.glsl 135 syntax glsl 136 attach Ogre/DualQuaternionHardwareSkinningTwoWeightsCommon 137 includes_skeletal_animation true 138} 139 140vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCasterGLSL glsl 141{ 142 source DualQuaternion_TwoPhaseShadowCaster.glsl 143 syntax glsl 144 attach Ogre/DualQuaternionHardwareSkinningTwoWeightsCommon 145 includes_skeletal_animation true 146} 147 148/////////////////////////////////////////////////////////////////////////// 149/// Declare unified shaders 150/////////////////////////////////////////////////////////////////////////// 151vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeights unified 152{ 153 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsCg 154 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsHLSL 155 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsGLSL 156 157 default_params 158 { 159 param_named_auto worldDualQuaternion2x4Array world_dualquaternion_array_2x4 160 param_named_auto viewProjectionMatrix viewproj_matrix 161 param_named_auto lightPos[0] light_position 0 162 param_named_auto lightPos[1] light_position 1 163 param_named_auto lightDiffuseColour[0] light_diffuse_colour 0 164 param_named_auto lightDiffuseColour[1] light_diffuse_colour 1 165 param_named_auto ambient ambient_light_colour 166 } 167} 168 169vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCaster unified 170{ 171 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCasterCg 172 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCasterHLSL 173 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsShadowCasterGLSL 174 175 default_params 176 { 177 param_named_auto worldDualQuaternion2x4Array world_dualquaternion_array_2x4 178 param_named_auto viewProjectionMatrix viewproj_matrix 179 param_named_auto ambient ambient_light_colour 180 } 181} 182 183vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhase unified 184{ 185 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseCg 186 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseHLSL 187 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseGLSL 188 189 default_params 190 { 191 param_named_auto worldDualQuaternion2x4Array world_dualquaternion_array_2x4 192 param_named_auto scaleM world_scale_shear_matrix_array_3x4 193 param_named_auto viewProjectionMatrix viewproj_matrix 194 param_named_auto lightPos[0] light_position 0 195 param_named_auto lightPos[1] light_position 1 196 param_named_auto lightDiffuseColour[0] light_diffuse_colour 0 197 param_named_auto lightDiffuseColour[1] light_diffuse_colour 1 198 param_named_auto ambient ambient_light_colour 199 } 200} 201 202vertex_program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCaster unified 203{ 204 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCasterCg 205 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCasterHLSL 206 delegate Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseShadowCasterGLSL 207 208 default_params 209 { 210 param_named_auto worldDualQuaternion2x4Array world_dualquaternion_array_2x4 211 param_named_auto scaleM world_scale_shear_matrix_array_3x4 212 param_named_auto viewProjectionMatrix viewproj_matrix 213 param_named_auto ambient ambient_light_colour 214 } 215} 216