diff --git a/src/DtsObject.hx b/src/DtsObject.hx index b7eb3e21..13dd8461 100644 --- a/src/DtsObject.hx +++ b/src/DtsObject.hx @@ -815,9 +815,9 @@ class DtsObject extends GameObject { if (pos >= prim.points.length) { meshIndex++; if (prim.buffer != null) { - prim.addNormals(); - for (norm in prim.normals) - norm = norm.multiply(-1); + // prim.addNormals(); + // for (norm in prim.normals) + // norm = norm.multiply(-1); prim.flush(); } mesh.primitive = prim; @@ -831,7 +831,7 @@ class DtsObject extends GameObject { var vertex = info.vertices[i]; var normal = info.normals[i]; prim.points[pos] = vertex.toPoint(); - prim.normals[pos] = normal.toPoint().normalized(); + prim.normals[pos] = normal.toPoint(); // .normalized(); if (prim.buffer != null) { prim.dirtyFlags[pos] = true; } diff --git a/src/InstanceManager.hx b/src/InstanceManager.hx index f4084897..877158b7 100644 --- a/src/InstanceManager.hx +++ b/src/InstanceManager.hx @@ -111,12 +111,12 @@ class InstanceManager { if (dtsshader != null) { minfo.meshbatch.material.mainPass.removeShader(minfo.meshbatch.material.textureShader); minfo.meshbatch.material.mainPass.addShader(dtsshader); - minfo.meshbatch.material.mainPass.culling = mat.mainPass.culling; + // minfo.meshbatch.material.mainPass.culling = mat.mainPass.culling; } minfo.transparencymeshbatch = new MeshBatch(cast(cast(obj, Mesh).primitive), cast(cast(obj, Mesh)).material.clone(), scene); minfo.transparencymeshbatch.material.mainPass.removeShader(minfo.meshbatch.material.textureShader); minfo.transparencymeshbatch.material.mainPass.addShader(dtsshader); - minfo.transparencymeshbatch.material.mainPass.culling = mat.mainPass.culling; + // minfo.transparencymeshbatch.material.mainPass.culling = mat.mainPass.culling; // minfo.meshbatch.material.mainPass.removeShader(minfo.meshbatch.material.mainPass.getShader(PropsValues)); // minfo.transparencymeshbatch.material.mainPass.removeShader(minfo.transparencymeshbatch.material.mainPass.getShader(PropsValues)); diff --git a/src/collision/Grid.hx b/src/collision/Grid.hx index 453196b5..4abee5b1 100644 --- a/src/collision/Grid.hx +++ b/src/collision/Grid.hx @@ -9,7 +9,7 @@ class Grid { public var cellSize:Vector; // The dimensions of one cell - public static var CELL_DIV = new Vector(16, 16, 16); // split the bounds into cells of dimensions 1/16th of the corresponding dimensions of the bounds + public static var CELL_DIV = new Vector(12, 12, 12); // split the bounds into cells of dimensions 1/16th of the corresponding dimensions of the bounds var map:Map> = new Map(); diff --git a/src/shaders/DtsTexture.hx b/src/shaders/DtsTexture.hx index 50bde492..ebd2453c 100644 --- a/src/shaders/DtsTexture.hx +++ b/src/shaders/DtsTexture.hx @@ -4,6 +4,10 @@ class DtsTexture extends hxsl.Shader { static var SRC = { @input var input:{ var uv:Vec2; + var normal:Vec3; + }; + @global var global:{ + @perObject var modelView:Mat4; }; @const var additive:Bool; @const var killAlpha:Bool; @@ -14,8 +18,10 @@ class DtsTexture extends hxsl.Shader { var calculatedUV:Vec2; var pixelColor:Vec4; var specColor:Vec3; + var transformedNormal:Vec3; function vertex() { calculatedUV = input.uv; + transformedNormal = (input.normal * global.modelView.mat3()); } function fragment() { var c = texture.get(calculatedUV); diff --git a/src/shapes/Tornado.hx b/src/shapes/Tornado.hx index 4a1cc5ba..e5c89a6c 100644 --- a/src/shapes/Tornado.hx +++ b/src/shapes/Tornado.hx @@ -49,8 +49,8 @@ class Tornado extends ForceObject { this.soundChannel = AudioManager.playSound(ResourceLoader.getResource("data/sound/tornado.wav", ResourceLoader.getAudio, this.soundResources), new Vector(1e8, 1e8, 1e8), true); for (material in this.materials) { - // material.blendMode = Alpha; - material.mainPass.culling = h3d.mat.Data.Face.None; + material.blendMode = Alpha; + // material.mainPass.culling = h3d.mat.Data.Face.None; } }