Browse Source

Adding C++ Feature Examples

Josh Engebretson 9 years ago
parent
commit
3712539f58
100 changed files with 1182 additions and 0 deletions
  1. 36 0
      FeatureExamples/CPlusPlus/CMakeLists.txt
  2. 5 0
      FeatureExamples/CPlusPlus/Data/Materials/GreenTransparent.xml
  3. 4 0
      FeatureExamples/CPlusPlus/Data/Materials/Jack.xml
  4. 6 0
      FeatureExamples/CPlusPlus/Data/Materials/JackEnvMap.xml
  5. 5 0
      FeatureExamples/CPlusPlus/Data/Materials/LitSmoke.xml
  6. 5 0
      FeatureExamples/CPlusPlus/Data/Materials/Mushroom.xml
  7. 7 0
      FeatureExamples/CPlusPlus/Data/Materials/MushroomEnvMap.xml
  8. 9 0
      FeatureExamples/CPlusPlus/Data/Materials/MushroomWind.xml
  9. 9 0
      FeatureExamples/CPlusPlus/Data/Materials/MushroomWindUnlit.xml
  10. 4 0
      FeatureExamples/CPlusPlus/Data/Materials/Particle.xml
  11. 14 0
      FeatureExamples/CPlusPlus/Data/Materials/RibbonTrail.xml
  12. 5 0
      FeatureExamples/CPlusPlus/Data/Materials/Skybox.xml
  13. 14 0
      FeatureExamples/CPlusPlus/Data/Materials/SlashTrail.xml
  14. 4 0
      FeatureExamples/CPlusPlus/Data/Materials/Smoke.xml
  15. 8 0
      FeatureExamples/CPlusPlus/Data/Materials/Stone.xml
  16. 10 0
      FeatureExamples/CPlusPlus/Data/Materials/StoneEnvMap.xml
  17. 12 0
      FeatureExamples/CPlusPlus/Data/Materials/StoneEnvMapSmall.xml
  18. 10 0
      FeatureExamples/CPlusPlus/Data/Materials/StoneSmall.xml
  19. 10 0
      FeatureExamples/CPlusPlus/Data/Materials/StoneTiled.xml
  20. 10 0
      FeatureExamples/CPlusPlus/Data/Materials/StoneTiledH.xml
  21. 9 0
      FeatureExamples/CPlusPlus/Data/Materials/Terrain.xml
  22. 6 0
      FeatureExamples/CPlusPlus/Data/Materials/UrhoDecal.xml
  23. 6 0
      FeatureExamples/CPlusPlus/Data/Materials/UrhoDecalAlpha.xml
  24. 20 0
      FeatureExamples/CPlusPlus/Data/Materials/UrhoDecalAlphaMaskTwoSided.xml
  25. 3 0
      FeatureExamples/CPlusPlus/Data/Materials/VColUnlit.xml
  26. 11 0
      FeatureExamples/CPlusPlus/Data/Materials/Water.xml
  27. BIN
      FeatureExamples/CPlusPlus/Data/Models/Box.mdl
  28. BIN
      FeatureExamples/CPlusPlus/Data/Models/Cone.mdl
  29. BIN
      FeatureExamples/CPlusPlus/Data/Models/Cylinder.mdl
  30. BIN
      FeatureExamples/CPlusPlus/Data/Models/Dome.mdl
  31. BIN
      FeatureExamples/CPlusPlus/Data/Models/Jack.mdl
  32. BIN
      FeatureExamples/CPlusPlus/Data/Models/Jack_Walk.ani
  33. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mushroom.mdl
  34. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_Block_LY.ani
  35. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_HitHead_LY.ani
  36. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_Throw_LY.ani
  37. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_Wave_LY.ani
  38. 36 0
      FeatureExamples/CPlusPlus/Data/Models/Mutant/License.txt
  39. 9 0
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Materials/mutant_M.xml
  40. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant.mdl
  41. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Death.ani
  42. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_HipHop1.ani
  43. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Idle0.ani
  44. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Idle1.ani
  45. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Jump.ani
  46. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Jump1.ani
  47. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_JumpAttack.ani
  48. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_JumpStop.ani
  49. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Kick.ani
  50. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Punch.ani
  51. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Run.ani
  52. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Swipe.ani
  53. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Walk.ani
  54. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/RootMotion/Mutant_JumpAttack_RM.ani
  55. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Textures/Mutant_diffuse.jpg
  56. BIN
      FeatureExamples/CPlusPlus/Data/Models/Mutant/Textures/Mutant_normal.jpg
  57. BIN
      FeatureExamples/CPlusPlus/Data/Models/Plane.mdl
  58. BIN
      FeatureExamples/CPlusPlus/Data/Models/Pyramid.mdl
  59. BIN
      FeatureExamples/CPlusPlus/Data/Models/Sphere.mdl
  60. BIN
      FeatureExamples/CPlusPlus/Data/Models/TeaPot.mdl
  61. BIN
      FeatureExamples/CPlusPlus/Data/Models/Torus.mdl
  62. BIN
      FeatureExamples/CPlusPlus/Data/Music/Ninja Gods.ogg
  63. 32 0
      FeatureExamples/CPlusPlus/Data/NinjaSnowWarShaders.xml
  64. 44 0
      FeatureExamples/CPlusPlus/Data/Objects/LightFlash.xml
  65. 114 0
      FeatureExamples/CPlusPlus/Data/Objects/Ninja.xml
  66. 65 0
      FeatureExamples/CPlusPlus/Data/Objects/Potion.xml
  67. 67 0
      FeatureExamples/CPlusPlus/Data/Objects/SnowBall.xml
  68. 65 0
      FeatureExamples/CPlusPlus/Data/Objects/SnowCrate.xml
  69. 28 0
      FeatureExamples/CPlusPlus/Data/Particle/Burst.xml
  70. 28 0
      FeatureExamples/CPlusPlus/Data/Particle/Disco.xml
  71. 27 0
      FeatureExamples/CPlusPlus/Data/Particle/Fire.xml
  72. 20 0
      FeatureExamples/CPlusPlus/Data/Particle/Smoke.xml
  73. 28 0
      FeatureExamples/CPlusPlus/Data/Particle/SmokeStack.xml
  74. 16 0
      FeatureExamples/CPlusPlus/Data/Particle/SnowExplosion.xml
  75. 18 0
      FeatureExamples/CPlusPlus/Data/Particle/SnowExplosionBig.xml
  76. 16 0
      FeatureExamples/CPlusPlus/Data/Particle/SnowExplosionFade.xml
  77. 38 0
      FeatureExamples/CPlusPlus/Data/PostProcess/AutoExposure.xml
  78. 19 0
      FeatureExamples/CPlusPlus/Data/PostProcess/Bloom.xml
  79. 88 0
      FeatureExamples/CPlusPlus/Data/PostProcess/BloomHDR.xml
  80. 31 0
      FeatureExamples/CPlusPlus/Data/PostProcess/Blur.xml
  81. 6 0
      FeatureExamples/CPlusPlus/Data/PostProcess/ColorCorrection.xml
  82. 6 0
      FeatureExamples/CPlusPlus/Data/PostProcess/FXAA2.xml
  83. 5 0
      FeatureExamples/CPlusPlus/Data/PostProcess/FXAA3.xml
  84. 5 0
      FeatureExamples/CPlusPlus/Data/PostProcess/GammaCorrection.xml
  85. 5 0
      FeatureExamples/CPlusPlus/Data/PostProcess/GreyScale.xml
  86. 16 0
      FeatureExamples/CPlusPlus/Data/PostProcess/Tonemap.xml
  87. 76 0
      FeatureExamples/CPlusPlus/Data/Scenes/ParticleEmitter3D.scene
  88. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/BigExplosion.wav
  89. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/NutThrow.wav
  90. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/PlayerFist.wav
  91. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/PlayerFistHit.wav
  92. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/PlayerLand.wav
  93. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/Powerup.wav
  94. BIN
      FeatureExamples/CPlusPlus/Data/Sounds/SmallExplosion.wav
  95. 14 0
      FeatureExamples/CPlusPlus/Data/StringsDe.json
  96. 18 0
      FeatureExamples/CPlusPlus/Data/StringsEnRu.json
  97. BIN
      FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_NegX.dds
  98. BIN
      FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_NegY.dds
  99. BIN
      FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_NegZ.dds
  100. BIN
      FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_PosX.dds

+ 36 - 0
FeatureExamples/CPlusPlus/CMakeLists.txt

@@ -0,0 +1,36 @@
+
+
+include_directories(${CMAKE_SOURCE_DIR}/Source)
+include_directories ( ${CMAKE_SOURCE_DIR}/Source/ThirdParty
+                      ${CMAKE_SOURCE_DIR}/Source/ThirdParty/rapidjson/include
+                      ${CMAKE_SOURCE_DIR}/Source/ThirdParty/kNet/include
+                      ${CMAKE_SOURCE_DIR}/Source/ThirdParty/FreeType/include
+                      ${CMAKE_SOURCE_DIR}/Source/ThirdParty/Box2D )
+
+# Define source files
+file (GLOB SOURCE_FILES Source/*.cpp Source/*.h)
+
+add_executable(FeatureExamples ${SOURCE_FILES})
+
+target_link_libraries(FeatureExamples ${ATOMIC_LINK_LIBRARIES})
+
+# Copy AtomicTool to Artifacts
+add_custom_command( TARGET FeatureExamples POST_BUILD
+                    COMMAND "${CMAKE_COMMAND}"
+                    ARGS -E make_directory \"${CMAKE_SOURCE_DIR}/Artifacts/Examples/CPlusPlus\"
+                    COMMAND "${CMAKE_COMMAND}"
+                    ARGS -E copy_if_different \"$<TARGET_FILE:FeatureExamples>\" \"${CMAKE_SOURCE_DIR}/Artifacts/Examples/CPlusPlus/\"
+                    COMMENT "Copying FeatureExamples to Build Artifacts" )
+
+if (MSVC)
+
+  # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
+  add_custom_command (TARGET FeatureExamples POST_BUILD
+  COMMAND ${CMAKE_COMMAND}
+  ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:FeatureExamples>/D3DCompiler_47.dll\"
+  COMMAND ${CMAKE_COMMAND}
+  ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"${CMAKE_SOURCE_DIR}/Artifacts/Examples/CPlusPlus/D3DCompiler_47.dll\" )
+
+endif(MSVC)
+
+

+ 5 - 0
FeatureExamples/CPlusPlus/Data/Materials/GreenTransparent.xml

@@ -0,0 +1,5 @@
+<material>
+    <technique name="Techniques/NoTextureAlpha.xml" />
+    <parameter name="MatDiffColor" value="0 1 0 0.25" />
+    <parameter name="MatSpecColor" value="1 1 1 16" />
+</material>

+ 4 - 0
FeatureExamples/CPlusPlus/Data/Materials/Jack.xml

@@ -0,0 +1,4 @@
+<material>
+    <technique name="Techniques/NoTexture.xml" />
+    <parameter name="MatSpecColor" value="0.5 0.5 0.5 16" />
+</material>

+ 6 - 0
FeatureExamples/CPlusPlus/Data/Materials/JackEnvMap.xml

@@ -0,0 +1,6 @@
+<material>
+    <technique name="Techniques/NoTextureEnvCube.xml" />
+    <texture unit="environment" name="Textures/Skybox.xml" />
+    <parameter name="MatSpecColor" value="0.5 0.5 0.5 16" />
+    <parameter name="MatEnvMapColor" value="0.2 0.2 0.2" />
+</material>

+ 5 - 0
FeatureExamples/CPlusPlus/Data/Materials/LitSmoke.xml

@@ -0,0 +1,5 @@
+<material>
+    <technique name="Techniques/DiffLitParticleAlpha.xml" />
+    <parameter name="MatDiffColor" value="0.5 0.5 0.5 0.5" />    
+    <texture unit="diffuse" name="Textures/Smoke.dds" />
+</material>

+ 5 - 0
FeatureExamples/CPlusPlus/Data/Materials/Mushroom.xml

@@ -0,0 +1,5 @@
+<material>
+    <technique name="Techniques/Diff.xml" />
+    <texture unit="diffuse" name="Textures/Mushroom.dds" />
+    <parameter name="MatSpecColor" value="0.1 0.1 0.1 16" />
+</material>

+ 7 - 0
FeatureExamples/CPlusPlus/Data/Materials/MushroomEnvMap.xml

@@ -0,0 +1,7 @@
+<material>
+    <technique name="Techniques/DiffEnvCube.xml" />
+    <texture unit="diffuse" name="Textures/Mushroom.dds" />
+    <texture unit="environment" name="Textures/Skybox.xml" />
+    <parameter name="MatSpecColor" value="0.1 0.1 0.1 16" />
+    <parameter name="MatEnvMapColor" value="0.2 0.1 0.1" />
+</material>

+ 9 - 0
FeatureExamples/CPlusPlus/Data/Materials/MushroomWind.xml

@@ -0,0 +1,9 @@
+<material>
+    <technique name="Techniques/VegetationDiff.xml" />
+    <texture unit="diffuse" name="Textures/Mushroom.dds" />
+    <parameter name="MatSpecColor" value="0.1 0.1 0.1 16" />
+    <parameter name="WindPeriod" value="1" />
+    <parameter name="WindHeightFactor" value="0.2" />
+    <parameter name="WindHeightPivot" value="0.2" />
+    <parameter name="WindWorldSpacing" value="0.1 0.1" />
+</material>

+ 9 - 0
FeatureExamples/CPlusPlus/Data/Materials/MushroomWindUnlit.xml

@@ -0,0 +1,9 @@
+<material>
+    <technique name="Techniques/VegetationDiffUnlit.xml" />
+    <texture unit="diffuse" name="Textures/Mushroom.dds" />
+    <parameter name="MatSpecColor" value="0.1 0.1 0.1 16" />
+    <parameter name="WindPeriod" value="1" />
+    <parameter name="WindHeightFactor" value="0.2" />
+    <parameter name="WindHeightPivot" value="0.2" />
+    <parameter name="WindWorldSpacing" value="0.1 0.1" />
+</material>

+ 4 - 0
FeatureExamples/CPlusPlus/Data/Materials/Particle.xml

@@ -0,0 +1,4 @@
+<material>
+    <technique name="Techniques/DiffVColAdd.xml" />
+    <texture unit="diffuse" name="Textures/Flare.dds" />
+</material>

+ 14 - 0
FeatureExamples/CPlusPlus/Data/Materials/RibbonTrail.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<material>
+    <technique name="Techniques/DiffVColUnlitAlpha.xml" quality="1" loddistance="0" />
+    <texture unit="diffuse" name="Textures/RibbonTrail.png" />
+	<parameter name="UOffset" value="1 0 0 0" />
+	<parameter name="VOffset" value="0 1 0 0" />
+	<parameter name="MatDiffColor" value="1 1 1 1" />
+	<parameter name="MatEmissiveColor" value="0 0 0" />
+	<parameter name="MatEnvMapColor" value="1 1 1" />
+	<parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+	<cull value="ccw" />
+	<shadowcull value="ccw" />
+	<depthbias constant="0" slopescaled="0" />
+</material>

+ 5 - 0
FeatureExamples/CPlusPlus/Data/Materials/Skybox.xml

@@ -0,0 +1,5 @@
+<material>
+    <technique name="Techniques/DiffSkybox.xml" />
+    <texture unit="diffuse" name="Textures/Skybox.xml" />
+    <cull value="none" />
+</material>

+ 14 - 0
FeatureExamples/CPlusPlus/Data/Materials/SlashTrail.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<material>
+    <technique name="Techniques/DiffVColUnlitAlpha.xml" quality="1" loddistance="0" />
+    <texture unit="diffuse" name="Textures/SlashTrail.png" />
+	<parameter name="UOffset" value="1 0 0 0" />
+	<parameter name="VOffset" value="0 1 0 0" />
+	<parameter name="MatDiffColor" value="1 1 1 1" />
+	<parameter name="MatEmissiveColor" value="0 0 0" />
+	<parameter name="MatEnvMapColor" value="1 1 1" />
+	<parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+	<cull value="none" />
+	<shadowcull value="ccw" />
+	<depthbias constant="0" slopescaled="0" />
+</material>

+ 4 - 0
FeatureExamples/CPlusPlus/Data/Materials/Smoke.xml

@@ -0,0 +1,4 @@
+<material>
+    <technique name="Techniques/DiffVColUnlitAlpha.xml" />
+    <texture unit="diffuse" name="Textures/Smoke.dds" />
+</material>

+ 8 - 0
FeatureExamples/CPlusPlus/Data/Materials/Stone.xml

@@ -0,0 +1,8 @@
+<material>
+    <technique name="Techniques/DiffNormal.xml" quality="1" />
+    <technique name="Techniques/Diff.xml" quality="0" />
+    <texture unit="diffuse" name="Textures/StoneDiffuse.dds" />
+    <texture unit="normal" name="Textures/StoneNormal.dds" />
+    <shader psdefines="PACKEDNORMAL" />
+    <parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+</material>

+ 10 - 0
FeatureExamples/CPlusPlus/Data/Materials/StoneEnvMap.xml

@@ -0,0 +1,10 @@
+<material>
+    <technique name="Techniques/DiffNormalEnvCube.xml" quality="1" />
+    <technique name="Techniques/DiffEnvCube.xml" quality="0" />
+    <texture unit="diffuse" name="Textures/StoneDiffuse.dds" />
+    <texture unit="normal" name="Textures/StoneNormal.dds" />
+    <texture unit="environment" name="Textures/Skybox.xml" />
+    <shader psdefines="PACKEDNORMAL" />
+    <parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+    <parameter name="MatEnvMapColor" value="0.1 0.1 0.2" />
+</material>

+ 12 - 0
FeatureExamples/CPlusPlus/Data/Materials/StoneEnvMapSmall.xml

@@ -0,0 +1,12 @@
+<material>
+    <technique name="Techniques/DiffNormalEnvCube.xml" quality="1" />
+    <technique name="Techniques/DiffEnvCube.xml" quality="0" />
+    <texture unit="diffuse" name="Textures/StoneDiffuse.dds" />
+    <texture unit="normal" name="Textures/StoneNormal.dds" />
+    <texture unit="environment" name="Textures/Skybox.xml" />
+    <shader psdefines="PACKEDNORMAL" />
+    <parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+    <parameter name="MatEnvMapColor" value="0.1 0.1 0.2" />
+    <parameter name="UOffset" value="0.125 0 0 0" />
+    <parameter name="VOffset" value="0 0.125 0 0" />
+</material>

+ 10 - 0
FeatureExamples/CPlusPlus/Data/Materials/StoneSmall.xml

@@ -0,0 +1,10 @@
+<material>
+    <technique name="Techniques/DiffNormal.xml" quality="1" />
+    <technique name="Techniques/Diff.xml" quality="0" />
+    <texture unit="diffuse" name="Textures/StoneDiffuse.dds" />
+    <texture unit="normal" name="Textures/StoneNormal.dds" />
+    <shader psdefines="PACKEDNORMAL" />
+    <parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+    <parameter name="UOffset" value="0.125 0 0 0" />
+    <parameter name="VOffset" value="0 0.125 0 0" />
+</material>

+ 10 - 0
FeatureExamples/CPlusPlus/Data/Materials/StoneTiled.xml

@@ -0,0 +1,10 @@
+<material>
+    <technique name="Techniques/DiffNormal.xml" quality="1" />
+    <technique name="Techniques/Diff.xml" quality="0" />
+    <texture unit="diffuse" name="Textures/StoneDiffuse.dds" />
+    <texture unit="normal" name="Textures/StoneNormal.dds" />
+    <shader psdefines="PACKEDNORMAL" />
+    <parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+    <parameter name="UOffset" value="4 0 0 0" />
+    <parameter name="VOffset" value="0 4 0 0" />
+</material>

+ 10 - 0
FeatureExamples/CPlusPlus/Data/Materials/StoneTiledH.xml

@@ -0,0 +1,10 @@
+<material>
+    <technique name="Techniques/DiffNormal.xml" quality="1" />
+    <technique name="Techniques/Diff.xml" quality="0" />
+    <texture unit="diffuse" name="Textures/StoneDiffuse.dds" />
+    <texture unit="normal" name="Textures/StoneNormal.dds" />
+    <shader psdefines="PACKEDNORMAL" />
+    <parameter name="MatSpecColor" value="0.3 0.3 0.3 16" />
+    <parameter name="UOffset" value="10 0 0 0" />
+    <parameter name="VOffset" value="0 0.5 0 0" />
+</material>

+ 9 - 0
FeatureExamples/CPlusPlus/Data/Materials/Terrain.xml

@@ -0,0 +1,9 @@
+<material>
+    <technique name="Techniques/TerrainBlend.xml" />
+    <texture unit="0" name="Textures/TerrainWeights.dds" />
+    <texture unit="1" name="Textures/TerrainDetail1.dds" />
+    <texture unit="2" name="Textures/TerrainDetail2.dds" />
+    <texture unit="3" name="Textures/TerrainDetail3.dds" />
+    <parameter name="MatSpecColor" value="0.5 0.5 0.5 16" />
+    <parameter name="DetailTiling" value="32 32" />
+</material>

+ 6 - 0
FeatureExamples/CPlusPlus/Data/Materials/UrhoDecal.xml

@@ -0,0 +1,6 @@
+<material>
+    <technique name="Techniques/DiffAdd.xml" />
+    <texture unit="diffuse" name="Textures/UrhoDecal.dds" />
+    <parameter name="MatDiffColor" value="1 1 0 1" />
+    <depthbias constant="-0.00001" slopescaled="0" />
+</material>

+ 6 - 0
FeatureExamples/CPlusPlus/Data/Materials/UrhoDecalAlpha.xml

@@ -0,0 +1,6 @@
+<material>
+    <technique name="Techniques/DiffAlpha.xml" />
+    <texture unit="diffuse" name="Textures/UrhoDecalAlpha.dds" />
+    <parameter name="MatDiffColor" value="1 1 0 1" />
+    <depthbias constant="-0.00001" slopescaled="0" />
+</material>

+ 20 - 0
FeatureExamples/CPlusPlus/Data/Materials/UrhoDecalAlphaMaskTwoSided.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<material>
+	<technique name="Techniques/Diff.xml" quality="0" loddistance="0" />
+	<texture unit="diffuse" name="Textures/UrhoDecalAlpha.dds" />
+	<shader psdefines="ALPHAMASK" />
+	<parameter name="UOffset" value="1 0 0 0" />
+	<parameter name="VOffset" value="0 1 0 0" />
+	<parameter name="MatDiffColor" value="1 1 1 1" />
+	<parameter name="MatEmissiveColor" value="0 0 0" />
+	<parameter name="MatEnvMapColor" value="1 1 1" />
+	<parameter name="MatSpecColor" value="0 0 0 1" />
+	<parameter name="Roughness" value="0.5" />
+	<parameter name="Metallic" value="0" />
+	<cull value="none" />
+	<shadowcull value="none" />
+	<fill value="solid" />
+	<depthbias constant="0" slopescaled="0" />
+	<renderorder value="129" />
+	<occlusion enable="false" />
+</material>

+ 3 - 0
FeatureExamples/CPlusPlus/Data/Materials/VColUnlit.xml

@@ -0,0 +1,3 @@
+<material>
+    <technique name="Techniques/NoTextureUnlitVCol.xml" />
+</material>

+ 11 - 0
FeatureExamples/CPlusPlus/Data/Materials/Water.xml

@@ -0,0 +1,11 @@
+<material>
+    <!-- The water example will assign the reflection texture to the diffuse unit -->
+    <!-- The engine will automatically assign the refraction (viewport) texture to the environment unit during refract pass -->
+    <technique name="Techniques/Water.xml" />
+    <texture unit="normal" name="Textures/WaterNoise.dds" />
+    <parameter name="NoiseSpeed" value="0.05 0.05" />
+    <parameter name="NoiseTiling" value="50" />
+    <parameter name="NoiseStrength" value="0.02" />
+    <parameter name="FresnelPower" value="8" />
+    <parameter name="WaterTint" value="0.8 0.8 1.0" />
+</material>

BIN
FeatureExamples/CPlusPlus/Data/Models/Box.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Cone.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Cylinder.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Dome.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Jack.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Jack_Walk.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mushroom.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_Block_LY.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_HitHead_LY.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_Throw_LY.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Layer/Mutant_Wave_LY.ani


+ 36 - 0
FeatureExamples/CPlusPlus/Data/Models/Mutant/License.txt

@@ -0,0 +1,36 @@
+--------------------------
+note:
+--------------------------
+There is no requirement in the Mixamo License to provide any license information with any content.  
+However, for the purpose of learning, I have provided some pertinent information below.
+
+--------------------------
+info:
+--------------------------
+website: https://www.mixamo.com/
+model: Mutant
+license: http://www.adobe.com/legal/terms.html
+
+--------------------------
+license short explanation (from the forum):
+--------------------------
+Jeanette Mathews
+May 31, 2016 07:24
+
+Thanks for the feedback, and glad to hear the tutorial was useful getting you started.  :)
+
+Yes, all Fuse and Mixamo content is available for commercial and non commercial use, royalty free.  
+You can edit them to your hearts content!
+
+The only requirement we have is that the final product you are creating must have our content in an 'embedded', non-editable format.  
+So you can't edit the characters and sell them directly, because then other people have access to the character 3d data files.  
+Games, movies, 3d prints, 2D illustrations, or any other file format where the character/animation files are not-editable is fine.  
+Selling characters/animations directly is against the TOS/EULA.
+
+Hope that helps clarify!
+
+reference: https://community.mixamo.com/hc/en-us/community/posts/211496987-Mixamo-Store-Characters-Licence
+
+--------------------------
+
+

+ 9 - 0
FeatureExamples/CPlusPlus/Data/Models/Mutant/Materials/mutant_M.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<material>
+	<technique name="Techniques/DiffNormal.xml" />
+	<texture unit="diffuse" name="Models/Mutant/Textures/Mutant_diffuse.jpg" />
+	<texture unit="normal" name="Models/Mutant/Textures/Mutant_normal.jpg" />
+	<parameter name="MatDiffColor" value="1 1 1 1" />
+	<parameter name="MatSpecColor" value="0.2 0.2 0.2 6.15385" />
+	<parameter name="MatEmissiveColor" value="0 0 0 1" />
+</material>

BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Death.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_HipHop1.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Idle0.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Idle1.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Jump.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Jump1.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_JumpAttack.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_JumpStop.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Kick.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Punch.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Run.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Swipe.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Mutant_Walk.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/RootMotion/Mutant_JumpAttack_RM.ani


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Textures/Mutant_diffuse.jpg


BIN
FeatureExamples/CPlusPlus/Data/Models/Mutant/Textures/Mutant_normal.jpg


BIN
FeatureExamples/CPlusPlus/Data/Models/Plane.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Pyramid.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Sphere.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/TeaPot.mdl


BIN
FeatureExamples/CPlusPlus/Data/Models/Torus.mdl


BIN
FeatureExamples/CPlusPlus/Data/Music/Ninja Gods.ogg


+ 32 - 0
FeatureExamples/CPlusPlus/Data/NinjaSnowWarShaders.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<shaders>
+	<shader vs="Shadow" vsdefines="SKINNED" ps="Shadow" psdefines="" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIFFMAP DIRLIGHT PCF_SHADOW PERPIXEL SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT PERPIXEL SHADOW SKINNED" ps="LitSolid" psdefines="AMBIENT DIFFMAP DIRLIGHT PCF_SHADOW PERPIXEL SHADOW" />
+	<shader vs="Unlit" vsdefines="" ps="Unlit" psdefines="DIFFMAP" />
+	<shader vs="Basic" vsdefines="DIFFMAP VERTEXCOLOR" ps="Basic" psdefines="ALPHAMASK DIFFMAP VERTEXCOLOR" />
+	<shader vs="Basic" vsdefines="DIFFMAP VERTEXCOLOR" ps="Basic" psdefines="ALPHAMAP VERTEXCOLOR" />
+	<shader vs="Unlit" vsdefines="BILLBOARD VERTEXCOLOR" ps="Unlit" psdefines="DIFFMAP VERTEXCOLOR" />
+	<shader vs="Shadow" vsdefines="" ps="Shadow" psdefines="" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT INSTANCED PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIFFMAP DIRLIGHT PCF_SHADOW PERPIXEL SHADOW" />
+	<shader vs="Shadow" vsdefines="INSTANCED" ps="Shadow" psdefines="" />
+	<shader vs="Stencil" vsdefines="" ps="Stencil" psdefines="" />
+	<shader vs="LitSolid" vsdefines="PERPIXEL POINTLIGHT" ps="LitSolid" psdefines="DIFFMAP PERPIXEL POINTLIGHT" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIRLIGHT PCF_SHADOW PERPIXEL SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIFFMAP DIRLIGHT PERPIXEL SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT PERPIXEL SHADOW SKINNED" ps="LitSolid" psdefines="AMBIENT DIFFMAP DIRLIGHT PERPIXEL SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT INSTANCED PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIFFMAP DIRLIGHT PERPIXEL SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="PERPIXEL POINTLIGHT SHADOW" ps="LitSolid" psdefines="DIFFMAP PERPIXEL POINTLIGHT SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="PERPIXEL POINTLIGHT SHADOW SKINNED" ps="LitSolid" psdefines="DIFFMAP PERPIXEL POINTLIGHT SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIRLIGHT PERPIXEL SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="PERPIXEL POINTLIGHT SHADOW" ps="LitSolid" psdefines="PERPIXEL POINTLIGHT SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="INSTANCED PERPIXEL POINTLIGHT SHADOW" ps="LitSolid" psdefines="DIFFMAP PERPIXEL POINTLIGHT SHADOW SIMPLE_SHADOW" />
+	<shader vs="Basic" vsdefines="VERTEXCOLOR" ps="Basic" psdefines="VERTEXCOLOR" />
+	<shader vs="Basic" vsdefines="DIFFMAP VERTEXCOLOR" ps="Basic" psdefines="DIFFMAP VERTEXCOLOR" />
+	<shader vs="LitSolid" vsdefines="PERPIXEL POINTLIGHT SHADOW" ps="LitSolid" psdefines="DIFFMAP PCF_SHADOW PERPIXEL POINTLIGHT SHADOW" />
+	<shader vs="LitSolid" vsdefines="PERPIXEL POINTLIGHT SHADOW SKINNED" ps="LitSolid" psdefines="DIFFMAP PCF_SHADOW PERPIXEL POINTLIGHT SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT NOUV PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIRLIGHT PCF_SHADOW PERPIXEL SHADOW" />
+	<shader vs="LitSolid" vsdefines="DIRLIGHT NOUV PERPIXEL SHADOW" ps="LitSolid" psdefines="AMBIENT DIRLIGHT PERPIXEL SHADOW SIMPLE_SHADOW" />
+	<shader vs="LitSolid" vsdefines="NOUV PERPIXEL POINTLIGHT SHADOW" ps="LitSolid" psdefines="PCF_SHADOW PERPIXEL POINTLIGHT SHADOW" />
+	<shader vs="LitSolid" vsdefines="INSTANCED PERPIXEL POINTLIGHT SHADOW" ps="LitSolid" psdefines="DIFFMAP PCF_SHADOW PERPIXEL POINTLIGHT SHADOW" />
+</shaders>

+ 44 - 0
FeatureExamples/CPlusPlus/Data/Objects/LightFlash.xml

@@ -0,0 +1,44 @@
+<node id="7">
+    <attribute name="Name" value="LightFlash" />
+    <attribute name="Position" value="0 0 0" />
+    <attribute name="Rotation" value="1 0 0 0" />
+    <attribute name="Scale" value="1 1 1" />
+    <attribute name="Variables" />
+    <component type="ScriptInstance" id="16777217">
+        <attribute name="Delayed Method Calls" value="0" />
+        <attribute name="Script File" value="ScriptFile;Scripts/NinjaSnowWar.as" />
+        <attribute name="Class Name" value="LightFlash" />
+        <attribute name="Script Data" value="" />
+    </component>
+    <component type="Light" id="12">
+        <attribute name="Light Type" type="Enum" value="Point" />
+        <attribute name="Color" value="2 2 2 1" />
+        <attribute name="Specular Intensity" value="0" />
+        <attribute name="Range" value="5" />
+        <attribute name="Spot FOV" value="30" />
+        <attribute name="Spot Aspect Ratio" value="1" />
+        <attribute name="Attenuation Texture" value="Texture2D;Textures/RampWide.png" />
+        <attribute name="Light Shape Texture" value="Texture2D;" />
+        <attribute name="Can Be Occluded" value="true" />
+        <attribute name="Cast Shadows" value="true" />
+        <attribute name="Per Vertex" value="false" />
+        <attribute name="Draw Distance" value="0" />
+        <attribute name="Fade Distance" value="0" />
+        <attribute name="Shadow Distance" value="0" />
+        <attribute name="Shadow Fade Distance" value="0" />
+        <attribute name="Shadow Intensity" value="0" />
+        <attribute name="Shadow Resolution" value="0.25" />
+        <attribute name="Focus To Scene" value="true" />
+        <attribute name="Non-uniform View" value="true" />
+        <attribute name="Auto-Reduce Size" value="true" />
+        <attribute name="CSM Splits" value="1e+008 0 0 0" />
+        <attribute name="CSM Fade Start" value="0.8" />
+        <attribute name="View Size Quantize" value="0.5" />
+        <attribute name="View Size Minimum" value="3" />
+        <attribute name="Depth Constant Bias" value="0.0001" />
+        <attribute name="Depth Slope Bias" value="0.5" />
+        <attribute name="Near/Farclip Ratio" value="0.002" />
+        <attribute name="View Mask" value="-1" />
+        <attribute name="Light Mask" value="-1" />
+    </component>
+</node>

+ 114 - 0
FeatureExamples/CPlusPlus/Data/Objects/Ninja.xml

@@ -0,0 +1,114 @@
+<?xml version="1.0"?>
+<node id="2">
+	<attribute name="Name" value="Ninja" />
+	<attribute name="Position" value="0 0 0" />
+	<attribute name="Rotation" value="1 0 0 0" />
+	<attribute name="Scale" value="1 1 1" />
+	<attribute name="Variables" />
+	<component type="ScriptInstance" id="16777216">
+		<attribute name="Delayed Method Calls" value="0" />
+		<attribute name="Script File" value="ScriptFile;Scripts/NinjaSnowWar.as" />
+		<attribute name="Class Name" value="Ninja" />
+		<attribute name="Script Data" value="" />
+	</component>
+	<component type="NetworkPriority" id="16777217">
+		<attribute name="Base Priority" value="110" />
+		<attribute name="Distance Factor" value="2" />
+		<attribute name="Minimum Priority" value="50" />
+		<attribute name="Always Update Owner" value="true" />
+	</component>
+	<component type="CollisionShape" id="4">
+		<attribute name="Shape Type" value="Capsule" />
+		<attribute name="Size" value="0.7 1.8 0.7" />
+		<attribute name="Offset Position" value="0 0 0" />
+		<attribute name="Offset Rotation" value="1 0 0 0" />
+		<attribute name="Collision Margin" value="0.01" />
+		<attribute name="Model" value="Model;" />
+		<attribute name="LOD Level" value="0" />
+	</component>
+	<component type="RigidBody" id="5">
+		<attribute name="Physics Position" value="0 0 0" />
+		<attribute name="Physics Rotation" value="1 0 0 0" />
+		<attribute name="Mass" value="80" />
+		<attribute name="Friction" value="0.5" />
+		<attribute name="Restitution" value="0" />
+		<attribute name="Linear Velocity" value="0 0 0" />
+		<attribute name="Angular Velocity" value="0 0 0" />
+		<attribute name="Linear Factor" value="1 1 1" />
+		<attribute name="Angular Factor" value="0 0 0" />
+		<attribute name="Linear Damping" value="0" />
+		<attribute name="Angular Damping" value="0" />
+		<attribute name="Linear Rest Threshold" value="0.01" />
+		<attribute name="Angular Rest Threshold" value="1" />
+		<attribute name="Collision Layer" value="1" />
+		<attribute name="Collision Mask" value="3" />
+		<attribute name="Collision Event Mode" value="Always" />
+		<attribute name="Use Gravity" value="true" />
+		<attribute name="Is Kinematic" value="false" />
+		<attribute name="Is Trigger" value="false" />
+	</component>
+	<node id="3">
+		<attribute name="Name" value="" />
+		<attribute name="Position" value="0 -0.95 0" />
+		<attribute name="Rotation" value="1 0 0 0" />
+		<attribute name="Scale" value="1 1 1" />
+		<attribute name="Variables" />
+		<component type="AnimatedModel" id="6">
+			<attribute name="Model" value="Model;Models/NinjaSnowWar/Ninja.mdl" />
+			<attribute name="Material" value="Material;Materials/NinjaSnowWar/Ninja.xml;Materials/NinjaSnowWar/Ninja.xml" />
+			<attribute name="Is Occluder" value="false" />
+			<attribute name="Can Be Occluded" value="true" />
+			<attribute name="Cast Shadows" value="true" />
+			<attribute name="Draw Distance" value="0" />
+			<attribute name="Shadow Distance" value="0" />
+			<attribute name="LOD Bias" value="1" />
+			<attribute name="Animation LOD Bias" value="1" />
+			<attribute name="Max Lights" value="0" />
+			<attribute name="View Mask" value="-1" />
+			<attribute name="Light Mask" value="-1" />
+			<attribute name="Shadow Mask" value="-1" />
+			<attribute name="Zone Mask" value="-1" />
+			<attribute name="Bone Animation Enabled">
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+				<variant type="Bool" value="true" />
+			</attribute>
+			<attribute name="Animation States" />
+			<attribute name="Morphs" value="" />
+		</component>
+		<component type="AnimationController" id="7">
+			<attribute name="Animations" />
+		</component>
+    	<component type="ScriptInstance" id="8">
+    		<attribute name="Delayed Method Calls" value="0" />
+    		<attribute name="Script File" value="ScriptFile;Scripts/NinjaSnowWar.as" />
+    		<attribute name="Class Name" value="FootSteps" />
+    		<attribute name="Script Data" value="" />
+    	</component>
+	</node>
+</node>

+ 65 - 0
FeatureExamples/CPlusPlus/Data/Objects/Potion.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<node id="3">
+	<attribute name="Name" value="Potion" />
+	<attribute name="Position" value="0 0 0" />
+	<attribute name="Rotation" value="1 0 0 0" />
+	<attribute name="Scale" value="1 1 1" />
+	<attribute name="Variables" />
+	<component type="ScriptInstance" id="16777217">
+		<attribute name="Delayed Method Calls" value="0" />
+		<attribute name="Script File" value="ScriptFile;Scripts/NinjaSnowWar.as" />
+		<attribute name="Class Name" value="Potion" />
+		<attribute name="Script Data" value="" />
+	</component>
+	<component type="NetworkPriority" id="16777218">
+		<attribute name="Base Priority" value="100" />
+		<attribute name="Distance Factor" value="4" />
+		<attribute name="Minimum Priority" value="15" />
+		<attribute name="Always Update Owner" value="true" />
+	</component>
+	<component type="StaticModel" id="7">
+		<attribute name="Model" value="Model;Models/NinjaSnowWar/Potion.mdl" />
+		<attribute name="Material" value="Material;Materials/NinjaSnowWar/Potion.xml" />
+		<attribute name="Is Occluder" value="false" />
+		<attribute name="Can Be Occluded" value="true" />
+		<attribute name="Cast Shadows" value="true" />
+		<attribute name="Draw Distance" value="0" />
+		<attribute name="Shadow Distance" value="0" />
+		<attribute name="LOD Bias" value="1" />
+		<attribute name="Max Lights" value="0" />
+		<attribute name="View Mask" value="-1" />
+		<attribute name="Light Mask" value="-1" />
+		<attribute name="Shadow Mask" value="-1" />
+		<attribute name="Zone Mask" value="-1" />
+	</component>
+	<component type="CollisionShape" id="8">
+		<attribute name="Shape Type" value="Box" />
+		<attribute name="Size" value="0.2 0.4 0.2" />
+		<attribute name="Offset Position" value="0 0 0" />
+		<attribute name="Offset Rotation" value="1 0 0 0" />
+		<attribute name="Collision Margin" value="0.01" />
+		<attribute name="Model" value="Model;" />
+		<attribute name="LOD Level" value="0" />
+	</component>
+	<component type="RigidBody" id="9">
+		<attribute name="Physics Position" value="0 0 0" />
+		<attribute name="Physics Rotation" value="1 0 0 0" />
+		<attribute name="Mass" value="10" />
+		<attribute name="Friction" value="0.5" />
+		<attribute name="Restitution" value="0" />
+		<attribute name="Linear Velocity" value="0 0 0" />
+		<attribute name="Angular Velocity" value="0 0 0" />
+		<attribute name="Linear Factor" value="1 1 1" />
+		<attribute name="Angular Factor" value="1 1 1" />
+		<attribute name="Linear Damping" value="0" />
+		<attribute name="Angular Damping" value="0" />
+		<attribute name="Linear Rest Threshold" value="0.01" />
+		<attribute name="Angular Rest Threshold" value="1" />
+		<attribute name="Collision Layer" value="1" />
+		<attribute name="Collision Mask" value="3" />
+		<attribute name="Collision Event Mode" value="When Active" />
+		<attribute name="Use Gravity" value="true" />
+		<attribute name="Is Kinematic" value="false" />
+		<attribute name="Is Trigger" value="false" />
+	</component>
+</node>

+ 67 - 0
FeatureExamples/CPlusPlus/Data/Objects/SnowBall.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<node id="2">
+	<attribute name="Name" value="SnowBall" />
+	<attribute name="Position" value="0 0 0" />
+	<attribute name="Rotation" value="1 0 0 0" />
+	<attribute name="Scale" value="1 1 1" />
+	<attribute name="Variables" />
+	<component type="ScriptInstance" id="16777216">
+		<attribute name="Delayed Method Calls" value="0" />
+		<attribute name="Script File" value="ScriptFile;Scripts/NinjaSnowWar.as" />
+		<attribute name="Class Name" value="SnowBall" />
+		<attribute name="Script Data" value="" />
+	</component>
+	<component type="NetworkPriority" id="16777217">
+		<attribute name="Base Priority" value="100" />
+		<attribute name="Distance Factor" value="2" />
+		<attribute name="Minimum Priority" value="25" />
+		<attribute name="Always Update Owner" value="true" />
+	</component>
+	<component type="StaticModel" id="4">
+		<attribute name="Model" value="Model;Models/NinjaSnowWar/SnowBall.mdl" />
+		<attribute name="Material" value="Material;Materials/NinjaSnowWar/Snow.xml" />
+		<attribute name="Is Occluder" value="false" />
+		<attribute name="Can Be Occluded" value="true" />
+		<attribute name="Cast Shadows" value="true" />
+		<attribute name="Draw Distance" value="75" />
+		<attribute name="Shadow Distance" value="0" />
+		<attribute name="LOD Bias" value="1" />
+		<attribute name="Max Lights" value="0" />
+		<attribute name="View Mask" value="-1" />
+		<attribute name="Light Mask" value="-1" />
+		<attribute name="Shadow Mask" value="-1" />
+		<attribute name="Zone Mask" value="-1" />
+	</component>
+	<component type="CollisionShape" id="5">
+		<attribute name="Shape Type" value="Box" />
+		<attribute name="Size" value="0.15 0.15 0.15" />
+		<attribute name="Offset Position" value="0 0 0" />
+		<attribute name="Offset Rotation" value="1 0 0 0" />
+		<attribute name="Model" value="Model;" />
+		<attribute name="LOD Level" value="0" />
+		<attribute name="Collision Margin" value="0.01" />
+	</component>
+	<component type="RigidBody" id="6">
+		<attribute name="Physics Position" value="0 0 0" />
+		<attribute name="Physics Rotation" value="1 0 0 0" />
+		<attribute name="Mass" value="10" />
+		<attribute name="Friction" value="0.75" />
+		<attribute name="Restitution" value="0" />
+		<attribute name="Linear Velocity" value="0 0 0" />
+		<attribute name="Angular Velocity" value="0 0 0" />
+		<attribute name="Linear Factor" value="1 1 1" />
+		<attribute name="Angular Factor" value="1 1 1" />
+		<attribute name="Linear Damping" value="0" />
+		<attribute name="Angular Damping" value="0" />
+		<attribute name="Linear Rest Threshold" value="0.0" />
+		<attribute name="Angular Rest Threshold" value="1" />
+		<attribute name="Collision Layer" value="1" />
+		<attribute name="Collision Mask" value="3" />
+		<attribute name="CCD Radius" value="0.05" />
+		<attribute name="CCD Motion Threshold" value="0.15" />
+		<attribute name="Collision Event Mode" value="When Active" />
+		<attribute name="Use Gravity" value="true" />
+		<attribute name="Is Kinematic" value="false" />
+		<attribute name="Is Trigger" value="false" />
+	</component>
+</node>

+ 65 - 0
FeatureExamples/CPlusPlus/Data/Objects/SnowCrate.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<node id="3">
+	<attribute name="Name" value="SnowCrate" />
+	<attribute name="Position" value="0 0 0" />
+	<attribute name="Rotation" value="1 0 0 0" />
+	<attribute name="Scale" value="1 1 1" />
+	<attribute name="Variables" />
+	<component type="ScriptInstance" id="16777219">
+		<attribute name="Delayed Method Calls" value="0" />
+		<attribute name="Script File" value="ScriptFile;Scripts/NinjaSnowWar.as" />
+		<attribute name="Class Name" value="SnowCrate" />
+		<attribute name="Script Data" value="" />
+	</component>
+	<component type="NetworkPriority" id="16777220">
+		<attribute name="Base Priority" value="100" />
+		<attribute name="Distance Factor" value="4" />
+		<attribute name="Minimum Priority" value="15" />
+		<attribute name="Always Update Owner" value="true" />
+	</component>
+	<component type="StaticModel" id="11">
+		<attribute name="Model" value="Model;Models/NinjaSnowWar/SnowCrate.mdl" />
+		<attribute name="Material" value="Material;Materials/NinjaSnowWar/SnowCrate.xml" />
+		<attribute name="Is Occluder" value="false" />
+		<attribute name="Can Be Occluded" value="true" />
+		<attribute name="Cast Shadows" value="true" />
+		<attribute name="Draw Distance" value="0" />
+		<attribute name="Shadow Distance" value="0" />
+		<attribute name="LOD Bias" value="1" />
+		<attribute name="Max Lights" value="0" />
+		<attribute name="View Mask" value="-1" />
+		<attribute name="Light Mask" value="-1" />
+		<attribute name="Shadow Mask" value="-1" />
+		<attribute name="Zone Mask" value="-1" />
+	</component>
+	<component type="CollisionShape" id="12">
+		<attribute name="Shape Type" value="Box" />
+		<attribute name="Size" value="0.8 0.8 0.8" />
+		<attribute name="Offset Position" value="0 0 0" />
+		<attribute name="Offset Rotation" value="1 0 0 0" />
+		<attribute name="Collision Margin" value="0.01" />
+		<attribute name="Model" value="Model;" />
+		<attribute name="LOD Level" value="0" />
+	</component>
+	<component type="RigidBody" id="13">
+		<attribute name="Physics Position" value="0 0 0" />
+		<attribute name="Physics Rotation" value="1 0 0 0" />
+		<attribute name="Mass" value="200" />
+		<attribute name="Friction" value="0.5" />
+		<attribute name="Restitution" value="0" />
+		<attribute name="Linear Velocity" value="0 0 0" />
+		<attribute name="Angular Velocity" value="0 0 0" />
+		<attribute name="Linear Factor" value="1 1 1" />
+		<attribute name="Angular Factor" value="1 1 1" />
+		<attribute name="Linear Damping" value="0" />
+		<attribute name="Angular Damping" value="0" />
+		<attribute name="Linear Rest Threshold" value="0.01" />
+		<attribute name="Angular Rest Threshold" value="1" />
+		<attribute name="Collision Layer" value="2" />
+		<attribute name="Collision Mask" value="3" />
+		<attribute name="Collision Event Mode" value="When Active" />
+		<attribute name="Use Gravity" value="true" />
+		<attribute name="Is Kinematic" value="false" />
+		<attribute name="Is Trigger" value="false" />
+	</component>
+</node>

+ 28 - 0
FeatureExamples/CPlusPlus/Data/Particle/Burst.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<particleeffect>
+	<material name="Materials/Particle.xml" />
+	<numparticles value="200" />
+	<updateinvisible enable="false" />
+	<relative enable="true" />
+	<scaled enable="true" />
+	<sorted enable="false" />
+	<animlodbias value="0" />
+	<emittertype value="Sphere" />
+	<emittersize value="0 0 0" />
+	<direction min="-1 -1 -1" max="1 1 1" />
+	<constantforce value="0 -20 0" />
+	<dampingforce value="0" />
+	<activetime value="0" />
+	<inactivetime value="0" />
+	<emissionrate min="2000" max="2000" />
+	<particlesize min="0.03 0.3" max="0.06 1" />
+	<timetolive min="1" max="1" />
+	<velocity min="8" max="10" />
+	<rotation min="0" max="0" />
+	<rotationspeed min="0" max="0" />
+	<sizedelta add="0" mul="0.01" />
+	<faceCameraMode value="Direction" />
+	<colorfade color="1 1 1 1" time="0" />
+	<colorfade color="0.5 0.75 1 1" time="0.5" />
+	<colorfade color="0 0 0 0" time="1" />
+</particleeffect>

+ 28 - 0
FeatureExamples/CPlusPlus/Data/Particle/Disco.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<particleeffect>
+	<material name="Materials/Particle.xml" />
+	<numparticles value="10" />
+	<updateinvisible enable="true" />
+	<relative enable="true" />
+	<scaled enable="true" />
+	<sorted enable="true" />
+	<animlodbias value="0" />
+	<emittertype value="Sphere" />
+	<emittersize value="0 0 0" />
+	<direction min="-1 0 -1" max="1 1 1" />
+	<constantforce value="0 -2 0" />
+	<dampingforce value="0" />
+	<activetime value="0" />
+	<inactivetime value="0" />
+	<emissionrate min="50" max="50" />
+	<particlesize min="0.25 0.25" max="0.25 0.25" />
+	<timetolive min="2.01" max="2.41" />
+	<velocity min="2" max="3" />
+	<rotation min="0" max="0" />
+	<rotationspeed min="0" max="0" />
+	<sizedelta add="0" mul="1" />
+	<colorfade color="0.35 0.35 0.5 1" time="0" />
+	<colorfade color="0 0 0 1" time="0.5" />
+	<colorfade color="1 0 0 1" time="1" />
+	<colorfade color="0 1 0 1" time="2" />
+</particleeffect>

+ 27 - 0
FeatureExamples/CPlusPlus/Data/Particle/Fire.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<particleeffect>
+	<material name="Materials/Particle.xml" />
+	<numparticles value="1000" />
+	<updateinvisible enable="false" />
+	<relative enable="false" />
+	<scaled enable="true" />
+	<sorted enable="false" />
+	<animlodbias value="0" />
+	<emittertype value="Sphere" />
+	<emittersize value="0 0 0" />
+	<direction min="-0.1 0.1 -0.1" max="0.1 1 0.1" />
+	<constantforce value="0 2 0" />
+	<dampingforce value="2" />
+	<activetime value="0" />
+	<inactivetime value="0" />
+	<emissionrate min="40" max="50" />
+	<particlesize min="0.1 0.1" max="0.4 0.4" />
+	<timetolive min="1" max="1" />
+	<velocity min="1" max="2" />
+	<rotation min="0" max="0" />
+	<rotationspeed min="0" max="0" />
+	<sizedelta add="0" mul="0.5" />
+	<colorfade color="0.1 0.5 1 1" time="0" />
+	<colorfade color="1 0.63 0.45 1" time="0.5" />
+	<colorfade color="0 0 0 0" time="1" />
+</particleeffect>

+ 20 - 0
FeatureExamples/CPlusPlus/Data/Particle/Smoke.xml

@@ -0,0 +1,20 @@
+<particleemitter>
+    <material name="Materials/Smoke.xml" />
+    <updateinvisible enable="true" />
+    <relative enable="false" />
+    <numparticles value="10" />
+    <activetime value="2" />
+    <inactivetime value="0" />
+    <emissionrate value="13.333" />
+    <sorted enable="true" />
+    <rotationspeed min="-60" max="60" />
+    <direction min="-0.15 1 -0.15" max="0.15 1 0.15" />
+    <velocity min="1" max="1.3" />
+    <particlesize min="0.2 0.2" max="0.3 0.3" />
+    <sizedelta add="0" mul="1.3" />
+    <timetolive value="4" />
+    <constantforce value="0 -0.2 0" />
+    <colorfade color="0.2 0.2 0.2 0" time="0.0" />
+    <colorfade color="0.2 0.2 0.2 1" time="0.25" />
+    <colorfade color="0.6 0.6 0.6 0" time="4.0" />
+</particleemitter>

+ 28 - 0
FeatureExamples/CPlusPlus/Data/Particle/SmokeStack.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<particleeffect>
+	<material name="Materials/Smoke.xml" />
+	<numparticles value="1000" />
+	<updateinvisible enable="true" />
+	<relative enable="false" />
+	<scaled enable="true" />
+	<sorted enable="true" />
+	<animlodbias value="0" />
+	<emittertype value="Box" />
+	<emittersize value="1 1 1" />
+	<direction min="-0.15 1 -0.15" max="0.15 1 0.15" />
+	<constantforce value="0 2 0" />
+	<dampingforce value="2" />
+	<activetime value="0" />
+	<inactivetime value="0" />
+	<emissionrate min="100" max="200" />
+	<particlesize min="0.1 0.2" max="0.6 0.7" />
+	<timetolive min="4" max="4" />
+	<velocity min="0.5" max="3" />
+	<rotation min="0" max="0" />
+	<rotationspeed min="60" max="60" />
+	<sizedelta add="0" mul="1.3" />
+	<colorfade color="1 1 1 0" time="0" />
+	<colorfade color="0.69 0.33 0.2 0.5" time="0.64" />
+	<colorfade color="0 0 0 0" time="1.98" />
+	<colorfade color="0 0 0 0" time="4" />
+</particleeffect>

+ 16 - 0
FeatureExamples/CPlusPlus/Data/Particle/SnowExplosion.xml

@@ -0,0 +1,16 @@
+<particleemitter>
+    <material name="Materials/Particle.xml" />
+    <updateinvisible enable="true" />
+    <numparticles value="10" />
+    <activetime value="0.1" />
+    <inactivetime value="0" />
+    <emissionrate value="50" />
+    <sorted enable="true" />
+    <direction min="-1 0 -1" max="1 1 1" />
+    <velocity min="0.5" max="1" />
+    <particlesize value="0.25 0.25" />
+    <timetolive value="0.5" />
+    <constantforce value="0 -2 0" />
+    <colorfade color="0.35 0.35 0.5 1" time="0.0" />
+    <colorfade color="0 0 0 1" time="0.5" />
+</particleemitter>

+ 18 - 0
FeatureExamples/CPlusPlus/Data/Particle/SnowExplosionBig.xml

@@ -0,0 +1,18 @@
+<particleemitter>
+    <material name="Materials/Particle.xml" />
+    <updateinvisible enable="true" />
+    <numparticles value="10" />
+    <emittertype value="box" />
+    <emittersize value="0.3 0.3 0.3" />
+    <activetime value="0.2" />
+    <inactivetime value="0" />
+    <emissionrate value="50" />
+    <sorted enable="true" />
+    <direction min="-1 0.5 -1" max="1 1 1" />
+    <velocity min="2" max="3" />
+    <particlesize value="0.6 0.6" />
+    <timetolive value="0.5" />
+    <constantforce value="0.0 -4 0.0" />
+    <colorfade color="0.35 0.35 0.5 1" time="0.0" />
+    <colorfade color="0 0 0 1" time="0.5" />
+</particleemitter>

+ 16 - 0
FeatureExamples/CPlusPlus/Data/Particle/SnowExplosionFade.xml

@@ -0,0 +1,16 @@
+<particleemitter>
+    <material name="Materials/Particle.xml" />
+    <updateinvisible enable="true" />
+    <numparticles value="5" />
+    <activetime value="0.1" />
+    <inactivetime value="0" />
+    <emissionrate value="50" />
+    <sorted enable="true" />
+    <direction min="-1 0 -1" max="1 1 1" />
+    <velocity min="0.5" max="1" />
+    <particlesize value="0.25 0.25" />
+    <timetolive value="0.5" />
+    <constantforce value="0 -2 0" />
+    <colorfade color="0.1 0.1 0.2 1" time="0.0" />
+    <colorfade color="0 0 0 1" time="0.5" />
+</particleemitter>

+ 38 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/AutoExposure.xml

@@ -0,0 +1,38 @@
+<renderpath>
+    <rendertarget name="hdr128" tag="AutoExposure" size="128 128" format="rgba16f" filter="true" />
+    <rendertarget name="lum64" tag="AutoExposure" size="64 64" format="rg16f" filter="true" />
+    <rendertarget name="lum16" tag="AutoExposure" size="16 16" format="rg16f" filter="true" />
+    <rendertarget name="lum4" tag="AutoExposure" size="4 4" format="rg16f" filter="true" />
+    <rendertarget name="lum1" tag="AutoExposure" size="1 1" format="rg16f" filter="false" />
+    <rendertarget name="adaptedLum" tag="AutoExposure" size="1 1" format="rg16f" filter="false" persistent="true" />
+    <rendertarget name="prevAdaptedLum" tag="AutoExposure" size="1 1" format="rg16f" filter="false" />
+    <command type="quad" tag="AutoExposure" vs="CopyFramebuffer" ps="CopyFramebuffer" output="hdr128">
+        <texture unit="diffuse" name="viewport" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="AutoExposure" ps="AutoExposure" vsdefines="LUMINANCE64" psdefines="LUMINANCE64" output="lum64">
+        <texture unit="diffuse" name="hdr128" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="AutoExposure" ps="AutoExposure" vsdefines="LUMINANCE16" psdefines="LUMINANCE16" output="lum16">
+        <texture unit="diffuse" name="lum64" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="AutoExposure" ps="AutoExposure" vsdefines="LUMINANCE4" psdefines="LUMINANCE4" output="lum4">
+        <texture unit="diffuse" name="lum16" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="AutoExposure" ps="AutoExposure" vsdefines="LUMINANCE1" psdefines="LUMINANCE1" output="lum1">
+        <texture unit="diffuse" name="lum4" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="CopyFramebuffer" ps="CopyFramebuffer" output="prevAdaptedLum">
+        <texture unit="diffuse" name="adaptedLum" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="AutoExposure" ps="AutoExposure" vsdefines="ADAPTLUMINANCE" psdefines="ADAPTLUMINANCE" output="adaptedLum">
+        <parameter name="AutoExposureAdaptRate" value="0.6" />
+        <parameter name="AutoExposureLumRange" value="0.01 1.0" />
+        <texture unit="diffuse" name="prevAdaptedLum" />
+        <texture unit="normal" name="lum1" />
+    </command>
+    <command type="quad" tag="AutoExposure" vs="AutoExposure" ps="AutoExposure" vsdefines="EXPOSE" psdefines="EXPOSE" output="viewport">
+        <parameter name="AutoExposureMiddleGrey" value="0.6" />
+        <texture unit="diffuse" name="viewport" />
+        <texture unit="normal" name="adaptedLum" />
+    </command>
+</renderpath>

+ 19 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/Bloom.xml

@@ -0,0 +1,19 @@
+<renderpath>
+    <rendertarget name="blurv" tag="Bloom" sizedivisor="4 4" format="rgb" filter="true" />
+    <rendertarget name="blurh" tag="Bloom" sizedivisor="4 4" format="rgb" filter="true" />
+    <command type="quad" tag="Bloom" vs="Bloom" ps="Bloom" psdefines="BRIGHT" output="blurv">
+        <parameter name="BloomThreshold" value="0.3" />
+        <texture unit="diffuse" name="viewport" />
+    </command>
+    <command type="quad" tag="Bloom" vs="Bloom" ps="Bloom" psdefines="BLURH" output="blurh">
+        <texture unit="diffuse" name="blurv" />
+    </command>
+    <command type="quad" tag="Bloom" vs="Bloom" ps="Bloom" psdefines="BLURV" output="blurv">
+        <texture unit="diffuse" name="blurh" />
+    </command>
+    <command type="quad" tag="Bloom" vs="Bloom" ps="Bloom" psdefines="COMBINE" output="viewport">
+        <parameter name="BloomMix" value="0.9 0.4" />
+        <texture unit="diffuse" name="viewport" />
+        <texture unit="normal" name="blurv" />
+    </command>
+</renderpath>

+ 88 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/BloomHDR.xml

@@ -0,0 +1,88 @@
+<renderpath>
+    <rendertarget name="bright2" tag="BloomHDR" sizedivisor="2 2" format="rgba16f" filter="true" />
+    <rendertarget name="bright4" tag="BloomHDR" sizedivisor="4 4" format="rgba16f" filter="true" />
+    <rendertarget name="bright8" tag="BloomHDR" sizedivisor="8 8" format="rgba16f" filter="true" />
+    <rendertarget name="bright16" tag="BloomHDR" sizedivisor="16 16" format="rgba16f" filter="true" />
+    <rendertarget name="blur2" tag="BloomHDR" sizedivisor="2 2" format="rgba16f" filter="true" />
+    <rendertarget name="blur4" tag="BloomHDR" sizedivisor="4 4" format="rgba16f" filter="true" />
+    <rendertarget name="blur8" tag="BloomHDR" sizedivisor="8 8" format="rgba16f" filter="true" />
+    <rendertarget name="blur16" tag="BloomHDR" sizedivisor="16 16" format="rgba16f" filter="true" />
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BRIGHT" psdefines="BRIGHT" output="bright2">
+        <parameter name="BloomHDRThreshold" value="0.8" />
+        <texture unit="diffuse" name="viewport" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="CopyFramebuffer" ps="CopyFramebuffer" output="bright4">
+        <texture unit="diffuse" name="bright2" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="CopyFramebuffer" ps="CopyFramebuffer" output="bright8">
+        <texture unit="diffuse" name="bright4" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="CopyFramebuffer" ps="CopyFramebuffer" output="bright16">
+        <texture unit="diffuse" name="bright8" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR16" psdefines="BLUR16" output="blur16">
+        <parameter name="BloomHDRBlurDir" value="1.0 0.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="bright16" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR16" psdefines="BLUR16" output="bright16">
+        <parameter name="BloomHDRBlurDir" value="0.0 1.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blur16" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="COMBINE16" psdefines="COMBINE16" output="blur8">
+        <texture unit="diffuse" name="bright8" />
+        <texture unit="normal" name="bright16" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR8" psdefines="BLUR8" output="bright8">
+        <parameter name="BloomHDRBlurDir" value="1.0 0.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blur8" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR8" psdefines="BLUR8" output="blur8">
+        <parameter name="BloomHDRBlurDir" value="0.0 1.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="bright8" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="COMBINE8" psdefines="COMBINE8" output="blur4">
+        <texture unit="diffuse" name="bright4" />
+        <texture unit="normal" name="blur8" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR4" psdefines="BLUR4" output="bright4">
+        <parameter name="BloomHDRBlurDir" value="1.0 0.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blur4" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR4" psdefines="BLUR4" output="blur4">
+        <parameter name="BloomHDRBlurDir" value="0.0 1.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="bright4" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="COMBINE4" psdefines="COMBINE4" output="blur2">
+        <texture unit="diffuse" name="bright2" />
+        <texture unit="normal" name="blur4" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR2" psdefines="BLUR2" output="bright2">
+        <parameter name="BloomHDRBlurDir" value="1.0 0.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blur2" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="BLUR2" psdefines="BLUR2" output="blur2">
+        <parameter name="BloomHDRBlurDir" value="0.0 1.0" />
+        <parameter name="BloomHDRBlurRadius" value="1.0" />
+        <parameter name="BloomHDRBlurSigma" value="2.0" />
+        <texture unit="diffuse" name="bright2" />
+    </command>
+    <command type="quad" tag="BloomHDR" vs="BloomHDR" ps="BloomHDR" vsdefines="COMBINE2" psdefines="COMBINE2" output="viewport">
+        <parameter name="BloomHDRMix" value="1.0 0.4" />
+        <texture unit="diffuse" name="viewport" />
+        <texture unit="normal" name="blur2" />
+    </command>
+</renderpath>

+ 31 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/Blur.xml

@@ -0,0 +1,31 @@
+<renderpath>
+    <rendertarget name="blurh" tag="Blur" sizedivisor="2 2" format="rgba" filter="true" />
+    <rendertarget name="blurv" tag="Blur" sizedivisor="2 2" format="rgba" filter="true" />
+    <command type="quad" tag="Blur" vs="Blur" ps="Blur" psdefines="BLUR3" output="blurh">
+        <parameter name="BlurDir" value="1.0 0.0" />
+        <parameter name="BlurRadius" value="2.0" />
+        <parameter name="BlurSigma" value="2.0" />
+        <texture unit="diffuse" name="viewport" />
+    </command>
+    <command type="quad" tag="Blur" vs="Blur" ps="Blur" psdefines="BLUR3" output="blurv">
+        <parameter name="BlurDir" value="0.0 1.0" />
+        <parameter name="BlurRadius" value="2.0" />
+        <parameter name="BlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blurh" />
+    </command>
+    <command type="quad" tag="Blur" vs="Blur" ps="Blur" psdefines="BLUR3" output="blurh">
+        <parameter name="BlurDir" value="1.0 0.0" />
+        <parameter name="BlurRadius" value="1.0" />
+        <parameter name="BlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blurv" />
+    </command>
+    <command type="quad" tag="Blur" vs="Blur" ps="Blur" psdefines="BLUR3" output="blurv">
+        <parameter name="BlurDir" value="0.0 1.0" />
+        <parameter name="BlurRadius" value="1.0" />
+        <parameter name="BlurSigma" value="2.0" />
+        <texture unit="diffuse" name="blurh" />
+    </command>
+    <command type="quad" tag="Blur" vs="CopyFramebuffer" ps="CopyFramebuffer" output="viewport">
+        <texture unit="diffuse" name="blurv" />
+    </command>
+</renderpath>

+ 6 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/ColorCorrection.xml

@@ -0,0 +1,6 @@
+<renderpath>
+    <command type="quad" tag="ColorCorrection" vs="ColorCorrection" ps="ColorCorrection" output="viewport">
+        <texture unit="diffuse" name="viewport" />
+        <texture unit="volume" name="Textures/LUTIdentity.xml" />
+    </command>
+</renderpath>

+ 6 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/FXAA2.xml

@@ -0,0 +1,6 @@
+<renderpath>
+    <command type="quad" tag="FXAA2" vs="FXAA2" ps="FXAA2" output="viewport">
+        <texture unit="diffuse" name="viewport" />
+        <parameter name="FXAAParams" value="0.4 0.5 0.75" />
+    </command>
+</renderpath>

+ 5 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/FXAA3.xml

@@ -0,0 +1,5 @@
+<renderpath>
+    <command type="quad" tag="FXAA3" vs="FXAA3" ps="FXAA3" psdefines="FXAA_QUALITY_PRESET=12" output="viewport">
+        <texture unit="diffuse" name="viewport" />
+    </command>
+</renderpath>

+ 5 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/GammaCorrection.xml

@@ -0,0 +1,5 @@
+<renderpath>
+    <command type="quad" tag="GammaCorrection" vs="GammaCorrection" ps="GammaCorrection" output="viewport">
+        <texture unit="diffuse" name="viewport" />
+    </command>
+</renderpath>

+ 5 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/GreyScale.xml

@@ -0,0 +1,5 @@
+<renderpath>
+    <command type="quad" tag="GreyScale" vs="GreyScale" ps="GreyScale" output="viewport">
+        <texture unit="diffuse" name="viewport" />
+    </command>
+</renderpath>

+ 16 - 0
FeatureExamples/CPlusPlus/Data/PostProcess/Tonemap.xml

@@ -0,0 +1,16 @@
+<renderpath>
+    <command type="quad" enabled="true" tag="TonemapReinhardEq3" vs="Tonemap" ps="Tonemap" psdefines="REINHARDEQ3" output="viewport">
+        <parameter name="TonemapExposureBias" value="1.0" />
+        <texture unit="diffuse" name="viewport" />
+    </command>
+    <command type="quad" enabled="false" tag="TonemapReinhardEq4" vs="Tonemap" ps="Tonemap" psdefines="REINHARDEQ4" output="viewport">
+        <parameter name="TonemapExposureBias" value="1.0" />
+        <parameter name="TonemapMaxWhite" value="8.0" />
+        <texture unit="diffuse" name="viewport" />
+    </command>
+    <command type="quad" enabled="false" tag="TonemapUncharted2" vs="Tonemap" ps="Tonemap" psdefines="UNCHARTED2" output="viewport">
+        <parameter name="TonemapExposureBias" value="1.0" />
+        <parameter name="TonemapMaxWhite" value="4.0" />
+        <texture unit="diffuse" name="viewport" />
+    </command>
+</renderpath>

+ 76 - 0
FeatureExamples/CPlusPlus/Data/Scenes/ParticleEmitter3D.scene

@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<scene id="1">
+	<attribute name="Name" value="" />
+	<attribute name="Time Scale" value="1" />
+	<attribute name="Smoothing Constant" value="50" />
+	<attribute name="Snap Threshold" value="5" />
+	<attribute name="Elapsed Time" value="0" />
+	<attribute name="Next Replicated Node ID" value="370" />
+	<attribute name="Next Replicated Component ID" value="1984" />
+	<attribute name="Next Local Node ID" value="16778496" />
+	<attribute name="Next Local Component ID" value="16777216" />
+	<attribute name="Variables" />
+	<attribute name="Variable Names" value="" />
+	<component type="PhysicsWorld" id="1" />
+	<component type="Octree" id="2" />
+	<component type="DebugRenderer" id="3" />
+	<node id="2">
+		<attribute name="Is Enabled" value="true" />
+		<attribute name="Name" value="Zone" />
+		<attribute name="Position" value="0 0 0" />
+		<attribute name="Rotation" value="1 0 0 0" />
+		<attribute name="Scale" value="1 1 1" />
+		<attribute name="Variables" />
+		<component type="Zone" id="4">
+			<attribute name="Bounding Box Min" value="-10000 -10000 -10000" />
+			<attribute name="Bounding Box Max" value="10000 10000 10000" />
+			<attribute name="Ambient Color" value="0.4 0.4 0.4 1" />
+		</component>
+	</node>
+	<node id="3">
+		<attribute name="Is Enabled" value="true" />
+		<attribute name="Name" value="GlobalLight" />
+		<attribute name="Position" value="0 0 0" />
+		<attribute name="Rotation" value="0.888074 0.325058 -0.325058 0" />
+		<attribute name="Scale" value="1 1 1" />
+		<attribute name="Variables" />
+		<component type="Light" id="5">
+			<attribute name="Light Type" value="Directional" />
+			<attribute name="Cast Shadows" value="true" />
+			<attribute name="CSM Splits" value="10 20 50 0" />
+			<attribute name="View Size Quantize" value="1" />
+			<attribute name="View Size Minimum" value="5" />
+			<attribute name="Depth Constant Bias" value="0.00025" />
+			<attribute name="Depth Slope Bias" value="0.001" />
+		</component>
+	</node>
+	<node id="361">
+		<attribute name="Is Enabled" value="true" />
+		<attribute name="Name" value="Camera" />
+		<attribute name="Position" value="0 0.54151 -3.4536" />
+		<attribute name="Rotation" value="1 0 0 0" />
+		<attribute name="Scale" value="1 1 1" />
+		<attribute name="Variables" />
+		<component type="Camera" id="1973" />
+	</node>
+	<node id="365">
+		<attribute name="Is Enabled" value="true" />
+		<attribute name="Name" value="Particles" />
+		<attribute name="Position" value="0 0 0" />
+		<attribute name="Rotation" value="1 0 0 0" />
+		<attribute name="Scale" value="1 1 1" />
+		<attribute name="Variables" />
+		<component type="ParticleEmitter" id="1978">
+			<attribute name="Effect" value="ParticleEffect;Particle/Fire.xml" />
+			<attribute name="Face Camera Mode" value="LookAt XYZ" />
+			<attribute name="Animation LOD Bias" value="0" />
+			<attribute name="Particles">
+				<variant type="Int" value="1000" />
+			</attribute>
+			<attribute name="Billboards">
+				<variant type="Int" value="1000" />
+			</attribute>
+			<attribute name="Serialize Particles" value="false" />
+		</component>
+	</node>
+</scene>

BIN
FeatureExamples/CPlusPlus/Data/Sounds/BigExplosion.wav


BIN
FeatureExamples/CPlusPlus/Data/Sounds/NutThrow.wav


BIN
FeatureExamples/CPlusPlus/Data/Sounds/PlayerFist.wav


BIN
FeatureExamples/CPlusPlus/Data/Sounds/PlayerFistHit.wav


BIN
FeatureExamples/CPlusPlus/Data/Sounds/PlayerLand.wav


BIN
FeatureExamples/CPlusPlus/Data/Sounds/Powerup.wav


BIN
FeatureExamples/CPlusPlus/Data/Sounds/SmallExplosion.wav


+ 14 - 0
FeatureExamples/CPlusPlus/Data/StringsDe.json

@@ -0,0 +1,14 @@
+{
+	"lang":{
+		"de":"Sprache: Deutsch"
+	},
+	"quit":{
+		"de":"Verlassen"
+	},
+	"Press this button":{
+		"de":"Drücken Sie diese Taste"
+	},
+	"title":{
+		"de":"Titel"
+	}
+}

+ 18 - 0
FeatureExamples/CPlusPlus/Data/StringsEnRu.json

@@ -0,0 +1,18 @@
+{
+	"lang":{
+		"en":"Language: English",
+		"ru":"Язык: Русский"
+	},
+	"quit":{
+		"en":"Quit",
+		"ru":"Выйти"
+	},
+	"Press this button":{
+		"en":"Press this button",
+		"ru":"Нажмите эту кнопку"
+	},
+	"title":{
+		"en":"Title",
+		"ru":"Заголовок"
+	}
+}

BIN
FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_NegX.dds


BIN
FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_NegY.dds


BIN
FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_NegZ.dds


BIN
FeatureExamples/CPlusPlus/Data/Textures/BrightDay1_PosX.dds


Some files were not shown because too many files changed in this diff