From 7954642bfa166614536d8e2a97b00ee37e7314c5 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sat, 24 Dec 2022 19:44:29 +0530 Subject: [PATCH] fix tornado --- src/DtsObject.hx | 4 ++++ src/shaders/DtsTexture.hx | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/DtsObject.hx b/src/DtsObject.hx index 6e1f48b0..6ebf0485 100644 --- a/src/DtsObject.hx +++ b/src/DtsObject.hx @@ -380,6 +380,8 @@ class DtsObject extends GameObject { var dtsshader = new DtsTexture(); dtsshader.texture = texture; dtsshader.currentOpacity = 1; + if (this.identifier == "Tornado") + dtsshader.normalizeNormals = false; // These arent normalized material.mainPass.removeShader(material.textureShader); material.mainPass.addShader(dtsshader); } @@ -391,6 +393,8 @@ class DtsObject extends GameObject { if (material.texture == null && !iflMaterial) { var dtsshader = new DtsTexture(); dtsshader.currentOpacity = 1; + if (this.identifier == "Tornado") + dtsshader.normalizeNormals = false; // These arent normalized // Make a 1x1 white texture #if hl var bitmap = new hxd.BitmapData(1, 1); diff --git a/src/shaders/DtsTexture.hx b/src/shaders/DtsTexture.hx index ebd2453c..518a4527 100644 --- a/src/shaders/DtsTexture.hx +++ b/src/shaders/DtsTexture.hx @@ -14,6 +14,7 @@ class DtsTexture extends hxsl.Shader { @const var specularAlpha:Bool; @range(0, 1) @param var killAlphaThreshold:Float; @param var texture:Sampler2D; + @const var normalizeNormals:Bool; @perInstance @param var currentOpacity:Float; var calculatedUV:Vec2; var pixelColor:Vec4; @@ -22,6 +23,11 @@ class DtsTexture extends hxsl.Shader { function vertex() { calculatedUV = input.uv; transformedNormal = (input.normal * global.modelView.mat3()); + if (normalizeNormals) { + var normalizednorm = transformedNormal.normalize(); + transformedNormal = transformedNormal / (transformedNormal.x * transformedNormal.x + transformedNormal.y * transformedNormal.y + + transformedNormal.z * transformedNormal.z); + } } function fragment() { var c = texture.get(calculatedUV); @@ -41,5 +47,6 @@ class DtsTexture extends hxsl.Shader { super(); this.texture = tex; killAlphaThreshold = h3d.mat.Defaults.defaultKillAlphaThreshold; + normalizeNormals = true; } }