diff --git a/swing/resources/datafiles/flame/smokeShader.glsl b/swing/resources/datafiles/flame/smokeShader.glsl index 21255931b..9ccae6260 100644 --- a/swing/resources/datafiles/flame/smokeShader.glsl +++ b/swing/resources/datafiles/flame/smokeShader.glsl @@ -4,7 +4,7 @@ uniform sampler2D uSmoke; void main(void) { vec3 normal = 2.0 * texture2D (uNormal, gl_TexCoord[0].st).rgb - 1.0; - normal = normalize (normal); + normal = normalize (gl_NormalMatrix * normal); float lamberFactor = max (dot (gl_LightSource[1].position.xyz, normal), 0.0) ; diff --git a/swing/src/net/sf/openrocket/gui/figure3d/photo/exhaust/FlameRenderer.java b/swing/src/net/sf/openrocket/gui/figure3d/photo/exhaust/FlameRenderer.java index af7cdd0cb..d7e16cbb8 100644 --- a/swing/src/net/sf/openrocket/gui/figure3d/photo/exhaust/FlameRenderer.java +++ b/swing/src/net/sf/openrocket/gui/figure3d/photo/exhaust/FlameRenderer.java @@ -308,7 +308,8 @@ public final class FlameRenderer { mvmatrix[1] = mvmatrix[2] = mvmatrix[4] = mvmatrix[6] = mvmatrix[8] = mvmatrix[9] = 0; gl.glLoadMatrixd(mvmatrix, 0); - //TODO Add a random rotation to prevent artifacts from texture. + //Add a random rotation to prevent artifacts from texture. + gl.glRotatef(r.nextFloat()*45f, 0,0,1); gl.glBegin(GL.GL_TRIANGLE_FAN); float d = radius.f(z) * scale * 2;