Sfoglia il codice sorgente

use trilinear filtering by default

danaugrs 7 anni fa
parent
commit
2436e39e34

+ 7 - 1
renderer/shaders/include/material.glsl

@@ -31,7 +31,6 @@ uniform vec3 Material[6];
 // It should be called for each texture index. It uses two externally defined variables:
 // vec4 texColor
 // vec4 texMixed
-// TODO alpha blending (dont use mix) see panel shader
 #define MIX_TEXTURE(i)                                                                       \
     if (MatTexVisible(i)) {                                                                  \
         texColor = texture(MatTexture[i], FragTexcoord * MatTexRepeat(i) + MatTexOffset(i)); \
@@ -42,3 +41,10 @@ uniform vec3 Material[6];
         }                                                                                    \
     }
 
+// TODO for alpha blending dont use mix use implementation below (similar to one in panel shader)
+            //vec4 prevTexPre = texMixed;                                                      \
+            //prevTexPre.rgb *= prevTexPre.a;                                                  \
+            //vec4 currTexPre = texColor;                                                      \
+            //currTexPre.rgb *= currTexPre.a;                                                  \
+            //texMixed = currTexPre + prevTexPre * (1 - currTexPre.a);                         \
+            //texMixed.rgb /= texMixed.a;                                                      \

+ 7 - 1
renderer/shaders/sources.go

@@ -93,7 +93,6 @@ uniform vec3 Material[6];
 // It should be called for each texture index. It uses two externally defined variables:
 // vec4 texColor
 // vec4 texMixed
-// TODO alpha blending (dont use mix) see panel shader
 #define MIX_TEXTURE(i)                                                                       \
     if (MatTexVisible(i)) {                                                                  \
         texColor = texture(MatTexture[i], FragTexcoord * MatTexRepeat(i) + MatTexOffset(i)); \
@@ -104,6 +103,13 @@ uniform vec3 Material[6];
         }                                                                                    \
     }
 
+// TODO for alpha blending dont use mix use implementation below (similar to one in panel shader)
+            //vec4 prevTexPre = texMixed;                                                      \
+            //prevTexPre.rgb *= prevTexPre.a;                                                  \
+            //vec4 currTexPre = texColor;                                                      \
+            //currTexPre.rgb *= currTexPre.a;                                                  \
+            //texMixed = currTexPre + prevTexPre * (1 - currTexPre.a);                         \
+            //texMixed.rgb /= texMixed.a;                                                      \
 `
 
 const include_phong_model_source = `/***

+ 1 - 1
texture/texture2D.go

@@ -54,7 +54,7 @@ func newTexture2D() *Texture2D {
 	t.refcount = 1
 	t.texname = 0
 	t.magFilter = gls.LINEAR
-	t.minFilter = gls.LINEAR
+	t.minFilter = gls.LINEAR_MIPMAP_LINEAR
 	t.wrapS = gls.CLAMP_TO_EDGE
 	t.wrapT = gls.CLAMP_TO_EDGE
 	t.updateData = false