fix tornado

This commit is contained in:
RandomityGuy 2022-12-24 19:44:29 +05:30
parent 1b292ff4a7
commit 215167a863
2 changed files with 11 additions and 3 deletions

View file

@ -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);

View file

@ -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;
}
}