From 215167a863f77b04f20042779277d3f5dad9be08 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 | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/DtsObject.hx b/src/DtsObject.hx index c362b38a..fca3e181 100644 --- a/src/DtsObject.hx +++ b/src/DtsObject.hx @@ -387,6 +387,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); } @@ -398,6 +400,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 b1dc030b..0fdd7e92 100644 --- a/src/shaders/DtsTexture.hx +++ b/src/shaders/DtsTexture.hx @@ -15,6 +15,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; @@ -23,9 +24,11 @@ class DtsTexture extends hxsl.Shader { function vertex() { calculatedUV = input.uv; transformedNormal = (input.normal * global.modelView.mat3()); - var normalizednorm = transformedNormal.normalize(); - transformedNormal = transformedNormal / (transformedNormal.x * transformedNormal.x + transformedNormal.y * transformedNormal.y - + transformedNormal.z * transformedNormal.z); + 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); @@ -45,5 +48,6 @@ class DtsTexture extends hxsl.Shader { super(); this.texture = tex; killAlphaThreshold = h3d.mat.Defaults.defaultKillAlphaThreshold; + normalizeNormals = true; } }