├── Bin ├── CoreData │ ├── Materials │ │ └── DefaultGrey.xml │ ├── RenderPaths │ │ ├── Deferred.xml │ │ ├── Forward.xml │ │ ├── ForwardDepth.xml │ │ ├── Prepass.xml │ │ └── PrepassHDR.xml │ ├── Shaders │ │ ├── GLSL │ │ │ ├── AutoExposure.glsl │ │ │ ├── Basic.glsl │ │ │ ├── Bloom.glsl │ │ │ ├── BloomHDR.glsl │ │ │ ├── Blur.glsl │ │ │ ├── ColorCorrection.glsl │ │ │ ├── CopyFramebuffer.glsl │ │ │ ├── DeferredLight.glsl │ │ │ ├── Depth.glsl │ │ │ ├── FXAA2.glsl │ │ │ ├── FXAA3.glsl │ │ │ ├── Fog.glsl │ │ │ ├── GammaCorrection.glsl │ │ │ ├── GreyScale.glsl │ │ │ ├── Lighting.glsl │ │ │ ├── LitParticle.glsl │ │ │ ├── LitSolid.glsl │ │ │ ├── PostProcess.glsl │ │ │ ├── PrepassLight.glsl │ │ │ ├── Samplers.glsl │ │ │ ├── ScreenPos.glsl │ │ │ ├── Shadow.glsl │ │ │ ├── Skybox.glsl │ │ │ ├── Stencil.glsl │ │ │ ├── TerrainBlend.glsl │ │ │ ├── Tonemap.glsl │ │ │ ├── Transform.glsl │ │ │ ├── Uniforms.glsl │ │ │ ├── Unlit.glsl │ │ │ ├── Vegetation.glsl │ │ │ ├── VegetationDepth.glsl │ │ │ ├── VegetationShadow.glsl │ │ │ └── Water.glsl │ │ └── HLSL │ │ │ ├── AutoExposure.hlsl │ │ │ ├── Basic.hlsl │ │ │ ├── Bloom.hlsl │ │ │ ├── BloomHDR.hlsl │ │ │ ├── Blur.hlsl │ │ │ ├── ColorCorrection.hlsl │ │ │ ├── CopyFramebuffer.hlsl │ │ │ ├── DeferredLight.hlsl │ │ │ ├── Depth.hlsl │ │ │ ├── FXAA2.hlsl │ │ │ ├── FXAA3.hlsl │ │ │ ├── Fog.hlsl │ │ │ ├── GammaCorrection.hlsl │ │ │ ├── GreyScale.hlsl │ │ │ ├── Lighting.hlsl │ │ │ ├── LitParticle.hlsl │ │ │ ├── LitSolid.hlsl │ │ │ ├── PostProcess.hlsl │ │ │ ├── PrepassLight.hlsl │ │ │ ├── Samplers.hlsl │ │ │ ├── ScreenPos.hlsl │ │ │ ├── Shadow.hlsl │ │ │ ├── Skybox.hlsl │ │ │ ├── Stencil.hlsl │ │ │ ├── TerrainBlend.hlsl │ │ │ ├── Tonemap.hlsl │ │ │ ├── Transform.hlsl │ │ │ ├── Uniforms.hlsl │ │ │ ├── Unlit.hlsl │ │ │ ├── Vegetation.hlsl │ │ │ ├── VegetationDepth.hlsl │ │ │ ├── VegetationShadow.hlsl │ │ │ └── Water.hlsl │ ├── Techniques │ │ ├── Diff.xml │ │ ├── DiffAO.xml │ │ ├── DiffAOAlpha.xml │ │ ├── DiffAOAlphaMask.xml │ │ ├── DiffAdd.xml │ │ ├── DiffAddAlpha.xml │ │ ├── DiffAlpha.xml │ │ ├── DiffAlphaMask.xml │ │ ├── DiffEmissive.xml │ │ ├── DiffEmissiveAlpha.xml │ │ ├── DiffEnvCube.xml │ │ ├── DiffEnvCubeAO.xml │ │ ├── DiffEnvCubeAOAlpha.xml │ │ ├── DiffEnvCubeAlpha.xml │ │ ├── DiffLightMap.xml │ │ ├── DiffLightMapAlpha.xml │ │ ├── DiffLitParticleAlpha.xml │ │ ├── DiffMultiply.xml │ │ ├── DiffNormal.xml │ │ ├── DiffNormalAO.xml │ │ ├── DiffNormalAOAlpha.xml │ │ ├── DiffNormalAOAlphaMask.xml │ │ ├── DiffNormalAlpha.xml │ │ ├── DiffNormalAlphaMask.xml │ │ ├── DiffNormalEmissive.xml │ │ ├── DiffNormalEmissiveAlpha.xml │ │ ├── DiffNormalEnvCube.xml │ │ ├── DiffNormalEnvCubeAlpha.xml │ │ ├── DiffNormalPacked.xml │ │ ├── DiffNormalPackedAO.xml │ │ ├── DiffNormalPackedAOAlpha.xml │ │ ├── DiffNormalPackedAOAlphaMask.xml │ │ ├── DiffNormalPackedAlpha.xml │ │ ├── DiffNormalPackedAlphaMask.xml │ │ ├── DiffNormalPackedEmissive.xml │ │ ├── DiffNormalPackedEmissiveAlpha.xml │ │ ├── DiffNormalPackedEnvCube.xml │ │ ├── DiffNormalPackedEnvCubeAlpha.xml │ │ ├── DiffNormalPackedSpec.xml │ │ ├── DiffNormalPackedSpecAO.xml │ │ ├── DiffNormalPackedSpecAOAlpha.xml │ │ ├── DiffNormalPackedSpecAOAlphaMask.xml │ │ ├── DiffNormalPackedSpecAlpha.xml │ │ ├── DiffNormalPackedSpecAlphaMask.xml │ │ ├── DiffNormalPackedSpecEmissive.xml │ │ ├── DiffNormalPackedSpecEmissiveAlpha.xml │ │ ├── DiffNormalSpec.xml │ │ ├── DiffNormalSpecAO.xml │ │ ├── DiffNormalSpecAOAlpha.xml │ │ ├── DiffNormalSpecAOAlphaMask.xml │ │ ├── DiffNormalSpecAlpha.xml │ │ ├── DiffNormalSpecAlphaMask.xml │ │ ├── DiffNormalSpecEmissive.xml │ │ ├── DiffNormalSpecEmissiveAlpha.xml │ │ ├── DiffOverlay.xml │ │ ├── DiffSkybox.xml │ │ ├── DiffSkyplane.xml │ │ ├── DiffSpec.xml │ │ ├── DiffSpecAlpha.xml │ │ ├── DiffSpecAlphaMask.xml │ │ ├── DiffUnlit.xml │ │ ├── DiffUnlitAlpha.xml │ │ ├── DiffVColAdd.xml │ │ ├── DiffVColAddAlpha.xml │ │ ├── DiffVColMultiply.xml │ │ ├── DiffVColUnlitAlpha.xml │ │ ├── NoTexture.xml │ │ ├── NoTextureAO.xml │ │ ├── NoTextureAOAlpha.xml │ │ ├── NoTextureAdd.xml │ │ ├── NoTextureAddAlpha.xml │ │ ├── NoTextureAlpha.xml │ │ ├── NoTextureEnvCube.xml │ │ ├── NoTextureEnvCubeAO.xml │ │ ├── NoTextureEnvCubeAOAlpha.xml │ │ ├── NoTextureEnvCubeAlpha.xml │ │ ├── NoTextureMultiply.xml │ │ ├── NoTextureNormal.xml │ │ ├── NoTextureNormalAlpha.xml │ │ ├── NoTextureNormalPacked.xml │ │ ├── NoTextureNormalPackedAlpha.xml │ │ ├── NoTextureOverlay.xml │ │ ├── NoTextureUnlit.xml │ │ ├── NoTextureUnlitAlpha.xml │ │ ├── NoTextureUnlitVCol.xml │ │ ├── NoTextureVColAdd.xml │ │ ├── NoTextureVColAddAlpha.xml │ │ ├── NoTextureVColMultiply.xml │ │ ├── TerrainBlend.xml │ │ ├── VegetationDiff.xml │ │ ├── VegetationDiffAlphaMask.xml │ │ ├── VegetationDiffUnlit.xml │ │ ├── VegetationDiffUnlitAlphaMask.xml │ │ └── Water.xml │ └── Textures │ │ ├── LUTIdentity.png │ │ ├── LUTIdentity.xml │ │ ├── Ramp.png │ │ ├── Ramp.xml │ │ ├── RampExtreme.png │ │ ├── RampExtreme.xml │ │ ├── RampWide.png │ │ ├── RampWide.xml │ │ ├── Spot.png │ │ ├── Spot.xml │ │ ├── SpotWide.png │ │ └── SpotWide.xml ├── Data │ ├── Fonts │ │ ├── Anonymous Pro.ttf │ │ ├── BlueHighway.ttf │ │ ├── OFL.txt │ │ └── read_me.html │ ├── Materials │ │ ├── Editor │ │ │ ├── BlueUnlit.xml │ │ │ ├── BrightBlueUnlit.xml │ │ │ ├── BrightGreenUnlit.xml │ │ │ ├── BrightRedUnlit.xml │ │ │ ├── GreenUnlit.xml │ │ │ ├── RedUnlit.xml │ │ │ └── TexturedUnlit.xml │ │ ├── GreenTransparent.xml │ │ ├── Jack.xml │ │ ├── JackEnvMap.xml │ │ ├── LitSmoke.xml │ │ ├── Mushroom.xml │ │ ├── MushroomEnvMap.xml │ │ ├── MushroomWind.xml │ │ ├── MushroomWindUnlit.xml │ │ ├── NinjaSnowWar │ │ │ ├── CloudPlane.xml │ │ │ ├── Ninja.xml │ │ │ ├── Potion.xml │ │ │ ├── Snow.xml │ │ │ └── SnowCrate.xml │ │ ├── Particle.xml │ │ ├── Skybox.xml │ │ ├── Smoke.xml │ │ ├── Stone.xml │ │ ├── StoneEnvMap.xml │ │ ├── StoneEnvMapSmall.xml │ │ ├── StoneSmall.xml │ │ ├── StoneTiled.xml │ │ ├── StoneTiledH.xml │ │ ├── Terrain.xml │ │ ├── UrhoDecal.xml │ │ ├── UrhoDecalAlpha.xml │ │ ├── VColUnlit.xml │ │ └── Water.xml │ ├── Textures │ │ ├── BrightDay1_NegX.dds │ │ ├── BrightDay1_NegY.dds │ │ ├── BrightDay1_NegZ.dds │ │ ├── BrightDay1_PosX.dds │ │ ├── BrightDay1_PosY.dds │ │ ├── BrightDay1_PosZ.dds │ │ ├── Editor │ │ │ ├── EditorIcons.png │ │ │ ├── EditorIcons.xml │ │ │ └── NoPreviewAvailable.png │ │ ├── Flare.dds │ │ ├── HeightMap.png │ │ ├── Jack_body_color.jpg │ │ ├── Jack_face.jpg │ │ ├── Logo.png │ │ ├── Logo.xml │ │ ├── LogoLarge.png │ │ ├── LogoLarge.xml │ │ ├── Mushroom.dds │ │ ├── NinjaSnowWar │ │ │ ├── CloudPlane.dds │ │ │ ├── HealthBarBorder.png │ │ │ ├── HealthBarInside.png │ │ │ ├── Ninja.dds │ │ │ ├── Sight.png │ │ │ ├── Sight.xml │ │ │ ├── Snow.dds │ │ │ └── SnowCrate.dds │ │ ├── OldUI.png │ │ ├── OldUI.xml │ │ ├── Skybox.xml │ │ ├── Smoke.dds │ │ ├── StoneDiffuse.dds │ │ ├── StoneNormal.dds │ │ ├── TerrainDetail1.dds │ │ ├── TerrainDetail2.dds │ │ ├── TerrainDetail3.dds │ │ ├── TerrainWeights.dds │ │ ├── TouchInput.png │ │ ├── UI.png │ │ ├── UI.xml │ │ ├── UrhoDecal.dds │ │ ├── UrhoDecalAlpha.dds │ │ ├── UrhoIcon.png │ │ └── WaterNoise.dds │ ├── UI │ │ ├── DefaultStyle.xml │ │ ├── EditorContextMenu.xml │ │ ├── EditorHierarchyWindow.xml │ │ ├── EditorIcons.xml │ │ ├── EditorInspectorWindow.xml │ │ ├── EditorInspector_Attribute.xml │ │ ├── EditorInspector_Style.xml │ │ ├── EditorInspector_Variable.xml │ │ ├── EditorMaterialWindow.xml │ │ ├── EditorPreferencesDialog.xml │ │ ├── EditorQuickMenu.xml │ │ ├── EditorResourceBrowser.xml │ │ ├── EditorResourceFilterWindow.xml │ │ ├── EditorSettingsDialog.xml │ │ ├── EditorSpawnWindow.xml │ │ ├── EditorViewport.xml │ │ ├── MessageBox.xml │ │ ├── OldStyle.xml │ │ ├── ScreenJoystick.xml │ │ ├── ScreenJoystickSettings.xml │ │ ├── ScreenJoystickSettings_NinjaSnowWar.xml │ │ ├── ScreenJoystickSettings_Samples.xml │ │ ├── ScreenJoystick_NinjaSnowWar.xml │ │ └── ScreenJoystick_Samples.xml │ └── Urho2D │ │ ├── Aster.png │ │ ├── Ball.png │ │ ├── Box.png │ │ ├── GoldIcon.png │ │ ├── GoldIcon.scml │ │ ├── GoldIcon.xml │ │ ├── GoldIcon │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ └── 5.png │ │ ├── fire.pex │ │ ├── greenspiral.pex │ │ ├── greenspiral.png │ │ ├── imp │ │ ├── imp.png │ │ ├── imp.scml │ │ ├── imp.txt │ │ ├── imp.xml │ │ ├── imp_blood.png │ │ ├── imp_body.png │ │ ├── imp_footbig.png │ │ ├── imp_footsmall.png │ │ ├── imp_handbig.png │ │ ├── imp_handsmall.png │ │ ├── imp_handthrow.png │ │ ├── imp_head.png │ │ ├── imp_headangry.png │ │ └── imp_headblink.png │ │ ├── sun.pex │ │ └── sun.png ├── ParticleEditor2D.exe ├── QtCore4.dll ├── QtGui4.dll ├── msvcp110.dll └── msvcr110.dll ├── License.txt ├── Readme.md └── Source └── Tools ├── CMakeLists.txt └── ParticleEditor2D ├── CMakeLists.txt ├── ColorVarianceEditor.cpp ├── ColorVarianceEditor.h ├── EmitterAttributeEditor.cpp ├── EmitterAttributeEditor.h ├── FloatEditor.cpp ├── FloatEditor.h ├── Images ├── Icon.png ├── New.png ├── Open.png ├── Save.png ├── SaveAs.png ├── Settings.png ├── SplashScreen.jpg ├── ZoomIn.png ├── ZoomOut.png └── ZoomReset.png ├── IntEditor.cpp ├── IntEditor.h ├── Main.cpp ├── MainWindow.cpp ├── MainWindow.h ├── ParticleAttributeEditor.cpp ├── ParticleAttributeEditor.h ├── ParticleEditor.cpp ├── ParticleEditor.h ├── ParticleEffectEditor.cpp ├── ParticleEffectEditor.h ├── Resources.qrc ├── ScrollAreaWidget.cpp ├── ScrollAreaWidget.h ├── ValueVarianceEditor.cpp ├── ValueVarianceEditor.h ├── Vector2Editor.cpp ├── Vector2Editor.h ├── rc ├── Hmovetoolbar.png ├── Hsepartoolbar.png ├── Vmovetoolbar.png ├── Vsepartoolbar.png ├── branch_closed-on.png ├── branch_closed.png ├── branch_open-on.png ├── branch_open.png ├── checkbox.png ├── close.png ├── down_arrow.png ├── down_arrow_disabled.png ├── left_arrow.png ├── left_arrow_disabled.png ├── right_arrow.png ├── right_arrow_disabled.png ├── sizegrip.png ├── stylesheet-branch-end.png ├── stylesheet-branch-more.png ├── stylesheet-vline.png ├── transparent.png ├── undock.png ├── up_arrow.png └── up_arrow_disabled.png ├── style.qrc └── style.qss /Bin/CoreData/Materials/DefaultGrey.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/CoreData/RenderPaths/Deferred.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Bin/CoreData/RenderPaths/Forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/RenderPaths/ForwardDepth.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Bin/CoreData/RenderPaths/Prepass.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Bin/CoreData/RenderPaths/PrepassHDR.xml: -------------------------------------------------------------------------------- 1 | 2 | rgba16f 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Basic.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | #if defined(DIFFMAP) || defined(ALPHAMAP) 6 | varying vec2 vTexCoord; 7 | #endif 8 | #ifdef VERTEXCOLOR 9 | varying vec4 vColor; 10 | #endif 11 | 12 | void VS() 13 | { 14 | mat4 modelMatrix = iModelMatrix; 15 | vec3 worldPos = GetWorldPos(modelMatrix); 16 | gl_Position = GetClipPos(worldPos); 17 | 18 | #ifdef DIFFMAP 19 | vTexCoord = iTexCoord; 20 | #endif 21 | #ifdef VERTEXCOLOR 22 | vColor = iColor; 23 | #endif 24 | } 25 | 26 | void PS() 27 | { 28 | vec4 diffColor = cMatDiffColor; 29 | 30 | #ifdef VERTEXCOLOR 31 | diffColor *= vColor; 32 | #endif 33 | 34 | #if (!defined(DIFFMAP)) && (!defined(ALPHAMAP)) 35 | gl_FragColor = diffColor; 36 | #endif 37 | #ifdef DIFFMAP 38 | vec4 diffInput = texture2D(sDiffMap, vTexCoord); 39 | #ifdef ALPHAMASK 40 | if (diffInput.a < 0.5) 41 | discard; 42 | #endif 43 | gl_FragColor = diffColor * diffInput; 44 | #endif 45 | #ifdef ALPHAMAP 46 | float alphaInput = texture2D(sDiffMap, vTexCoord).a; 47 | gl_FragColor = vec4(diffColor.rgb, diffColor.a * alphaInput); 48 | #endif 49 | } 50 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Bloom.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | 6 | varying vec2 vTexCoord; 7 | varying vec2 vScreenPos; 8 | 9 | #ifdef COMPILEPS 10 | uniform float cBloomThreshold; 11 | uniform vec2 cBloomMix; 12 | uniform vec2 cHBlurInvSize; 13 | #endif 14 | 15 | void VS() 16 | { 17 | mat4 modelMatrix = iModelMatrix; 18 | vec3 worldPos = GetWorldPos(modelMatrix); 19 | gl_Position = GetClipPos(worldPos); 20 | vTexCoord = GetQuadTexCoord(gl_Position); 21 | vScreenPos = GetScreenPosPreDiv(gl_Position); 22 | } 23 | 24 | void PS() 25 | { 26 | #ifdef BRIGHT 27 | vec3 rgb = texture2D(sDiffMap, vScreenPos).rgb; 28 | gl_FragColor = vec4((rgb - vec3(cBloomThreshold, cBloomThreshold, cBloomThreshold)) / (1.0 - cBloomThreshold), 1.0); 29 | #endif 30 | 31 | #ifdef HBLUR 32 | vec3 rgb = texture2D(sDiffMap, vTexCoord + vec2(-2.0, 0.0) * cHBlurInvSize).rgb * 0.1; 33 | rgb += texture2D(sDiffMap, vTexCoord + vec2(-1.0, 0.0) * cHBlurInvSize).rgb * 0.25; 34 | rgb += texture2D(sDiffMap, vTexCoord + vec2(0.0, 0.0) * cHBlurInvSize).rgb * 0.3; 35 | rgb += texture2D(sDiffMap, vTexCoord + vec2(1.0, 0.0) * cHBlurInvSize).rgb * 0.25; 36 | rgb += texture2D(sDiffMap, vTexCoord + vec2(2.0, 0.0) * cHBlurInvSize).rgb * 0.1; 37 | gl_FragColor = vec4(rgb, 1.0); 38 | #endif 39 | 40 | #ifdef VBLUR 41 | vec3 rgb = texture2D(sDiffMap, vTexCoord + vec2(0.0, -2.0) * cHBlurInvSize).rgb * 0.1; 42 | rgb += texture2D(sDiffMap, vTexCoord + vec2(0.0, -1.0) * cHBlurInvSize).rgb * 0.25; 43 | rgb += texture2D(sDiffMap, vTexCoord + vec2(0.0, 0.0) * cHBlurInvSize).rgb * 0.3; 44 | rgb += texture2D(sDiffMap, vTexCoord + vec2(0.0, 1.0) * cHBlurInvSize).rgb * 0.25; 45 | rgb += texture2D(sDiffMap, vTexCoord + vec2(0.0, 2.0) * cHBlurInvSize).rgb * 0.1; 46 | gl_FragColor = vec4(rgb, 1.0); 47 | #endif 48 | 49 | #ifdef COMBINE 50 | vec3 original = texture2D(sDiffMap, vScreenPos).rgb * cBloomMix.x; 51 | vec3 bloom = texture2D(sNormalMap, vTexCoord).rgb * cBloomMix.y; 52 | // Prevent oversaturation 53 | original *= max(vec3(1.0) - bloom, vec3(0.0)); 54 | gl_FragColor = vec4(original + bloom, 1.0); 55 | #endif 56 | } 57 | 58 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/BloomHDR.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vTexCoord; 8 | varying vec2 vScreenPos; 9 | 10 | #ifdef COMPILEPS 11 | uniform float cBloomHDRThreshold; 12 | uniform float cBloomHDRBlurSigma; 13 | uniform float cBloomHDRBlurRadius; 14 | uniform vec2 cBloomHDRBlurDir; 15 | uniform vec2 cBloomHDRMix; 16 | uniform vec2 cBright2InvSize; 17 | uniform vec2 cBright4InvSize; 18 | uniform vec2 cBright8InvSize; 19 | uniform vec2 cBright16InvSize; 20 | 21 | const int BlurKernelSize = 5; 22 | #endif 23 | 24 | void VS() 25 | { 26 | mat4 modelMatrix = iModelMatrix; 27 | vec3 worldPos = GetWorldPos(modelMatrix); 28 | gl_Position = GetClipPos(worldPos); 29 | vTexCoord = GetQuadTexCoord(gl_Position); 30 | vScreenPos = GetScreenPosPreDiv(gl_Position); 31 | } 32 | 33 | void PS() 34 | { 35 | #ifdef BRIGHT 36 | vec3 color = texture2D(sDiffMap, vScreenPos).rgb; 37 | gl_FragColor = vec4(max(color - cBloomHDRThreshold, 0.0), 1.0); 38 | #endif 39 | 40 | #ifdef BLUR16 41 | gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright16InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos); 42 | #endif 43 | 44 | #ifdef BLUR8 45 | gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright8InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos); 46 | #endif 47 | 48 | #ifdef BLUR4 49 | gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright4InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos); 50 | #endif 51 | 52 | #ifdef BLUR2 53 | gl_FragColor = GaussianBlur(BlurKernelSize, cBloomHDRBlurDir, cBright2InvSize * cBloomHDRBlurRadius, cBloomHDRBlurSigma, sDiffMap, vScreenPos); 54 | #endif 55 | 56 | #ifdef COMBINE16 57 | gl_FragColor = texture2D(sDiffMap, vScreenPos) + texture2D(sNormalMap, vTexCoord); 58 | #endif 59 | 60 | #ifdef COMBINE8 61 | gl_FragColor = texture2D(sDiffMap, vScreenPos) + texture2D(sNormalMap, vTexCoord); 62 | #endif 63 | 64 | #ifdef COMBINE4 65 | gl_FragColor = texture2D(sDiffMap, vScreenPos) + texture2D(sNormalMap, vTexCoord); 66 | #endif 67 | 68 | #ifdef COMBINE2 69 | vec3 color = texture2D(sDiffMap, vScreenPos).rgb * cBloomHDRMix.x; 70 | vec3 bloom = texture2D(sNormalMap, vTexCoord).rgb * cBloomHDRMix.y; 71 | gl_FragColor = vec4(color + bloom, 1.0); 72 | #endif 73 | } 74 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Blur.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vTexCoord; 8 | varying vec2 vScreenPos; 9 | 10 | #ifdef COMPILEPS 11 | uniform vec2 cBlurDir; 12 | uniform float cBlurRadius; 13 | uniform float cBlurSigma; 14 | uniform vec2 cBlurHInvSize; 15 | #endif 16 | 17 | void VS() 18 | { 19 | mat4 modelMatrix = iModelMatrix; 20 | vec3 worldPos = GetWorldPos(modelMatrix); 21 | gl_Position = GetClipPos(worldPos); 22 | vTexCoord = GetQuadTexCoord(gl_Position); 23 | vScreenPos = GetScreenPosPreDiv(gl_Position); 24 | } 25 | 26 | void PS() 27 | { 28 | #ifdef BLUR3 29 | gl_FragColor = GaussianBlur(3, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 30 | #endif 31 | 32 | #ifdef BLUR5 33 | gl_FragColor = GaussianBlur(5, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 34 | #endif 35 | 36 | #ifdef BLUR7 37 | gl_FragColor = GaussianBlur(7, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 38 | #endif 39 | 40 | #ifdef BLUR9 41 | gl_FragColor = GaussianBlur(9, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 42 | #endif 43 | } 44 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/ColorCorrection.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | void VS() 10 | { 11 | mat4 modelMatrix = iModelMatrix; 12 | vec3 worldPos = GetWorldPos(modelMatrix); 13 | gl_Position = GetClipPos(worldPos); 14 | vScreenPos = GetScreenPosPreDiv(gl_Position); 15 | } 16 | 17 | void PS() 18 | { 19 | vec3 color = texture2D(sDiffMap, vScreenPos).rgb; 20 | gl_FragColor = vec4(ColorCorrection(color, sVolumeMap), 1.0); 21 | } 22 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/CopyFramebuffer.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | 6 | varying vec2 vScreenPos; 7 | 8 | void VS() 9 | { 10 | mat4 modelMatrix = iModelMatrix; 11 | vec3 worldPos = GetWorldPos(modelMatrix); 12 | gl_Position = GetClipPos(worldPos); 13 | vScreenPos = GetScreenPosPreDiv(gl_Position); 14 | } 15 | 16 | void PS() 17 | { 18 | gl_FragColor = texture2D(sDiffMap, vScreenPos); 19 | } 20 | 21 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Depth.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec3 vTexCoord; 6 | 7 | void VS() 8 | { 9 | mat4 modelMatrix = iModelMatrix; 10 | vec3 worldPos = GetWorldPos(modelMatrix); 11 | gl_Position = GetClipPos(worldPos); 12 | vTexCoord = vec3(GetTexCoord(iTexCoord), GetDepth(gl_Position)); 13 | } 14 | 15 | void PS() 16 | { 17 | #ifdef ALPHAMASK 18 | float alpha = texture2D(sDiffMap, vTexCoord.xy).a; 19 | if (alpha < 0.5) 20 | discard; 21 | #endif 22 | 23 | gl_FragColor = vec4(EncodeDepth(vTexCoord.z), 1.0); 24 | } 25 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Fog.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEPS 2 | vec3 GetFog(vec3 color, float fogFactor) 3 | { 4 | return mix(cFogColor, color, fogFactor); 5 | } 6 | 7 | vec3 GetLitFog(vec3 color, float fogFactor) 8 | { 9 | return color * fogFactor; 10 | } 11 | 12 | float GetFogFactor(float depth) 13 | { 14 | return clamp((cFogParams.x - depth) * cFogParams.y, 0.0, 1.0); 15 | } 16 | 17 | float GetHeightFogFactor(float depth, float height) 18 | { 19 | float fogFactor = GetFogFactor(depth); 20 | float heightFogFactor = (height - cFogParams.z) * cFogParams.w; 21 | heightFogFactor = 1.0 - clamp(exp(-(heightFogFactor * heightFogFactor)), 0.0, 1.0); 22 | return min(heightFogFactor, fogFactor); 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/GammaCorrection.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | void VS() 10 | { 11 | mat4 modelMatrix = iModelMatrix; 12 | vec3 worldPos = GetWorldPos(modelMatrix); 13 | gl_Position = GetClipPos(worldPos); 14 | vScreenPos = GetScreenPosPreDiv(gl_Position); 15 | } 16 | 17 | void PS() 18 | { 19 | vec3 color = texture2D(sDiffMap, vScreenPos).rgb; 20 | gl_FragColor = vec4(ToInverseGamma(color), 1.0); 21 | } 22 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/GreyScale.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "Lighting.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | void VS() 10 | { 11 | mat4 modelMatrix = iModelMatrix; 12 | vec3 worldPos = GetWorldPos(modelMatrix); 13 | gl_Position = GetClipPos(worldPos); 14 | vScreenPos = GetScreenPosPreDiv(gl_Position); 15 | } 16 | 17 | void PS() 18 | { 19 | vec3 rgb = texture2D(sDiffMap, vScreenPos).rgb; 20 | float intensity = GetIntensity(rgb); 21 | gl_FragColor = vec4(intensity, intensity, intensity, 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Samplers.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEPS 2 | uniform sampler2D sDiffMap; 3 | uniform samplerCube sDiffCubeMap; 4 | uniform sampler2D sNormalMap; 5 | uniform sampler2D sSpecMap; 6 | uniform sampler2D sEmissiveMap; 7 | uniform sampler2D sEnvMap; 8 | uniform samplerCube sEnvCubeMap; 9 | uniform sampler2D sLightRampMap; 10 | uniform sampler2D sLightSpotMap; 11 | uniform samplerCube sLightCubeMap; 12 | #ifndef GL_ES 13 | uniform sampler3D sVolumeMap; 14 | uniform sampler2D sAlbedoBuffer; 15 | uniform sampler2D sNormalBuffer; 16 | uniform sampler2D sDepthBuffer; 17 | uniform sampler2D sLightBuffer; 18 | uniform sampler2DShadow sShadowMap; 19 | uniform samplerCube sFaceSelectCubeMap; 20 | uniform samplerCube sIndirectionCubeMap; 21 | #else 22 | uniform sampler2D sShadowMap; 23 | #endif 24 | 25 | vec3 DecodeNormal(vec4 normalInput) 26 | { 27 | #ifdef PACKEDNORMAL 28 | vec3 normal; 29 | normal.xy = normalInput.ag * 2.0 - 1.0; 30 | normal.z = sqrt(max(1.0 - dot(normal.xy, normal.xy), 0.0)); 31 | return normal; 32 | #else 33 | return normalize(normalInput.rgb * 2.0 - 1.0); 34 | #endif 35 | } 36 | 37 | vec3 EncodeDepth(float depth) 38 | { 39 | vec3 ret; 40 | depth *= 255.0; 41 | ret.x = floor(depth); 42 | depth = (depth - ret.x) * 255.0; 43 | ret.y = floor(depth); 44 | ret.z = (depth - ret.y); 45 | ret.xy *= 1.0 / 255.0; 46 | return ret; 47 | } 48 | 49 | float DecodeDepth(vec3 depth) 50 | { 51 | const vec3 dotValues = vec3(1.0, 1.0 / 255.0, 1.0 / (255.0 * 255.0)); 52 | return dot(depth, dotValues); 53 | } 54 | #endif 55 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/ScreenPos.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | vec4 GetScreenPos(vec4 clipPos) 3 | { 4 | return vec4( 5 | clipPos.x * cGBufferOffsets.z + cGBufferOffsets.x * clipPos.w, 6 | clipPos.y * cGBufferOffsets.w + cGBufferOffsets.y * clipPos.w, 7 | 0.0, 8 | clipPos.w); 9 | } 10 | 11 | vec2 GetScreenPosPreDiv(vec4 clipPos) 12 | { 13 | return vec2( 14 | clipPos.x / clipPos.w * cGBufferOffsets.z + cGBufferOffsets.x, 15 | clipPos.y / clipPos.w * cGBufferOffsets.w + cGBufferOffsets.y); 16 | } 17 | 18 | vec2 GetQuadTexCoord(vec4 clipPos) 19 | { 20 | return vec2( 21 | clipPos.x / clipPos.w * 0.5 + 0.5, 22 | clipPos.y / clipPos.w * 0.5 + 0.5); 23 | } 24 | 25 | vec2 GetQuadTexCoordNoFlip(vec3 worldPos) 26 | { 27 | return vec2( 28 | worldPos.x * 0.5 + 0.5, 29 | -worldPos.y * 0.5 + 0.5); 30 | } 31 | 32 | vec3 GetFarRay(vec4 clipPos) 33 | { 34 | vec3 viewRay = vec3( 35 | clipPos.x / clipPos.w * cFrustumSize.x, 36 | clipPos.y / clipPos.w * cFrustumSize.y, 37 | cFrustumSize.z); 38 | 39 | return cCameraRot * viewRay; 40 | } 41 | 42 | vec3 GetNearRay(vec4 clipPos) 43 | { 44 | vec3 viewRay = vec3( 45 | clipPos.x / clipPos.w * cFrustumSize.x, 46 | clipPos.y / clipPos.w * cFrustumSize.y, 47 | 0.0); 48 | 49 | return (cCameraRot * viewRay) * cDepthMode.x; 50 | } 51 | #endif 52 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Shadow.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec2 vTexCoord; 6 | 7 | void VS() 8 | { 9 | mat4 modelMatrix = iModelMatrix; 10 | vec3 worldPos = GetWorldPos(modelMatrix); 11 | gl_Position = GetClipPos(worldPos); 12 | vTexCoord = GetTexCoord(iTexCoord); 13 | } 14 | 15 | void PS() 16 | { 17 | #ifdef ALPHAMASK 18 | float alpha = texture2D(sDiffMap, vTexCoord).a; 19 | if (alpha < 0.5) 20 | discard; 21 | #endif 22 | 23 | gl_FragColor = vec4(1.0); 24 | } 25 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Skybox.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec3 vTexCoord; 6 | 7 | void VS() 8 | { 9 | mat4 modelMatrix = iModelMatrix; 10 | vec3 worldPos = GetWorldPos(modelMatrix); 11 | gl_Position = GetClipPos(worldPos); 12 | 13 | gl_Position.z = gl_Position.w; 14 | vTexCoord = iPos.xyz; 15 | } 16 | 17 | void PS() 18 | { 19 | gl_FragColor = cMatDiffColor * textureCube(sDiffCubeMap, vTexCoord); 20 | } 21 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Stencil.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Transform.glsl" 3 | 4 | void VS() 5 | { 6 | mat4 modelMatrix = iModelMatrix; 7 | vec3 worldPos = GetWorldPos(modelMatrix); 8 | gl_Position = GetClipPos(worldPos); 9 | } 10 | 11 | void PS() 12 | { 13 | gl_FragColor = vec4(1.0); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Tonemap.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | #ifdef COMPILEPS 10 | uniform float cTonemapExposureBias; 11 | uniform float cTonemapMaxWhite; 12 | #endif 13 | 14 | void VS() 15 | { 16 | mat4 modelMatrix = iModelMatrix; 17 | vec3 worldPos = GetWorldPos(modelMatrix); 18 | gl_Position = GetClipPos(worldPos); 19 | vScreenPos = GetScreenPosPreDiv(gl_Position); 20 | } 21 | 22 | void PS() 23 | { 24 | #ifdef REINHARDEQ3 25 | vec3 color = ReinhardEq3Tonemap(max(texture2D(sDiffMap, vScreenPos).rgb * cTonemapExposureBias, 0.0)); 26 | gl_FragColor = vec4(color, 1.0); 27 | #endif 28 | 29 | #ifdef REINHARDEQ4 30 | vec3 color = ReinhardEq4Tonemap(max(texture2D(sDiffMap, vScreenPos).rgb * cTonemapExposureBias, 0.0), cTonemapMaxWhite); 31 | gl_FragColor = vec4(color, 1.0); 32 | #endif 33 | 34 | #ifdef UNCHARTED2 35 | vec3 color = Uncharted2Tonemap(max(texture2D(sDiffMap, vScreenPos).rgb * cTonemapExposureBias, 0.0)) / 36 | Uncharted2Tonemap(vec3(cTonemapMaxWhite, cTonemapMaxWhite, cTonemapMaxWhite)); 37 | gl_FragColor = vec4(color, 1.0); 38 | #endif 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Uniforms.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | uniform vec3 cAmbientStartColor; 3 | uniform vec3 cAmbientEndColor; 4 | uniform mat3 cBillboardRot; 5 | uniform vec3 cCameraPos; 6 | uniform mat3 cCameraRot; 7 | uniform float cNearClip; 8 | uniform float cFarClip; 9 | uniform vec4 cDepthMode; 10 | uniform vec3 cFrustumSize; 11 | uniform float cDeltaTime; 12 | uniform float cElapsedTime; 13 | uniform vec4 cGBufferOffsets; 14 | uniform vec3 cLightDir; 15 | uniform vec4 cLightPos; 16 | uniform mat4 cModel; 17 | uniform mat4 cViewProj; 18 | uniform vec4 cUOffset; 19 | uniform vec4 cVOffset; 20 | uniform mat4 cZone; 21 | #ifndef GL_ES 22 | uniform mat4 cLightMatrices[4]; 23 | #else 24 | uniform mat4 cLightMatrices[2]; 25 | #endif 26 | #ifdef SKINNED 27 | #ifdef RASPI 28 | uniform vec4 cSkinMatrices[32*3]; 29 | #else 30 | uniform vec4 cSkinMatrices[64*3]; 31 | #endif 32 | #endif 33 | #ifdef NUMVERTEXLIGHTS 34 | uniform vec4 cVertexLights[4*3]; 35 | #endif 36 | #endif 37 | 38 | #ifdef COMPILEPS 39 | #ifdef GL_ES 40 | precision mediump float; 41 | #endif 42 | 43 | uniform vec3 cAmbientColor; 44 | uniform vec3 cCameraPosPS; 45 | uniform float cDeltaTimePS; 46 | uniform float cElapsedTimePS; 47 | uniform vec4 cFogParams; 48 | uniform vec3 cFogColor; 49 | uniform vec2 cGBufferInvSize; 50 | uniform vec4 cLightColor; 51 | uniform vec3 cLightDirPS; 52 | uniform vec4 cLightPosPS; 53 | uniform vec4 cMatDiffColor; 54 | uniform vec3 cMatEmissiveColor; 55 | uniform vec3 cMatEnvMapColor; 56 | uniform vec4 cMatSpecColor; 57 | uniform float cNearClipPS; 58 | uniform float cFarClipPS; 59 | uniform vec4 cShadowCubeAdjust; 60 | uniform vec4 cShadowDepthFade; 61 | uniform vec2 cShadowIntensity; 62 | uniform vec2 cShadowMapInvSize; 63 | uniform vec4 cShadowSplits; 64 | uniform mat4 cLightMatricesPS[4]; 65 | #endif 66 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Unlit.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "Fog.glsl" 6 | 7 | varying vec2 vTexCoord; 8 | varying vec4 vWorldPos; 9 | #ifdef VERTEXCOLOR 10 | varying vec4 vColor; 11 | #endif 12 | 13 | void VS() 14 | { 15 | mat4 modelMatrix = iModelMatrix; 16 | vec3 worldPos = GetWorldPos(modelMatrix); 17 | gl_Position = GetClipPos(worldPos); 18 | vTexCoord = GetTexCoord(iTexCoord); 19 | vWorldPos = vec4(worldPos, GetDepth(gl_Position)); 20 | 21 | #ifdef VERTEXCOLOR 22 | vColor = iColor; 23 | #endif 24 | } 25 | 26 | void PS() 27 | { 28 | // Get material diffuse albedo 29 | #ifdef DIFFMAP 30 | vec4 diffColor = cMatDiffColor * texture2D(sDiffMap, vTexCoord); 31 | #ifdef ALPHAMASK 32 | if (diffColor.a < 0.5) 33 | discard; 34 | #endif 35 | #else 36 | vec4 diffColor = cMatDiffColor; 37 | #endif 38 | 39 | #ifdef VERTEXCOLOR 40 | diffColor *= vColor; 41 | #endif 42 | 43 | // Get fog factor 44 | #ifdef HEIGHTFOG 45 | float fogFactor = GetHeightFogFactor(vWorldPos.w, vWorldPos.y); 46 | #else 47 | float fogFactor = GetFogFactor(vWorldPos.w); 48 | #endif 49 | 50 | #if defined(PREPASS) 51 | // Fill light pre-pass G-Buffer 52 | gl_FragData[0] = vec4(0.5, 0.5, 0.5, 1.0); 53 | gl_FragData[1] = vec4(EncodeDepth(vWorldPos.w), 0.0); 54 | #elif defined(DEFERRED) 55 | gl_FragData[0] = vec4(GetFog(diffColor.rgb, fogFactor), diffColor.a); 56 | gl_FragData[1] = vec4(0.0, 0.0, 0.0, 0.0); 57 | gl_FragData[2] = vec4(0.5, 0.5, 0.5, 1.0); 58 | gl_FragData[3] = vec4(EncodeDepth(vWorldPos.w), 0.0); 59 | #else 60 | gl_FragColor = vec4(GetFog(diffColor.rgb, fogFactor), diffColor.a); 61 | #endif 62 | } 63 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/VegetationDepth.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Transform.glsl" 3 | 4 | uniform float cWindHeightFactor; 5 | uniform float cWindHeightPivot; 6 | uniform float cWindPeriod; 7 | uniform vec2 cWindWorldSpacing; 8 | 9 | varying vec3 vTexCoord; 10 | 11 | void VS() 12 | { 13 | mat4 modelMatrix = iModelMatrix; 14 | vec3 worldPos = GetWorldPos(modelMatrix); 15 | 16 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 17 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 18 | worldPos.x += windStrength * sin(windPeriod); 19 | worldPos.z -= windStrength * cos(windPeriod); 20 | 21 | gl_Position = GetClipPos(worldPos); 22 | vTexCoord = vec3(GetTexCoord(iTexCoord), GetDepth(gl_Position)); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/VegetationShadow.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Transform.glsl" 3 | 4 | uniform float cWindHeightFactor; 5 | uniform float cWindHeightPivot; 6 | uniform float cWindPeriod; 7 | uniform vec2 cWindWorldSpacing; 8 | 9 | varying vec2 vTexCoord; 10 | 11 | void VS() 12 | { 13 | mat4 modelMatrix = iModelMatrix; 14 | vec3 worldPos = GetWorldPos(modelMatrix); 15 | 16 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 17 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 18 | worldPos.x += windStrength * sin(windPeriod); 19 | worldPos.z -= windStrength * cos(windPeriod); 20 | 21 | gl_Position = GetClipPos(worldPos); 22 | vTexCoord = GetTexCoord(iTexCoord); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/GLSL/Water.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "Fog.glsl" 6 | 7 | varying vec4 vScreenPos; 8 | varying vec2 vReflectUV; 9 | varying vec2 vWaterUV; 10 | varying vec3 vNormal; 11 | varying vec4 vEyeVec; 12 | 13 | #ifdef COMPILEVS 14 | uniform vec2 cNoiseSpeed; 15 | uniform float cNoiseTiling; 16 | #endif 17 | #ifdef COMPILEPS 18 | uniform float cNoiseStrength; 19 | uniform float cFresnelPower; 20 | uniform vec3 cWaterTint; 21 | #endif 22 | 23 | void VS() 24 | { 25 | mat4 modelMatrix = iModelMatrix; 26 | vec3 worldPos = GetWorldPos(modelMatrix); 27 | gl_Position = GetClipPos(worldPos); 28 | vScreenPos = GetScreenPos(gl_Position); 29 | // GetQuadTexCoord() returns a vec2 that is OK for quad rendering; multiply it with output W 30 | // coordinate to make it work with arbitrary meshes such as the water plane (perform divide in pixel shader) 31 | // Also because the quadTexCoord is based on the clip position, and Y is flipped when rendering to a texture 32 | // on OpenGL, must flip again to cancel it out 33 | vReflectUV = GetQuadTexCoord(gl_Position); 34 | vReflectUV.y = 1.0 - vReflectUV.y; 35 | vReflectUV *= gl_Position.w; 36 | vWaterUV = iTexCoord * cNoiseTiling + cElapsedTime * cNoiseSpeed; 37 | vNormal = GetWorldNormal(modelMatrix); 38 | vEyeVec = vec4(cCameraPos - worldPos, GetDepth(gl_Position)); 39 | } 40 | 41 | void PS() 42 | { 43 | vec2 refractUV = vScreenPos.xy / vScreenPos.w; 44 | vec2 reflectUV = vReflectUV.xy / vScreenPos.w; 45 | 46 | vec2 noise = (texture2D(sNormalMap, vWaterUV).rg - 0.5) * cNoiseStrength; 47 | refractUV += noise; 48 | // Do not shift reflect UV coordinate upward, because it will reveal the clipping of geometry below water 49 | if (noise.y < 0.0) 50 | noise.y = 0.0; 51 | reflectUV += noise; 52 | 53 | float fresnel = pow(1.0 - clamp(dot(normalize(vEyeVec.xyz), vNormal), 0.0, 1.0), cFresnelPower); 54 | vec3 refractColor = texture2D(sEnvMap, refractUV).rgb * cWaterTint; 55 | vec3 reflectColor = texture2D(sDiffMap, reflectUV).rgb; 56 | vec3 finalColor = mix(refractColor, reflectColor, fresnel); 57 | 58 | gl_FragColor = vec4(GetFog(finalColor, GetFogFactor(vEyeVec.w)), 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Basic.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | #ifdef SKINNED 7 | float4 iBlendWeights : BLENDWEIGHT, 8 | int4 iBlendIndices : BLENDINDICES, 9 | #endif 10 | #ifdef INSTANCED 11 | float4x3 iModelInstance : TEXCOORD2, 12 | #endif 13 | #ifdef BILLBOARD 14 | float2 iSize : TEXCOORD1, 15 | #endif 16 | #ifdef DIFFMAP 17 | float2 iTexCoord : TEXCOORD0, 18 | #endif 19 | #ifdef VERTEXCOLOR 20 | float4 iColor : COLOR0, 21 | out float4 oColor : COLOR0, 22 | #endif 23 | #ifdef DIFFMAP 24 | out float2 oTexCoord : TEXCOORD0, 25 | #endif 26 | out float4 oPos : POSITION) 27 | { 28 | float4x3 modelMatrix = iModelMatrix; 29 | float3 worldPos = GetWorldPos(modelMatrix); 30 | oPos = GetClipPos(worldPos); 31 | 32 | #ifdef VERTEXCOLOR 33 | oColor = iColor; 34 | #endif 35 | #ifdef DIFFMAP 36 | oTexCoord = iTexCoord; 37 | #endif 38 | } 39 | 40 | void PS( 41 | #ifdef VERTEXCOLOR 42 | float4 iColor : COLOR0, 43 | #endif 44 | #if defined(DIFFMAP) || defined(ALPHAMAP) 45 | float2 iTexCoord : TEXCOORD0, 46 | #endif 47 | out float4 oColor : COLOR0) 48 | { 49 | float4 diffColor = cMatDiffColor; 50 | 51 | #ifdef VERTEXCOLOR 52 | diffColor *= iColor; 53 | #endif 54 | 55 | #if (!defined(DIFFMAP)) && (!defined(ALPHAMAP)) 56 | oColor = diffColor; 57 | #endif 58 | #ifdef DIFFMAP 59 | float4 diffInput = tex2D(sDiffMap, iTexCoord); 60 | #ifdef ALPHAMASK 61 | if (diffInput.a < 0.5) 62 | discard; 63 | #endif 64 | oColor = diffColor * diffInput; 65 | #endif 66 | #ifdef ALPHAMAP 67 | float alphaInput = tex2D(sDiffMap, iTexCoord).a; 68 | oColor = float4(diffColor.rgb, diffColor.a * alphaInput); 69 | #endif 70 | } 71 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Bloom.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | 6 | uniform float cBloomThreshold; 7 | uniform float2 cBloomMix; 8 | uniform float2 cHBlurOffsets; 9 | uniform float2 cHBlurInvSize; 10 | 11 | static const float offsets[5] = { 12 | 2.0, 13 | 1.0, 14 | 0.0, 15 | -1.0, 16 | -2.0, 17 | }; 18 | 19 | static const float weights[5] = { 20 | 0.1, 21 | 0.25, 22 | 0.3, 23 | 0.25, 24 | 0.1 25 | }; 26 | 27 | void VS(float4 iPos : POSITION, 28 | out float4 oPos : POSITION, 29 | out float2 oTexCoord : TEXCOORD0, 30 | out float2 oScreenPos : TEXCOORD1) 31 | { 32 | float4x3 modelMatrix = iModelMatrix; 33 | float3 worldPos = GetWorldPos(modelMatrix); 34 | oPos = GetClipPos(worldPos); 35 | oTexCoord = GetQuadTexCoord(oPos) + cHBlurOffsets; 36 | oScreenPos = GetScreenPosPreDiv(oPos); 37 | } 38 | 39 | void PS(float2 iTexCoord : TEXCOORD0, 40 | float2 iScreenPos : TEXCOORD1, 41 | out float4 oColor : COLOR0) 42 | { 43 | #ifdef BRIGHT 44 | float3 rgb = tex2D(sDiffMap, iScreenPos).rgb; 45 | oColor = float4((rgb - cBloomThreshold) / (1.0 - cBloomThreshold), 1.0); 46 | #endif 47 | 48 | #ifdef HBLUR 49 | float3 rgb = 0.0; 50 | for (int i = 0; i < 5; ++i) 51 | rgb += tex2D(sDiffMap, iTexCoord + (float2(offsets[i], 0.0)) * cHBlurInvSize).rgb * weights[i]; 52 | oColor = float4(rgb, 1.0); 53 | #endif 54 | 55 | #ifdef VBLUR 56 | float3 rgb = 0.0; 57 | for (int i = 0; i < 5; ++i) 58 | rgb += tex2D(sDiffMap, iTexCoord + (float2(0.0, offsets[i])) * cHBlurInvSize).rgb * weights[i]; 59 | oColor = float4(rgb, 1.0); 60 | #endif 61 | 62 | #ifdef COMBINE 63 | float3 original = tex2D(sDiffMap, iScreenPos).rgb * cBloomMix.x; 64 | float3 bloom = tex2D(sNormalMap, iTexCoord).rgb * cBloomMix.y; 65 | // Prevent oversaturation 66 | original *= saturate(1.0 - bloom); 67 | oColor = float4(original + bloom, 1.0); 68 | #endif 69 | } 70 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Blur.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | uniform float2 cBlurDir; 8 | uniform float cBlurRadius; 9 | uniform float cBlurSigma; 10 | uniform float2 cBlurHOffsets; 11 | uniform float2 cBlurHInvSize; 12 | 13 | void VS(float4 iPos : POSITION, 14 | out float4 oPos : POSITION, 15 | out float2 oTexCoord : TEXCOORD0, 16 | out float2 oScreenPos : TEXCOORD1) 17 | { 18 | float4x3 modelMatrix = iModelMatrix; 19 | float3 worldPos = GetWorldPos(modelMatrix); 20 | oPos = GetClipPos(worldPos); 21 | oTexCoord = GetQuadTexCoord(oPos) + cBlurHOffsets; 22 | oScreenPos = GetScreenPosPreDiv(oPos); 23 | } 24 | 25 | void PS(float2 iTexCoord : TEXCOORD0, 26 | float2 iScreenPos : TEXCOORD1, 27 | out float4 oColor : COLOR0) 28 | { 29 | #ifdef BLUR3 30 | oColor = GaussianBlur(3, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 31 | #endif 32 | 33 | #ifdef BLUR5 34 | oColor = GaussianBlur(5, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 35 | #endif 36 | 37 | #ifdef BLUR7 38 | oColor = GaussianBlur(7, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 39 | #endif 40 | 41 | #ifdef BLUR9 42 | oColor = GaussianBlur(9, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 43 | #endif 44 | } 45 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/ColorCorrection.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | void VS(float4 iPos : POSITION, 8 | out float4 oPos : POSITION, 9 | out float2 oScreenPos : TEXCOORD0) 10 | { 11 | float4x3 modelMatrix = iModelMatrix; 12 | float3 worldPos = GetWorldPos(modelMatrix); 13 | oPos = GetClipPos(worldPos); 14 | oScreenPos = GetScreenPosPreDiv(oPos); 15 | } 16 | 17 | void PS(float2 iScreenPos : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | float3 color = tex2D(sDiffMap, iScreenPos).rgb; 21 | oColor = float4(ColorCorrection(color, sVolumeMap), 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/CopyFramebuffer.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | #include "ScreenPos.hlsl" 5 | 6 | void VS(float4 iPos : POSITION, 7 | out float2 oScreenPos : TEXCOORD0, 8 | out float4 oPos : POSITION) 9 | { 10 | float4x3 modelMatrix = iModelMatrix; 11 | float3 worldPos = GetWorldPos(modelMatrix); 12 | oPos = GetClipPos(worldPos); 13 | oScreenPos = GetScreenPosPreDiv(oPos); 14 | } 15 | 16 | void PS(float2 iScreenPos : TEXCOORD0, 17 | out float4 oColor : COLOR0) 18 | { 19 | oColor = tex2D(sDiffMap, iScreenPos); 20 | } 21 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Depth.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | #ifdef SKINNED 7 | float4 iBlendWeights : BLENDWEIGHT, 8 | int4 iBlendIndices : BLENDINDICES, 9 | #endif 10 | #ifdef INSTANCED 11 | float4x3 iModelInstance : TEXCOORD2, 12 | #endif 13 | float2 iTexCoord : TEXCOORD0, 14 | out float3 oTexCoord : TEXCOORD0, 15 | out float4 oPos : POSITION) 16 | { 17 | float4x3 modelMatrix = iModelMatrix; 18 | float3 worldPos = GetWorldPos(modelMatrix); 19 | oPos = GetClipPos(worldPos); 20 | oTexCoord = float3(GetTexCoord(iTexCoord), GetDepth(oPos)); 21 | } 22 | 23 | void PS( 24 | float3 iTexCoord : TEXCOORD0, 25 | out float4 oColor : COLOR0) 26 | { 27 | #ifdef ALPHAMASK 28 | float alpha = tex2D(sDiffMap, iTexCoord.xy).a; 29 | if (alpha < 0.5) 30 | discard; 31 | #endif 32 | 33 | oColor = iTexCoord.z; 34 | } 35 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Fog.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEPS 2 | float3 GetFog(float3 color, float fogFactor) 3 | { 4 | return lerp(cFogColor, color, fogFactor); 5 | } 6 | 7 | float3 GetLitFog(float3 color, float fogFactor) 8 | { 9 | return color * fogFactor; 10 | } 11 | 12 | float GetFogFactor(float depth) 13 | { 14 | return saturate((cFogParams.x - depth) * cFogParams.y); 15 | } 16 | 17 | float GetHeightFogFactor(float depth, float height) 18 | { 19 | float fogFactor = GetFogFactor(depth); 20 | float heightFogFactor = (height - cFogParams.z) * cFogParams.w; 21 | heightFogFactor = 1.0 - saturate(exp(-(heightFogFactor * heightFogFactor))); 22 | return min(heightFogFactor, fogFactor); 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/GammaCorrection.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | void VS(float4 iPos : POSITION, 8 | out float4 oPos : POSITION, 9 | out float2 oScreenPos : TEXCOORD0) 10 | { 11 | float4x3 modelMatrix = iModelMatrix; 12 | float3 worldPos = GetWorldPos(modelMatrix); 13 | oPos = GetClipPos(worldPos); 14 | oScreenPos = GetScreenPosPreDiv(oPos); 15 | } 16 | 17 | void PS(float2 iScreenPos : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | float3 color = tex2D(sDiffMap, iScreenPos).rgb; 21 | oColor = float4(ToInverseGamma(color), 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/GreyScale.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "Lighting.hlsl" 6 | 7 | void VS(float4 iPos : POSITION, 8 | out float4 oPos : POSITION, 9 | out float2 oScreenPos : TEXCOORD0) 10 | { 11 | float4x3 modelMatrix = iModelMatrix; 12 | float3 worldPos = GetWorldPos(modelMatrix); 13 | oPos = GetClipPos(worldPos); 14 | oScreenPos = GetScreenPosPreDiv(oPos); 15 | } 16 | 17 | void PS(float2 iScreenPos : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | float3 rgb = tex2D(sDiffMap, iScreenPos).rgb; 21 | float intensity = GetIntensity(rgb); 22 | oColor = float4(intensity, intensity, intensity, 1.0); 23 | } 24 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Samplers.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEPS 2 | sampler2D sDiffMap : register(S0); 3 | samplerCUBE sDiffCubeMap : register(S0); 4 | sampler2D sAlbedoBuffer : register(S0); 5 | sampler2D sNormalMap : register(S1); 6 | sampler2D sNormalBuffer : register(S1); 7 | sampler2D sSpecMap : register(S2); 8 | sampler2D sEmissiveMap : register(S3); 9 | sampler2D sEnvMap : register(S4); 10 | samplerCUBE sEnvCubeMap : register(S4); 11 | sampler1D sLightRampMap : register(S5); 12 | sampler2D sLightSpotMap : register(S6); 13 | samplerCUBE sLightCubeMap : register(S6); 14 | sampler2D sShadowMap : register(S7); 15 | samplerCUBE sFaceSelectCubeMap : register(S8); 16 | samplerCUBE sIndirectionCubeMap : register(S9); 17 | sampler2D sDepthBuffer : register(S10); 18 | sampler2D sLightBuffer : register(S11); 19 | sampler3D sVolumeMap : register(S12); 20 | 21 | float4 Sample(sampler2D map, float2 texCoord) 22 | { 23 | // Use tex2Dlod if available to avoid divergence and allow branching 24 | #ifdef SM3 25 | return tex2Dlod(map, float4(texCoord, 0.0, 0.0)); 26 | #else 27 | return tex2D(map, texCoord); 28 | #endif 29 | } 30 | 31 | float3 DecodeNormal(float4 normalInput) 32 | { 33 | #ifdef PACKEDNORMAL 34 | float3 normal; 35 | normal.xy = normalInput.ag * 2.0 - 1.0; 36 | #ifdef SM3 37 | normal.z = sqrt(max(1.0 - dot(normal.xy, normal.xy), 0.0)); 38 | #else 39 | normal.z = sqrt(1.0 - dot(normal.xy, normal.xy)); 40 | #endif 41 | return normal; 42 | #else 43 | return normalInput.rgb * 2.0 - 1.0; 44 | #endif 45 | } 46 | #endif 47 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/ScreenPos.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | float4 GetScreenPos(float4 clipPos) 3 | { 4 | return float4( 5 | clipPos.x * cGBufferOffsets.z + cGBufferOffsets.x * clipPos.w, 6 | -clipPos.y * cGBufferOffsets.w + cGBufferOffsets.y * clipPos.w, 7 | 0.0, 8 | clipPos.w); 9 | } 10 | 11 | float2 GetScreenPosPreDiv(float4 clipPos) 12 | { 13 | return float2( 14 | clipPos.x / clipPos.w * cGBufferOffsets.z + cGBufferOffsets.x, 15 | -clipPos.y / clipPos.w * cGBufferOffsets.w + cGBufferOffsets.y); 16 | } 17 | 18 | float2 GetQuadTexCoord(float4 clipPos) 19 | { 20 | return float2( 21 | clipPos.x / clipPos.w * 0.5 + 0.5, 22 | -clipPos.y / clipPos.w * 0.5 + 0.5); 23 | } 24 | 25 | float2 GetQuadTexCoordNoFlip(float3 worldPos) 26 | { 27 | return float2( 28 | worldPos.x * 0.5 + 0.5, 29 | -worldPos.y * 0.5 + 0.5); 30 | } 31 | 32 | float3 GetFarRay(float4 clipPos) 33 | { 34 | float3 viewRay = float3( 35 | clipPos.x / clipPos.w * cFrustumSize.x, 36 | clipPos.y / clipPos.w * cFrustumSize.y, 37 | cFrustumSize.z); 38 | 39 | return mul(viewRay, cCameraRot); 40 | } 41 | 42 | float3 GetNearRay(float4 clipPos) 43 | { 44 | float3 viewRay = float3( 45 | clipPos.x / clipPos.w * cFrustumSize.x, 46 | clipPos.y / clipPos.w * cFrustumSize.y, 47 | 0.0); 48 | 49 | return mul(viewRay, cCameraRot) * cDepthMode.z; 50 | } 51 | #endif 52 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Shadow.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | #ifdef SKINNED 7 | float4 iBlendWeights : BLENDWEIGHT, 8 | int4 iBlendIndices : BLENDINDICES, 9 | #endif 10 | #ifdef INSTANCED 11 | float4x3 iModelInstance : TEXCOORD2, 12 | #endif 13 | float2 iTexCoord : TEXCOORD0, 14 | out float2 oTexCoord : TEXCOORD0, 15 | out float4 oPos : POSITION) 16 | { 17 | float4x3 modelMatrix = iModelMatrix; 18 | float3 worldPos = GetWorldPos(modelMatrix); 19 | oPos = GetClipPos(worldPos); 20 | oTexCoord = GetTexCoord(iTexCoord); 21 | } 22 | 23 | void PS( 24 | float2 iTexCoord : TEXCOORD0, 25 | out float4 oColor : COLOR0) 26 | { 27 | #ifdef ALPHAMASK 28 | float alpha = tex2D(sDiffMap, iTexCoord).a; 29 | if (alpha < 0.5) 30 | discard; 31 | #endif 32 | 33 | oColor = 1.0; 34 | } 35 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Skybox.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | out float4 oPos : POSITION, 7 | out float3 oTexCoord : TEXCOORD0) 8 | { 9 | float4x3 modelMatrix = iModelMatrix; 10 | float3 worldPos = GetWorldPos(modelMatrix); 11 | oPos = GetClipPos(worldPos); 12 | 13 | oPos.z = oPos.w; 14 | oTexCoord = iPos.xyz; 15 | } 16 | 17 | void PS(float3 iTexCoord : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | oColor = cMatDiffColor * texCUBE(sDiffCubeMap, iTexCoord); 21 | } 22 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Stencil.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | 4 | void VS(float4 iPos : POSITION, 5 | out float4 oPos : POSITION) 6 | { 7 | float4x3 modelMatrix = iModelMatrix; 8 | float3 worldPos = GetWorldPos(modelMatrix); 9 | oPos = GetClipPos(worldPos); 10 | } 11 | 12 | void PS(out float4 oColor : COLOR0) 13 | { 14 | oColor = 1.0; 15 | } 16 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Tonemap.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | uniform float cTonemapExposureBias; 8 | uniform float cTonemapMaxWhite; 9 | 10 | void VS(float4 iPos : POSITION, 11 | out float4 oPos : POSITION, 12 | out float2 oScreenPos : TEXCOORD0) 13 | { 14 | float4x3 modelMatrix = iModelMatrix; 15 | float3 worldPos = GetWorldPos(modelMatrix); 16 | oPos = GetClipPos(worldPos); 17 | oScreenPos = GetScreenPosPreDiv(oPos); 18 | } 19 | 20 | void PS(float2 iScreenPos : TEXCOORD0, 21 | out float4 oColor : COLOR0) 22 | { 23 | #ifdef REINHARDEQ3 24 | float3 color = ReinhardEq3Tonemap(max(tex2D(sDiffMap, iScreenPos).rgb * cTonemapExposureBias, 0.0)); 25 | oColor = float4(color, 1.0); 26 | #endif 27 | 28 | #ifdef REINHARDEQ4 29 | float3 color = ReinhardEq4Tonemap(max(tex2D(sDiffMap, iScreenPos).rgb * cTonemapExposureBias, 0.0), cTonemapMaxWhite); 30 | oColor = float4(color, 1.0); 31 | #endif 32 | 33 | #ifdef UNCHARTED2 34 | float3 color = Uncharted2Tonemap(max(tex2D(sDiffMap, iScreenPos).rgb * cTonemapExposureBias, 0.0)) / 35 | Uncharted2Tonemap(float3(cTonemapMaxWhite, cTonemapMaxWhite, cTonemapMaxWhite)); 36 | oColor = float4(color, 1.0); 37 | #endif 38 | } 39 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Transform.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | #ifdef SKINNED 3 | float4x3 GetSkinMatrix(float4 blendWeights, int4 blendIndices) 4 | { 5 | return cSkinMatrices[blendIndices.x] * blendWeights.x + 6 | cSkinMatrices[blendIndices.y] * blendWeights.y + 7 | cSkinMatrices[blendIndices.z] * blendWeights.z + 8 | cSkinMatrices[blendIndices.w] * blendWeights.w; 9 | } 10 | #endif 11 | 12 | float2 GetTexCoord(float2 iTexCoord) 13 | { 14 | return float2(dot(iTexCoord, cUOffset.xy) + cUOffset.w, dot(iTexCoord, cVOffset.xy) + cVOffset.w); 15 | }; 16 | 17 | float4 GetClipPos(float3 worldPos) 18 | { 19 | return mul(float4(worldPos, 1.0), cViewProj); 20 | } 21 | 22 | float GetZonePos(float3 worldPos) 23 | { 24 | return saturate(mul(float4(worldPos, 1.0), cZone).z); 25 | } 26 | 27 | float GetDepth(float4 clipPos) 28 | { 29 | return dot(clipPos.zw, cDepthMode.zw); 30 | } 31 | 32 | float3 GetBillboardPos(float4 iPos, float2 iSize, float4x3 modelMatrix) 33 | { 34 | return mul(iPos, modelMatrix) + mul(float3(iSize.x, iSize.y, 0.0), cBillboardRot); 35 | } 36 | 37 | float3 GetBillboardNormal() 38 | { 39 | return float3(-cBillboardRot[2][0], -cBillboardRot[2][1], -cBillboardRot[2][2]); 40 | } 41 | 42 | #if defined(SKINNED) 43 | #define iModelMatrix GetSkinMatrix(iBlendWeights, iBlendIndices); 44 | #elif defined(INSTANCED) 45 | #define iModelMatrix iModelInstance 46 | #else 47 | #define iModelMatrix cModel 48 | #endif 49 | 50 | #ifdef BILLBOARD 51 | #define GetWorldPos(modelMatrix) GetBillboardPos(iPos, iSize, modelMatrix) 52 | #else 53 | #define GetWorldPos(modelMatrix) mul(iPos, modelMatrix) 54 | #endif 55 | 56 | #ifdef BILLBOARD 57 | #define GetWorldNormal(modelMatrix) GetBillboardNormal() 58 | #else 59 | #define GetWorldNormal(modelMatrix) normalize(mul(iNormal, (float3x3)modelMatrix)) 60 | #endif 61 | 62 | #define GetWorldTangent(modelMatrix) normalize(mul(iTangent.xyz, (float3x3)modelMatrix)) 63 | #endif 64 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Uniforms.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | // Vertex shader uniforms 3 | uniform float3 cAmbientStartColor; 4 | uniform float3 cAmbientEndColor; 5 | uniform float3x3 cBillboardRot; 6 | uniform float3 cCameraPos; 7 | uniform float3x3 cCameraRot; 8 | uniform float cNearClip; 9 | uniform float cFarClip; 10 | uniform float4 cDepthMode; 11 | uniform float cDeltaTime; 12 | uniform float cElapsedTime; 13 | uniform float3 cFrustumSize; 14 | uniform float4 cGBufferOffsets; 15 | uniform float3 cLightDir; 16 | uniform float4 cLightPos; 17 | uniform float4x3 cModel; 18 | uniform float4x4 cViewProj; 19 | uniform float4 cUOffset; 20 | uniform float4 cVOffset; 21 | uniform float4x3 cZone; 22 | uniform float4x4 cLightMatrices[4]; 23 | #ifdef SKINNED 24 | uniform float4x3 cSkinMatrices[64]; 25 | #endif 26 | #ifdef NUMVERTEXLIGHTS 27 | uniform float4 cVertexLights[4*3]; 28 | #endif 29 | #endif 30 | 31 | #ifdef COMPILEPS 32 | // Pixel shader uniforms 33 | uniform float3 cAmbientColor; 34 | uniform float3 cCameraPosPS; 35 | uniform float cDeltaTimePS; 36 | uniform float cElapsedTimePS; 37 | uniform float4 cFogParams; 38 | uniform float3 cFogColor; 39 | uniform float2 cGBufferInvSize; 40 | uniform float4 cLightColor; 41 | uniform float4 cLightPosPS; 42 | uniform float3 cLightDirPS; 43 | uniform float4 cMatDiffColor; 44 | uniform float3 cMatEmissiveColor; 45 | uniform float3 cMatEnvMapColor; 46 | uniform float4 cMatSpecColor; 47 | uniform float cNearClipPS; 48 | uniform float cFarClipPS; 49 | uniform float4 cShadowCubeAdjust; 50 | uniform float4 cShadowDepthFade; 51 | uniform float2 cShadowIntensity; 52 | uniform float2 cShadowMapInvSize; 53 | uniform float4 cShadowSplits; 54 | #ifdef SM3 55 | uniform float4x4 cLightMatricesPS[4]; 56 | #else 57 | uniform float4x4 cLightMatricesPS[3]; 58 | #endif 59 | #endif 60 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Unlit.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | #include "Fog.hlsl" 5 | 6 | void VS(float4 iPos : POSITION, 7 | float2 iTexCoord : TEXCOORD0, 8 | #ifdef VERTEXCOLOR 9 | float4 iColor : COLOR0, 10 | #endif 11 | #ifdef SKINNED 12 | float4 iBlendWeights : BLENDWEIGHT, 13 | int4 iBlendIndices : BLENDINDICES, 14 | #endif 15 | #ifdef INSTANCED 16 | float4x3 iModelInstance : TEXCOORD2, 17 | #endif 18 | #ifdef BILLBOARD 19 | float2 iSize : TEXCOORD1, 20 | #endif 21 | out float2 oTexCoord : TEXCOORD0, 22 | out float4 oWorldPos : TEXCOORD2, 23 | #ifdef VERTEXCOLOR 24 | out float4 oColor : COLOR0, 25 | #endif 26 | out float4 oPos : POSITION) 27 | { 28 | float4x3 modelMatrix = iModelMatrix; 29 | float3 worldPos = GetWorldPos(modelMatrix); 30 | oPos = GetClipPos(worldPos); 31 | oTexCoord = GetTexCoord(iTexCoord); 32 | oWorldPos = float4(worldPos, GetDepth(oPos)); 33 | 34 | #ifdef VERTEXCOLOR 35 | oColor = iColor; 36 | #endif 37 | } 38 | 39 | void PS(float2 iTexCoord : TEXCOORD0, 40 | float4 iWorldPos: TEXCOORD2, 41 | #ifdef VERTEXCOLOR 42 | float4 iColor : COLOR0, 43 | #endif 44 | #ifdef PREPASS 45 | out float4 oDepth : COLOR1, 46 | #endif 47 | #ifdef DEFERRED 48 | out float4 oAlbedo : COLOR1, 49 | out float4 oNormal : COLOR2, 50 | out float4 oDepth : COLOR3, 51 | #endif 52 | out float4 oColor : COLOR0) 53 | { 54 | // Get material diffuse albedo 55 | #ifdef DIFFMAP 56 | float4 diffColor = cMatDiffColor * tex2D(sDiffMap, iTexCoord); 57 | #ifdef ALPHAMASK 58 | if (diffColor.a < 0.5) 59 | discard; 60 | #endif 61 | #else 62 | float4 diffColor = cMatDiffColor; 63 | #endif 64 | 65 | #ifdef VERTEXCOLOR 66 | diffColor *= iColor; 67 | #endif 68 | 69 | // Get fog factor 70 | #ifdef HEIGHTFOG 71 | float fogFactor = GetHeightFogFactor(iWorldPos.w, iWorldPos.y); 72 | #else 73 | float fogFactor = GetFogFactor(iWorldPos.w); 74 | #endif 75 | 76 | #if defined(PREPASS) 77 | // Fill light pre-pass G-Buffer 78 | oColor = float4(0.5, 0.5, 0.5, 1.0); 79 | oDepth = iWorldPos.w; 80 | #elif defined(DEFERRED) 81 | // Fill deferred G-buffer 82 | oColor = float4(GetFog(diffColor.rgb, fogFactor), diffColor.a); 83 | oAlbedo = float4(0.0, 0.0, 0.0, 0.0); 84 | oNormal = float4(0.5, 0.5, 0.5, 1.0); 85 | oDepth = iWorldPos.w; 86 | #else 87 | oColor = float4(GetFog(diffColor.rgb, fogFactor), diffColor.a); 88 | #endif 89 | } -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/VegetationDepth.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | uniform float cWindHeightFactor; 6 | uniform float cWindHeightPivot; 7 | uniform float cWindPeriod; 8 | uniform float2 cWindWorldSpacing; 9 | 10 | void VS(float4 iPos : POSITION, 11 | #ifdef SKINNED 12 | float4 iBlendWeights : BLENDWEIGHT, 13 | int4 iBlendIndices : BLENDINDICES, 14 | #endif 15 | #ifdef INSTANCED 16 | float4x3 iModelInstance : TEXCOORD2, 17 | #endif 18 | float2 iTexCoord : TEXCOORD0, 19 | out float3 oTexCoord : TEXCOORD0, 20 | out float4 oPos : POSITION) 21 | { 22 | float4x3 modelMatrix = iModelMatrix; 23 | float3 worldPos = GetWorldPos(modelMatrix); 24 | 25 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 26 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 27 | worldPos.x += windStrength * sin(windPeriod); 28 | worldPos.z -= windStrength * cos(windPeriod); 29 | 30 | oPos = GetClipPos(worldPos); 31 | oTexCoord = float3(GetTexCoord(iTexCoord), GetDepth(oPos)); 32 | } 33 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/VegetationShadow.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | uniform float cWindHeightFactor; 6 | uniform float cWindHeightPivot; 7 | uniform float cWindPeriod; 8 | uniform float2 cWindWorldSpacing; 9 | 10 | void VS(float4 iPos : POSITION, 11 | #ifdef SKINNED 12 | float4 iBlendWeights : BLENDWEIGHT, 13 | int4 iBlendIndices : BLENDINDICES, 14 | #endif 15 | #ifdef INSTANCED 16 | float4x3 iModelInstance : TEXCOORD2, 17 | #endif 18 | float2 iTexCoord : TEXCOORD0, 19 | out float2 oTexCoord : TEXCOORD0, 20 | out float4 oPos : POSITION) 21 | { 22 | float4x3 modelMatrix = iModelMatrix; 23 | float3 worldPos = GetWorldPos(modelMatrix); 24 | 25 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 26 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 27 | worldPos.x += windStrength * sin(windPeriod); 28 | worldPos.z -= windStrength * cos(windPeriod); 29 | 30 | oPos = GetClipPos(worldPos); 31 | oTexCoord = GetTexCoord(iTexCoord); 32 | } 33 | -------------------------------------------------------------------------------- /Bin/CoreData/Shaders/HLSL/Water.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "Fog.hlsl" 6 | 7 | uniform float2 cNoiseSpeed; 8 | uniform float cNoiseTiling; 9 | uniform float cNoiseStrength; 10 | uniform float cFresnelPower; 11 | uniform float3 cWaterTint; 12 | 13 | void VS(float4 iPos : POSITION, 14 | float3 iNormal: NORMAL, 15 | float2 iTexCoord : TEXCOORD0, 16 | out float4 oScreenPos : TEXCOORD0, 17 | out float2 oReflectUV : TEXCOORD1, 18 | out float2 oWaterUV : TEXCOORD2, 19 | out float3 oNormal : TEXCOORD3, 20 | out float4 oEyeVec : TEXCOORD4, 21 | out float4 oPos : POSITION) 22 | { 23 | float4x3 modelMatrix = iModelMatrix; 24 | float3 worldPos = GetWorldPos(modelMatrix); 25 | oPos = GetClipPos(worldPos); 26 | 27 | oScreenPos = GetScreenPos(oPos); 28 | // GetQuadTexCoord() returns a float2 that is OK for quad rendering; multiply it with output W 29 | // coordinate to make it work with arbitrary meshes such as the water plane (perform divide in pixel shader) 30 | oReflectUV = GetQuadTexCoord(oPos) * oPos.w; 31 | oWaterUV = iTexCoord * cNoiseTiling + cElapsedTime * cNoiseSpeed; 32 | oNormal = GetWorldNormal(modelMatrix); 33 | oEyeVec = float4(cCameraPos - worldPos, GetDepth(oPos)); 34 | } 35 | 36 | void PS( 37 | float4 iScreenPos : TEXCOORD0, 38 | float2 iReflectUV : TEXCOORD1, 39 | float2 iWaterUV : TEXCOORD2, 40 | float3 iNormal : TEXCOORD3, 41 | float4 iEyeVec : TEXCOORD4, 42 | out float4 oColor : COLOR0) 43 | { 44 | float2 refractUV = iScreenPos.xy / iScreenPos.w; 45 | float2 reflectUV = iReflectUV.xy / iScreenPos.w; 46 | 47 | float2 noise = (tex2D(sNormalMap, iWaterUV).rg - 0.5) * cNoiseStrength; 48 | refractUV += noise; 49 | // Do not shift reflect UV coordinate upward, because it will reveal the clipping of geometry below water 50 | if (noise.y < 0.0) 51 | noise.y = 0.0; 52 | reflectUV += noise; 53 | 54 | float fresnel = pow(1.0 - saturate(dot(normalize(iEyeVec.xyz), iNormal)), cFresnelPower); 55 | float3 refractColor = tex2D(sEnvMap, refractUV).rgb * cWaterTint; 56 | float3 reflectColor = tex2D(sDiffMap, reflectUV).rgb; 57 | float3 finalColor = lerp(refractColor, reflectColor, fresnel); 58 | 59 | oColor = float4(GetFog(finalColor, GetFogFactor(iEyeVec.w)), 1.0); 60 | } -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/Diff.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffEnvCubeAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffEnvCubeAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffLightMap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffLightMapAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffLitParticleAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPacked.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalPackedSpecEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffNormalSpecEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffOverlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffSkybox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffSkyplane.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffSpec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffSpecAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffSpecAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffUnlitAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffVColAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffVColAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffVColMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/DiffVColUnlitAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTexture.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureEnvCubeAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureEnvCubeAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureNormal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureNormalAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureNormalPacked.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureNormalPackedAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureOverlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureUnlitAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureUnlitVCol.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureVColAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureVColAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/NoTextureVColMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/TerrainBlend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/VegetationDiff.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/VegetationDiffAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/VegetationDiffUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/VegetationDiffUnlitAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/CoreData/Techniques/Water.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Bin/CoreData/Textures/LUTIdentity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/CoreData/Textures/LUTIdentity.png -------------------------------------------------------------------------------- /Bin/CoreData/Textures/LUTIdentity.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/CoreData/Textures/Ramp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/CoreData/Textures/Ramp.png -------------------------------------------------------------------------------- /Bin/CoreData/Textures/Ramp.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Bin/CoreData/Textures/RampExtreme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/CoreData/Textures/RampExtreme.png -------------------------------------------------------------------------------- /Bin/CoreData/Textures/RampExtreme.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Textures/RampWide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/CoreData/Textures/RampWide.png -------------------------------------------------------------------------------- /Bin/CoreData/Textures/RampWide.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/CoreData/Textures/Spot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/CoreData/Textures/Spot.png -------------------------------------------------------------------------------- /Bin/CoreData/Textures/Spot.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/CoreData/Textures/SpotWide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/CoreData/Textures/SpotWide.png -------------------------------------------------------------------------------- /Bin/CoreData/Textures/SpotWide.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Bin/Data/Fonts/Anonymous Pro.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Fonts/Anonymous Pro.ttf -------------------------------------------------------------------------------- /Bin/Data/Fonts/BlueHighway.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Fonts/BlueHighway.ttf -------------------------------------------------------------------------------- /Bin/Data/Fonts/read_me.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Fonts/read_me.html -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/BlueUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/BrightBlueUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/BrightGreenUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/BrightRedUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/GreenUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/RedUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Editor/TexturedUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Materials/GreenTransparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Jack.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/JackEnvMap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Materials/LitSmoke.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Mushroom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/MushroomEnvMap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Bin/Data/Materials/MushroomWind.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Materials/MushroomWindUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Materials/NinjaSnowWar/CloudPlane.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Materials/NinjaSnowWar/Ninja.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/NinjaSnowWar/Potion.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/NinjaSnowWar/Snow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/NinjaSnowWar/SnowCrate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Particle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Skybox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Smoke.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Stone.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Bin/Data/Materials/StoneEnvMap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Materials/StoneEnvMapSmall.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/Data/Materials/StoneSmall.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Materials/StoneTiled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Materials/StoneTiledH.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Terrain.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/Data/Materials/UrhoDecal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Materials/UrhoDecalAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Materials/VColUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Bin/Data/Materials/Water.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/Data/Textures/BrightDay1_NegX.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/BrightDay1_NegX.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/BrightDay1_NegY.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/BrightDay1_NegY.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/BrightDay1_NegZ.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/BrightDay1_NegZ.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/BrightDay1_PosX.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/BrightDay1_PosX.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/BrightDay1_PosY.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/BrightDay1_PosY.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/BrightDay1_PosZ.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/BrightDay1_PosZ.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/Editor/EditorIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Editor/EditorIcons.png -------------------------------------------------------------------------------- /Bin/Data/Textures/Editor/EditorIcons.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Textures/Editor/NoPreviewAvailable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Editor/NoPreviewAvailable.png -------------------------------------------------------------------------------- /Bin/Data/Textures/Flare.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Flare.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/HeightMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/HeightMap.png -------------------------------------------------------------------------------- /Bin/Data/Textures/Jack_body_color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Jack_body_color.jpg -------------------------------------------------------------------------------- /Bin/Data/Textures/Jack_face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Jack_face.jpg -------------------------------------------------------------------------------- /Bin/Data/Textures/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Logo.png -------------------------------------------------------------------------------- /Bin/Data/Textures/Logo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Textures/LogoLarge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/LogoLarge.png -------------------------------------------------------------------------------- /Bin/Data/Textures/LogoLarge.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Bin/Data/Textures/Mushroom.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Mushroom.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/CloudPlane.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/CloudPlane.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/HealthBarBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/HealthBarBorder.png -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/HealthBarInside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/HealthBarInside.png -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/Ninja.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/Ninja.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/Sight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/Sight.png -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/Sight.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/Snow.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/Snow.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/NinjaSnowWar/SnowCrate.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/NinjaSnowWar/SnowCrate.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/OldUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/OldUI.png -------------------------------------------------------------------------------- /Bin/Data/Textures/OldUI.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Textures/Skybox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bin/Data/Textures/Smoke.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/Smoke.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/StoneDiffuse.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/StoneDiffuse.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/StoneNormal.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/StoneNormal.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/TerrainDetail1.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/TerrainDetail1.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/TerrainDetail2.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/TerrainDetail2.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/TerrainDetail3.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/TerrainDetail3.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/TerrainWeights.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/TerrainWeights.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/TouchInput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/TouchInput.png -------------------------------------------------------------------------------- /Bin/Data/Textures/UI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/UI.png -------------------------------------------------------------------------------- /Bin/Data/Textures/UI.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bin/Data/Textures/UrhoDecal.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/UrhoDecal.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/UrhoDecalAlpha.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/UrhoDecalAlpha.dds -------------------------------------------------------------------------------- /Bin/Data/Textures/UrhoIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/UrhoIcon.png -------------------------------------------------------------------------------- /Bin/Data/Textures/WaterNoise.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Textures/WaterNoise.dds -------------------------------------------------------------------------------- /Bin/Data/UI/EditorContextMenu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Bin/Data/UI/EditorInspectorWindow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Bin/Data/UI/EditorInspector_Attribute.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Bin/Data/UI/EditorInspector_Style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Bin/Data/UI/EditorQuickMenu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Bin/Data/UI/MessageBox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Bin/Data/UI/ScreenJoystickSettings_NinjaSnowWar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Octree 7 | 8 | 9 | 10 | 11 | 12 | 13 | Debug 14 | 15 | 16 | 17 | 18 | 19 | 20 | HUD 21 | 22 | 23 | 24 | 25 | 26 | 27 | Console 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Bin/Data/UI/ScreenJoystick_NinjaSnowWar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Jump 4 | Fire 5 | -12 36 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Bin/Data/UI/ScreenJoystick_Samples.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 12 -76 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/Aster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/Aster.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/Ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/Ball.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/Box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/Box.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/GoldIcon.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/GoldIcon/1.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/GoldIcon/2.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/GoldIcon/3.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/GoldIcon/4.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/GoldIcon/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/GoldIcon/5.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/fire.pex: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/greenspiral.pex: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/greenspiral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/greenspiral.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 by TreeFortress (https://github.com/treefortress/SpriterAS/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_blood.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_body.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_footbig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_footbig.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_footsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_footsmall.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_handbig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_handbig.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_handsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_handsmall.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_handthrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_handthrow.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_head.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_headangry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_headangry.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/imp/imp_headblink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/imp/imp_headblink.png -------------------------------------------------------------------------------- /Bin/Data/Urho2D/sun.pex: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Bin/Data/Urho2D/sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/Data/Urho2D/sun.png -------------------------------------------------------------------------------- /Bin/ParticleEditor2D.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/ParticleEditor2D.exe -------------------------------------------------------------------------------- /Bin/QtCore4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/QtCore4.dll -------------------------------------------------------------------------------- /Bin/QtGui4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/QtGui4.dll -------------------------------------------------------------------------------- /Bin/msvcp110.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/msvcp110.dll -------------------------------------------------------------------------------- /Bin/msvcr110.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Bin/msvcr110.dll -------------------------------------------------------------------------------- /License.txt: -------------------------------------------------------------------------------- 1 | ParticleEditor2D license 2 | ------------------------ 3 | 4 | Copyright (c) 2014 the ParticleEditor2D project. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | 24 | 25 | QDarkStyleSheet License 26 | ----------------------- 27 | 28 | The MIT License (MIT) 29 | 30 | Copyright (c) <2013-2014> 31 | 32 | Permission is hereby granted, free of charge, to any person obtaining a copy 33 | of this software and associated documentation files (the "Software"), to deal 34 | in the Software without restriction, including without limitation the rights 35 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the Software is 37 | furnished to do so, subject to the following conditions: 38 | 39 | The above copyright notice and this permission notice shall be included in 40 | all copies or substantial portions of the Software. 41 | 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 48 | THE SOFTWARE. 49 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # ParticleEditor2D 2 | Qt based particle editor for Urho3D 3 | 4 | Licensed under the MIT license, see License.txt for details. 5 | 6 | ## Credits 7 | 8 | Particle editor development, contributions and bugfixes by: 9 | - Aster Jian 10 | - Xu Jing 11 | 12 | ## Building prerequisites 13 | 14 | To build ParticleEditor2D, first install Qt4.x sdk, then copy ParticleEditor2D's source folder to Urho3D's source folder. 15 | -------------------------------------------------------------------------------- /Source/Tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2008-2014 the Urho3D project. 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | # 22 | 23 | # Set project name 24 | project (Urho3D-Tools) 25 | 26 | # Find Urho3D library 27 | find_package (Urho3D REQUIRED) 28 | include_directories (${URHO3D_INCLUDE_DIRS}) 29 | 30 | # Urho3DPlayer application 31 | add_subdirectory (Urho3DPlayer) 32 | 33 | # ParticleEditor application 34 | add_subdirectory (ParticleEditor2D) 35 | 36 | # Do not build tools for iOS and Android regardless of the URHO3D_TOOLS build option 37 | if (NOT IOS AND NOT ANDROID AND URHO3D_TOOLS) 38 | # Urho3D tools 39 | add_subdirectory (AssetImporter) 40 | add_subdirectory (OgreImporter) 41 | add_subdirectory (PackageTool) 42 | add_subdirectory (RampGenerator) 43 | if (URHO3D_ANGELSCRIPT) 44 | add_subdirectory (ScriptCompiler) 45 | endif () 46 | endif () 47 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2014 the ParticleEditor2D project. 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | # 22 | 23 | # Define target name 24 | set (TARGET_NAME ParticleEditor2D) 25 | 26 | find_package(Qt4 REQUIRED) 27 | include(${QT_USE_FILE}) 28 | add_definitions(${QT_DEFINITIONS}) 29 | 30 | # Find Urho3D library 31 | # find_package (Urho3D REQUIRED) 32 | # include_directories (${URHO3D_INCLUDE_DIRS}) 33 | 34 | # INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) 35 | 36 | # Define source files 37 | define_source_files () 38 | 39 | # Moccing h files 40 | qt4_wrap_cpp( MOC_FILES ${H_FILES} ) 41 | 42 | # Compile ui files 43 | file (GLOB UI_FILES *.ui) 44 | qt4_wrap_ui( UI_HEADERS ${UI_FILES} ) 45 | 46 | # Rccing qrc files 47 | file (GLOB QRC_FILES *.qrc) 48 | qt4_add_resources( RCC_FILES ${QRC_FILES} ) 49 | 50 | set (SOURCE_FILES ${SOURCE_FILES} ${MOC_FILES} ${UI_HEADERS} ${RCC_FILES}) 51 | 52 | # Setup target with resource copying 53 | setup_main_executable () 54 | 55 | target_link_libraries(${TARGET_NAME} ${QT_LIBRARIES}) 56 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/ColorVarianceEditor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Color.h" 26 | #include 27 | 28 | class QComboBox; 29 | class QFrame; 30 | 31 | namespace Urho3D 32 | { 33 | class FloatEditor; 34 | 35 | class ColorVarianceEditor : public QGroupBox 36 | { 37 | Q_OBJECT 38 | 39 | public: 40 | ColorVarianceEditor(const QString& text); 41 | virtual ~ColorVarianceEditor(); 42 | 43 | public: 44 | /// Set value. 45 | void setValue(const Color& avarage, const Color& variance); 46 | /// Return value. 47 | Color avarage() const; 48 | Color variance() const; 49 | 50 | signals: 51 | void valueChanged(const Color& avarage, const Color& variance); 52 | 53 | protected slots: 54 | void colorModeComboBoxIndexChanged(int index); 55 | void editorValueChanged(); 56 | 57 | private: 58 | FloatEditor* CreateFloatEditor(const QString& text); 59 | 60 | QComboBox* colorModeComboBox_; 61 | 62 | QFrame* frame_; 63 | 64 | QGroupBox* minColorGroupBox_; 65 | FloatEditor* minREditor_; 66 | FloatEditor* minGEditor_; 67 | FloatEditor* minBEditor_; 68 | FloatEditor* minAEditor_; 69 | 70 | QGroupBox* maxColorGroupBox_; 71 | FloatEditor* maxREditor_; 72 | FloatEditor* maxGEditor_; 73 | FloatEditor* maxBEditor_; 74 | FloatEditor* maxAEditor_; 75 | }; 76 | 77 | } -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/FloatEditor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | class QLabel; 28 | class QDoubleSpinBox; 29 | class QSlider; 30 | 31 | namespace Urho3D 32 | { 33 | 34 | class FloatEditor : public QHBoxLayout 35 | { 36 | Q_OBJECT 37 | 38 | public: 39 | FloatEditor(const QString& text, bool setLabelWidth = true); 40 | virtual ~FloatEditor(); 41 | 42 | public: 43 | /// Set value. 44 | void setValue(float value); 45 | /// Return value. 46 | float value() const; 47 | 48 | /// Set range. 49 | void setRange(float min, float max); 50 | 51 | QLabel* label() const { return label_; } 52 | QSlider* slider() const { return slider_; } 53 | QDoubleSpinBox* spinBox() const { return spinBox_; } 54 | 55 | signals: 56 | void valueChanged(float); 57 | 58 | protected slots: 59 | void sliderValueChanged(int value); 60 | void spinBoxValueChanged(double value); 61 | 62 | private: 63 | void setSliderValue(double value); 64 | 65 | QLabel* label_ ; 66 | QSlider* slider_; 67 | QDoubleSpinBox* spinBox_; 68 | bool senderIsSlider_; 69 | bool senderIsSpinBox_; 70 | }; 71 | 72 | } -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/Icon.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/New.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/New.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/Open.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/Save.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/SaveAs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/SaveAs.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/Settings.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/SplashScreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/SplashScreen.jpg -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/ZoomIn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/ZoomIn.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/ZoomOut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/ZoomOut.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Images/ZoomReset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/Images/ZoomReset.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/IntEditor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | class QLabel; 28 | class QSpinBox; 29 | class QSlider; 30 | 31 | namespace Urho3D 32 | { 33 | 34 | class IntEditor : public QHBoxLayout 35 | { 36 | Q_OBJECT 37 | 38 | public: 39 | IntEditor(const QString& text); 40 | virtual ~IntEditor(); 41 | 42 | public: 43 | /// Set value. 44 | void setValue(int value); 45 | /// Return value. 46 | int value() const; 47 | 48 | /// Set range. 49 | void setRange(int min, int max); 50 | /// Return range. 51 | void GetRange(int& min, int& max) const; 52 | 53 | signals: 54 | void valueChanged(int); 55 | 56 | protected slots: 57 | void sliderValueChanged(int value); 58 | void spinBoxValueChanged(int value); 59 | 60 | private: 61 | QLabel* label_ ; 62 | QSlider* slider_; 63 | QSpinBox* spinBox_; 64 | bool senderIsSlider_; 65 | bool senderIsSpinBox_; 66 | }; 67 | 68 | } -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Main.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #include "Application.h" 24 | #include "ParticleEditor.h" 25 | #include 26 | 27 | int Main() 28 | { 29 | int argc = 0; 30 | char** argv = 0; 31 | Urho3D::SharedPtr context(new Urho3D::Context()); 32 | Urho3D::ParticleEditor editor(argc, argv, context); 33 | 34 | QFile file(":/qdarkstyle/style.qss"); 35 | if (file.open(QFile::ReadOnly | QFile::Text)) 36 | editor.setStyleSheet(QLatin1String(file.readAll())); 37 | 38 | return editor.Run(); 39 | } 40 | 41 | DEFINE_MAIN(Main()); 42 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/ParticleEffectEditor.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | 21 | // THE SOFTWARE. 22 | // 23 | 24 | #include "ParticleEditor.h" 25 | #include "ParticleEffectEditor.h" 26 | 27 | 28 | namespace Urho3D 29 | { 30 | ParticleEffectEditor::ParticleEffectEditor(Context* context) : 31 | Object(context), 32 | updatingWidget_(false) 33 | { 34 | 35 | } 36 | 37 | ParticleEffectEditor::~ParticleEffectEditor() 38 | { 39 | 40 | } 41 | 42 | void ParticleEffectEditor::UpdateWidget() 43 | { 44 | updatingWidget_ = true; 45 | 46 | HandleUpdateWidget(); 47 | 48 | updatingWidget_ = false; 49 | } 50 | 51 | ParticleEffect2D* ParticleEffectEditor::GetEffect() const 52 | { 53 | return ParticleEditor::Get()->GetEffect(); 54 | } 55 | 56 | ParticleEmitter2D* ParticleEffectEditor::GetEmitter() const 57 | { 58 | return ParticleEditor::Get()->GetEmitter(); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/ParticleEffectEditor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Object.h" 26 | 27 | namespace Urho3D 28 | { 29 | class ParticleEffect2D; 30 | class ParticleEmitter2D; 31 | 32 | /// Particle effect editor interface. 33 | class ParticleEffectEditor : public Object 34 | { 35 | OBJECT(ParticleEffectEditor) 36 | 37 | public: 38 | ParticleEffectEditor(Context* context); 39 | virtual ~ParticleEffectEditor(); 40 | 41 | /// Update widget. 42 | void UpdateWidget(); 43 | 44 | protected: 45 | /// Handle update widget. 46 | virtual void HandleUpdateWidget() = 0; 47 | 48 | /// Return particle effect. 49 | ParticleEffect2D* GetEffect() const; 50 | /// Return particle emitter. 51 | ParticleEmitter2D* GetEmitter() const; 52 | 53 | /// Is updating widget. 54 | bool updatingWidget_; 55 | }; 56 | 57 | } 58 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Images/Icon.png 4 | Images/New.png 5 | Images/Open.png 6 | Images/Save.png 7 | Images/SaveAs.png 8 | Images/Settings.png 9 | Images/ZoomIn.png 10 | Images/ZoomOut.png 11 | Images/ZoomReset.png 12 | 13 | 14 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/ScrollAreaWidget.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | 21 | // THE SOFTWARE. 22 | // 23 | 24 | #include "ScrollAreaWidget.h" 25 | #include 26 | #include 27 | #include 28 | 29 | namespace Urho3D 30 | { 31 | 32 | ScrollAreaWidget::ScrollAreaWidget() 33 | { 34 | setMinimumWidth(320); 35 | setWidgetResizable(true); 36 | 37 | QWidget* widget = new QWidget(); 38 | setWidget(widget); 39 | 40 | vBoxLayout_ = new QVBoxLayout(); 41 | widget->setLayout(vBoxLayout_); 42 | } 43 | 44 | ScrollAreaWidget::~ScrollAreaWidget() 45 | { 46 | } 47 | 48 | QHBoxLayout* ScrollAreaWidget::AddHBoxLayout() 49 | { 50 | QHBoxLayout* hBoxLayout = new QHBoxLayout(); 51 | vBoxLayout_->addLayout(hBoxLayout); 52 | 53 | hBoxLayout->setContentsMargins(0, 0, 0, 0); 54 | return hBoxLayout; 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/ScrollAreaWidget.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | class QHBoxLayout; 28 | class QVBoxLayout; 29 | 30 | namespace Urho3D 31 | { 32 | 33 | 34 | class ScrollAreaWidget : public QScrollArea 35 | { 36 | Q_OBJECT 37 | 38 | public: 39 | ScrollAreaWidget(); 40 | virtual ~ScrollAreaWidget(); 41 | 42 | protected: 43 | QHBoxLayout* AddHBoxLayout(); 44 | 45 | QVBoxLayout* vBoxLayout_; 46 | }; 47 | 48 | } 49 | -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/ValueVarianceEditor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Vector2.h" 26 | #include 27 | 28 | namespace Urho3D 29 | { 30 | 31 | class FloatEditor; 32 | 33 | class ValueVarianceEditor : public QGroupBox 34 | { 35 | Q_OBJECT 36 | 37 | public: 38 | ValueVarianceEditor(const QString& text); 39 | virtual ~ValueVarianceEditor(); 40 | 41 | public: 42 | /// Set value. 43 | void setValue(float avarage, float variance); 44 | void setRange(float min, float max); 45 | 46 | float value() const; 47 | float variance() const; 48 | 49 | signals: 50 | void valueChanged(float average, float variance); 51 | 52 | protected slots: 53 | void editorValueChanged(); 54 | 55 | private: 56 | FloatEditor* averageEditor_; 57 | FloatEditor* varianceEditor_; 58 | }; 59 | 60 | } -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Vector2Editor.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #include "FloatEditor.h" 24 | #include "Vector2Editor.h" 25 | #include 26 | 27 | namespace Urho3D 28 | { 29 | 30 | Vector2Editor::Vector2Editor(const QString& text) : 31 | QGroupBox(text) 32 | { 33 | QVBoxLayout* vBoxLayout = new QVBoxLayout(); 34 | setLayout(vBoxLayout); 35 | 36 | xEditor_ = new FloatEditor("X", false); 37 | vBoxLayout->addLayout(xEditor_); 38 | connect(xEditor_, SIGNAL(valueChanged(float)), this, SLOT(editorValueChanged())); 39 | 40 | yEditor_ = new FloatEditor("Y", false); 41 | vBoxLayout->addLayout(yEditor_); 42 | connect(yEditor_, SIGNAL(valueChanged(float)), this, SLOT(editorValueChanged())); 43 | } 44 | 45 | Vector2Editor::~Vector2Editor() 46 | { 47 | delete xEditor_; 48 | delete yEditor_; 49 | } 50 | 51 | 52 | void Vector2Editor::setValue(const Vector2& value) 53 | { 54 | xEditor_->setValue(value.x_); 55 | yEditor_->setValue(value.y_); 56 | } 57 | 58 | Vector2 Vector2Editor::value() const 59 | { 60 | return Vector2(xEditor_->value(), yEditor_->value()); 61 | } 62 | 63 | void Vector2Editor::setRange(const Vector2& min, const Vector2& max) 64 | { 65 | xEditor_->setRange(min.x_, max.x_); 66 | yEditor_->setRange(min.y_, max.y_); 67 | } 68 | 69 | void Vector2Editor::editorValueChanged() 70 | { 71 | emit valueChanged(value()); 72 | } 73 | 74 | } -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/Vector2Editor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2014 the ParticleEditor2D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Vector2.h" 26 | #include 27 | 28 | namespace Urho3D 29 | { 30 | 31 | class FloatEditor; 32 | 33 | class Vector2Editor : public QGroupBox 34 | { 35 | Q_OBJECT 36 | 37 | public: 38 | Vector2Editor(const QString& text); 39 | virtual ~Vector2Editor(); 40 | 41 | public: 42 | /// Set value. 43 | void setValue(const Vector2& value); 44 | /// Return value. 45 | Vector2 value() const; 46 | 47 | /// Set range. 48 | void setRange(const Vector2& min, const Vector2& max); 49 | 50 | signals: 51 | void valueChanged(const Vector2&); 52 | 53 | protected slots: 54 | void editorValueChanged(); 55 | 56 | private: 57 | FloatEditor* xEditor_; 58 | FloatEditor* yEditor_; 59 | }; 60 | 61 | } -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/Hmovetoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/Hmovetoolbar.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/Hsepartoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/Hsepartoolbar.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/Vmovetoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/Vmovetoolbar.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/Vsepartoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/Vsepartoolbar.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/branch_closed-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/branch_closed-on.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/branch_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/branch_closed.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/branch_open-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/branch_open-on.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/branch_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/branch_open.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/checkbox.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/close.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/down_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/down_arrow.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/down_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/down_arrow_disabled.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/left_arrow.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/left_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/left_arrow_disabled.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/right_arrow.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/right_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/right_arrow_disabled.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/sizegrip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/sizegrip.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/stylesheet-branch-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/stylesheet-branch-end.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/stylesheet-branch-more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/stylesheet-branch-more.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/stylesheet-vline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/stylesheet-vline.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/transparent.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/undock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/undock.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/up_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/up_arrow.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/rc/up_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aster2013/ParticleEditor2D/2c0e5605c6df1e9fb796b728b05671ac2b609032/Source/Tools/ParticleEditor2D/rc/up_arrow_disabled.png -------------------------------------------------------------------------------- /Source/Tools/ParticleEditor2D/style.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | rc/up_arrow_disabled.png 4 | rc/Hmovetoolbar.png 5 | rc/stylesheet-branch-end.png 6 | rc/branch_closed-on.png 7 | rc/stylesheet-vline.png 8 | rc/branch_closed.png 9 | rc/branch_open-on.png 10 | rc/transparent.png 11 | rc/right_arrow_disabled.png 12 | rc/sizegrip.png 13 | rc/close.png 14 | rc/down_arrow.png 15 | rc/Vmovetoolbar.png 16 | rc/left_arrow.png 17 | rc/stylesheet-branch-more.png 18 | rc/up_arrow.png 19 | rc/right_arrow.png 20 | rc/left_arrow_disabled.png 21 | rc/Hsepartoolbar.png 22 | rc/checkbox.png 23 | rc/branch_open.png 24 | rc/Vsepartoolbar.png 25 | rc/down_arrow_disabled.png 26 | rc/undock.png 27 | 28 | 29 | style.qss 30 | 31 | 32 | 33 | --------------------------------------------------------------------------------