Forráskód Böngészése

Fix point sprite on Android. Fixes issue #82.

shadowislord 11 éve
szülő
commit
3992ed89af

+ 6 - 0
jme3-core/src/main/resources/Common/MatDefs/Misc/Particle.frag

@@ -1,3 +1,9 @@
+#ifdef POINT_SPRITE
+#  if !defined(GL_ES) && __VERSION__ < 120
+#    error Point sprite is not supported by the video hardware!
+#  endif
+#endif
+
 #ifdef USE_TEXTURE
 uniform sampler2D m_Texture;
 varying vec4 texCoord;

+ 8 - 1
jme3-core/src/main/resources/Common/MatDefs/Misc/Particle.j3md

@@ -32,7 +32,6 @@ MaterialDef Point Sprite {
             Blend AlphaAdditive
             DepthWrite Off
             PointSprite On
-            // AlphaTestFalloff 0.01
         }
 
         Defines {
@@ -43,6 +42,12 @@ MaterialDef Point Sprite {
 
     Technique {
 
+        // This technique is used in two cases:
+        // - When the driver doesn't support GLSL 1.2
+        // - When running on OpenGL ES 2.0
+        // Point sprite should be used if running on ES2, but crash
+        // if on desktop (because its not supported by HW)
+
         VertexShader   GLSL100 : Common/MatDefs/Misc/Particle.vert
         FragmentShader GLSL100 : Common/MatDefs/Misc/Particle.frag
 
@@ -56,10 +61,12 @@ MaterialDef Point Sprite {
         RenderState {
             Blend AlphaAdditive
             DepthWrite Off
+            PointSprite On
         }
 
         Defines {
             USE_TEXTURE : Texture
+            POINT_SPRITE : PointSprite
         }
     }