Parcourir la source

URL: http://jmonkeyengine.org/groups/contribution-depot-jme3/forum/topic/crosspatchfilter-fails-on-mac/
CrossHatchFilter uniform types from int to float

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7057 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

mul..va il y a 14 ans
Parent
commit
64a404a939

+ 9 - 9
engine/src/core-data/Common/MatDefs/Post/CrossHatch.frag

@@ -13,30 +13,30 @@ uniform float m_Luminance3;
 uniform float m_Luminance4;
 uniform float m_Luminance5;
  
-uniform int m_LineDistance;
-uniform int m_LineThickness;
+uniform float m_LineDistance;
+uniform float m_LineThickness;
  
 void main() {
     vec4 texVal = texture2D(m_Texture, texCoord);
-    float linePixel = 0;
+    float linePixel = 0.0;
  
     float lum = texVal.r*0.2126 + texVal.g*0.7152 + texVal.b*0.0722;
  
     if (lum < m_Luminance1){
-        if (mod(gl_FragCoord.x + gl_FragCoord.y, m_LineDistance * 2) < m_LineThickness)
-            linePixel = 1;
+        if (mod(gl_FragCoord.x + gl_FragCoord.y, m_LineDistance * 2.0) < m_LineThickness)
+            linePixel = 1.0;
     }
     if (lum < m_Luminance2){
-        if (mod(gl_FragCoord.x - gl_FragCoord.y, m_LineDistance * 2) < m_LineThickness)
-            linePixel = 1;
+        if (mod(gl_FragCoord.x - gl_FragCoord.y, m_LineDistance * 2.0) < m_LineThickness)
+            linePixel = 1.0;
     }
     if (lum < m_Luminance3){
         if (mod(gl_FragCoord.x + gl_FragCoord.y - m_LineDistance, m_LineDistance) < m_LineThickness)
-            linePixel = 1;
+            linePixel = 1.0;
     }
     if (lum < m_Luminance4){
         if (mod(gl_FragCoord.x - gl_FragCoord.y - m_LineDistance, m_LineDistance) < m_LineThickness)
-            linePixel = 1;
+            linePixel = 1.0;
     }
     if (lum < m_Luminance5){ // No line, make a blob instead
         linePixel = m_FillValue;

+ 2 - 2
engine/src/core-data/Common/MatDefs/Post/CrossHatch.j3md

@@ -13,8 +13,8 @@ MaterialDef CrossHatch {
         Float Luminance3;
         Float Luminance4;
         Float Luminance5;
-        Int LineThickness;
-        Int LineDistance;
+        Float LineThickness;
+        Float LineDistance;
     }
  
     Technique {

+ 10 - 10
engine/src/desktop-fx/com/jme3/post/filters/CrossHatchFilter.java

@@ -61,8 +61,8 @@ public class CrossHatchFilter extends Filter {
     private float luminance3 = 0.5f;
     private float luminance4 = 0.3f;
     private float luminance5 = 0.0f;
-    private int lineThickness = 1;
-    private int lineDistance = 4;
+    private float lineThickness = 1.0f;
+    private float lineDistance = 4.0f;
 
     public CrossHatchFilter() {
         super("CrossHatchFilter");
@@ -96,8 +96,8 @@ public class CrossHatchFilter extends Filter {
         material.setFloat("Luminance4", luminance4);
         material.setFloat("Luminance5", luminance5);
 
-        material.setInt("LineThickness", lineThickness);
-        material.setInt("LineDistance", lineDistance);
+        material.setFloat("LineThickness", lineThickness);
+        material.setFloat("LineDistance", lineDistance);
     }
 
     @Override
@@ -191,10 +191,10 @@ public class CrossHatchFilter extends Filter {
     /*
      * Sets the thickness of lines drawn
      */
-    public void setLineThickness(int lineThickness) {
+    public void setLineThickness(float lineThickness) {
         this.lineThickness = lineThickness;
         if (material != null) {
-            material.setInt("LineThickness", lineThickness);
+            material.setFloat("LineThickness", lineThickness);
         }
     }
 
@@ -203,10 +203,10 @@ public class CrossHatchFilter extends Filter {
      * Primary lines are drawn at 2*lineDistance
      * Secondary lines are drawn at lineDistance
      */
-    public void setLineDistance(int lineDistance) {
+    public void setLineDistance(float lineDistance) {
         this.lineDistance = lineDistance;
         if (material != null) {
-            material.setInt("LineDistance", lineDistance);
+            material.setFloat("LineDistance", lineDistance);
         }
     }
 
@@ -248,14 +248,14 @@ public class CrossHatchFilter extends Filter {
     /*
      * Returns the thickness of the lines drawn
      */
-    public int getLineThickness() {
+    public float getLineThickness() {
         return lineThickness;
     }
 
     /*
      * Returns minimum distance between lines
      */
-    public int getLineDistance() {
+    public float getLineDistance() {
         return lineDistance;
     }