fix some bugs

This commit is contained in:
RandomityGuy 2022-12-10 21:20:38 +05:30
parent dac04ceb7c
commit f3fdc4c52a
5 changed files with 29 additions and 5 deletions

View file

@ -60,6 +60,7 @@ class InstanceManager {
dtsShader.currentOpacity = instance.gameObject.currentOpacity;
}
var transform = instance.emptyObj.getAbsPos();
minfo.meshbatch.shadersChanged = true;
minfo.meshbatch.material.mainPass.setPassName(minfo.mesh.material.mainPass.name);
minfo.meshbatch.material.mainPass.enableLights = minfo.mesh.material.mainPass.enableLights;
minfo.meshbatch.setTransform(transform);
@ -67,7 +68,7 @@ class InstanceManager {
}
}
if (minfo.transparencymeshbatch != null) {
var transparentinstances = visibleinstances.filter(x -> x.gameObject.currentOpacity != 1);
var transparentinstances = visibleinstances.filter(x -> x.gameObject.currentOpacity != 1 && x.gameObject.currentOpacity != 0); // Filter out all zero opacity things too
minfo.transparencymeshbatch.begin(transparentinstances.length);
for (instance in transparentinstances) { // Non opaque shit
var dtsShader = minfo.transparencymeshbatch.material.mainPass.getShader(DtsTexture);

View file

@ -267,6 +267,8 @@ class MarbleWorld extends Scheduler {
worker.loadFile(file);
}
this.scene.camera.zFar = Math.max(4000, Std.parseFloat(this.skyElement.visibledistance));
this.sky = new Sky();
sky.dmlPath = "data/skies/sky_day.dml";
@ -312,6 +314,8 @@ class MarbleWorld extends Scheduler {
"shapes/pads/red.jpg",
"shapes/pads/blue.jpg",
"shapes/pads/green.jpg",
"shapes/items/gem.dts", // Ew ew
"shapes/items/gemshine.png",
];
for (file in marblefiles) {
worker.loadFile(file);

View file

@ -51,8 +51,10 @@ class Sky extends Object {
// env.compute();
// var renderer = cast(level.scene.renderer, h3d.scene.pbr.Renderer);
var shad = new Skybox(texture);
skyMesh.material.mainPass.removeShader(skyMesh.material.textureShader);
skyMesh.material.mainPass.addShader(shad);
skyMesh.material.mainPass.depthWrite = false;
skyMesh.material.mainPass.depth(false, h3d.mat.Data.Compare.LessEqual);
cubemap = texture;
onFinish();
});

View file

@ -3,21 +3,38 @@ package shaders;
class Skybox extends hxsl.Shader {
static var SRC = {
var pixelColor:Vec4;
var transformedNormal:Vec3;
var transformedPosition:Vec3;
var projectedPosition:Vec4;
@param var texture:SamplerCube;
@global var camera:{
var position:Vec3;
var viewProj:Mat4;
var view:Mat4;
var proj:Mat4;
var projFlip:Float;
};
@input var input:{
var position:Vec3;
};
@global var global:{
@perObject var modelView:Mat4;
};
var output:{
var position:Vec4;
var color:Vec4;
var depth:Float;
};
var projNorm:Vec3;
function __init__() {
transformedPosition = input.position * global.modelView.mat3x4();
projectedPosition = vec4(transformedPosition, 1) * camera.viewProj;
}
function vertex() {
projNorm = transformedPosition - camera.position;
output.position = projectedPosition * vec4(1, camera.projFlip, 1, 1);
}
function fragment() {
pixelColor.rgba = texture.get(normalize(projNorm)).rgba;
output.color = texture.get(normalize(projNorm)).rgba;
}
}

View file

@ -43,8 +43,8 @@ class Trigger extends GameObject {
var mat = new Matrix();
var quat = MisParser.parseRotation(element.rotation);
// quat.x = -quat.x;
// quat.w = -quat.w;
quat.x = -quat.x;
quat.w = -quat.w;
quat.toMatrix(mat);
var scale = MisParser.parseVector3(element.scale);
mat.scale(scale.x, scale.y, scale.z);