bugfixes and nuke pbr

This commit is contained in:
RandomityGuy 2021-06-23 17:49:13 +05:30
parent 397a614bb7
commit 04c8498a28
12 changed files with 57 additions and 28 deletions

1
compile.bat Normal file
View file

@ -0,0 +1 @@
cl native\marblegame.c /Fe:marblegame.exe /Ox -I "D:\C Projects\Haxe\hl-1.11.0-win\include" -I native "D:\repos\Hashlink\hashlink\x64\Release\libhl.lib" "D:\repos\Hashlink\hashlink\x64\Release\fmt.lib" "D:\repos\Hashlink\hashlink\x64\Release\ui.lib" "D:\repos\Hashlink\hashlink\x64\Release\openal.lib" "D:\repos\Hashlink\hashlink\x64\Release\sdl.lib"

View file

@ -305,6 +305,7 @@ class DifBuilder {
} else {
material = Material.create();
}
material.shadows = false;
// material.mainPass.addShader(new h3d.shader.pbr.PropsValues(1, 0, 0, 1));
// material.mainPass.wireframe = true;

View file

@ -366,14 +366,15 @@ class DtsObject extends GameObject {
// // TODO TRANSPARENCY SHIT
if (flags & 8 > 0) {
material.blendMode = BlendMode.Add;
material.mainPass.setPassName("overlay");
// material.mainPass.setPassName("overlay");
// material.textureShader.additive = true;
}
if (flags & 16 > 0)
material.blendMode = BlendMode.Sub;
if (flags & 32 > 0) {
material.mainPass.setPassName("overlay");
material.mainPass.enableLights = false;
// material.mainPass.setPassName("overlay");
// var pbrprops = material.mainPass.getShader(h3d.shader.pbr.PropsValues);
// pbrprops.emissiveValue = 1;
// pbrprops.roughnessValue = 1;
@ -386,6 +387,8 @@ class DtsObject extends GameObject {
// }
// ((flags & 32) || environmentMaterial) ? new Materia
material.shadows = false;
// material.mainPass.addShader(new AlphaMult());
this.materials.push(material);

View file

@ -2,7 +2,6 @@ package src;
import src.DtsObject;
import h3d.Vector;
import h3d.scene.CustomObject;
enum ForceType {
NoForce;

View file

@ -41,6 +41,7 @@ class InstanceManager {
for (instance in opaqueinstances) { // Draw the opaque shit first
var transform = instance.emptyObj.getAbsPos().clone();
minfo.meshbatch.material.mainPass.setPassName(minfo.mesh.material.mainPass.name);
minfo.meshbatch.material.mainPass.enableLights = minfo.mesh.material.mainPass.enableLights;
minfo.meshbatch.setTransform(transform);
minfo.meshbatch.emitInstance();
}
@ -52,8 +53,10 @@ class InstanceManager {
var dtsShader = minfo.transparencymeshbatch.material.mainPass.getShader(h3d.shader.Texture);
minfo.transparencymeshbatch.material.blendMode = Alpha;
minfo.transparencymeshbatch.material.color.a = instance.gameObject.currentOpacity;
minfo.transparencymeshbatch.material.mainPass.setPassName(minfo.mesh.material.mainPass.name);
// minfo.transparencymeshbatch.material.mainPass.setPassName(minfo.mesh.material.mainPass.name);
minfo.transparencymeshbatch.shadersChanged = true;
minfo.transparencymeshbatch.material.mainPass.enableLights = minfo.mesh.material.mainPass.enableLights;
// minfo.transparencymeshbatch.material.mainPass.depthWrite = false;
// if (dtsShader != null) {
// dtsShader.currentOpacity = instance.gameObject.currentOpacity;
// minfo.transparencymeshbatch.shadersChanged = true;

View file

@ -40,7 +40,7 @@ class Main extends hxd.App {
}
static function main() {
h3d.mat.PbrMaterialSetup.set();
// h3d.mat.PbrMaterialSetup.set();
new Main();
}
}

View file

@ -1,5 +1,6 @@
package src;
import h3d.scene.Mesh;
import h3d.col.Bounds;
import collision.CollisionEntity;
import shapes.StartPad;
@ -30,7 +31,6 @@ import h3d.col.ObjectCollider;
import h3d.col.Collider.GroupCollider;
import h3d.Vector;
import h3d.mat.Material;
import h3d.scene.CustomObject;
import h3d.prim.Sphere;
import h3d.scene.Object;
import src.CameraController;
@ -164,7 +164,8 @@ class Marble extends GameObject {
geom.addUVs();
var marbleTexture = ResourceLoader.loader.load("data/shapes/balls/base.marble.png").toTexture();
var marbleMaterial = Material.create(marbleTexture);
var obj = new CustomObject(geom, marbleMaterial, this);
marbleMaterial.shadows = false;
var obj = new Mesh(geom, marbleMaterial, this);
obj.scale(_radius);
this.velocity = new Vector();

View file

@ -4,7 +4,7 @@ import src.MarbleGame;
import gui.EndGameGui;
import sdl.Cursor;
import src.ForceObject;
import h3d.scene.pbr.DirLight;
import h3d.scene.fwd.DirLight;
import h3d.col.Bounds;
import triggers.HelpTrigger;
import triggers.InBoundsTrigger;
@ -54,7 +54,6 @@ import hxd.Key;
import h3d.Vector;
import src.InteriorObject;
import h3d.scene.Scene;
import h3d.scene.CustomObject;
import collision.CollisionWorld;
import src.Marble;
@ -153,9 +152,9 @@ class MarbleWorld extends Scheduler {
this.instanceManager = new InstanceManager(scene);
this.particleManager = new ParticleManager(cast this);
var renderer = cast(this.scene.renderer, h3d.scene.pbr.Renderer);
// var renderer = cast(this.scene.renderer, h3d.scene.pbr.Renderer);
renderer.skyMode = Hide;
// renderer.skyMode = Hide;
for (element in mission.root.elements) {
if (element._type != MissionElementType.Sun)
@ -172,7 +171,7 @@ class MarbleWorld extends Scheduler {
scene.lightSystem.ambientLight.load(ambientColor);
var sunlight = new DirLight(sunDirection, scene);
sunlight.color = directionalColor.multiply(2);
sunlight.color = directionalColor;
}
// var skyElement:MissionElementSky = cast this.mission.root.elements.filter((element) -> element._type == MissionElementType.Sky)[0];

View file

@ -291,7 +291,8 @@ class ParticleManager {
particleShader.scale = instance.scale;
particleShader.rotation = instance.rotation;
batch.meshBatch.material.blendMode = instance.o.blending;
batch.meshBatch.material.mainPass.setPassName("overlay");
batch.meshBatch.material.mainPass.depthWrite = false;
// batch.meshBatch.material.mainPass.setPassName("overlay");
batch.meshBatch.material.color.load(instance.color);
batch.meshBatch.shadersChanged = true;
batch.meshBatch.setScale(instance.scale);
@ -324,8 +325,9 @@ class ParticleManager {
var mat = Material.create(particleData.texture);
// matshader.texture = mat.texture;
mat.mainPass.enableLights = false;
mat.mainPass.setPassName("overlay");
// mat.mainPass.setPassName("overlay");
// mat.mainPass.addShader(new h3d.shader.pbr.PropsValues(1, 0, 0, 1));
mat.shadows = false;
mat.texture.wrap = Wrap.Repeat;
var billboardShader = new Billboard();
mat.mainPass.addShader(billboardShader);

View file

@ -33,11 +33,11 @@ class Sky extends Object {
skyMesh.material.mainPass.enableLights = false;
skyMesh.material.receiveShadows = false;
skyMesh.material.blendMode = None;
var pbrprops = skyMesh.material.mainPass.getShader(PropsValues);
pbrprops.emissiveValue = 1;
pbrprops.roughnessValue = 0;
pbrprops.occlusionValue = 0;
pbrprops.metalnessValue = 1;
// var pbrprops = skyMesh.material.mainPass.getShader(PropsValues);
// pbrprops.emissiveValue = 1;
// pbrprops.roughnessValue = 0;
// pbrprops.occlusionValue = 0;
// pbrprops.metalnessValue = 1;
skyMesh.scale(3500);
var env = new Environment(texture);

View file

@ -54,6 +54,17 @@ class EndGameGui extends GuiControl {
var expo32 = new BitmapFont(expo32fontdata.entry);
@:privateAccess expo32.loader = ResourceLoader.loader;
function mlFontLoader(text:String) {
switch (text) {
case "DomCasual32":
return domcasual32.toFont();
case "Arial14":
return arial14.toFont();
default:
return null;
}
}
var congrats = new GuiText(expo50);
congrats.text.textColor = 0xffff00;
congrats.text.text = "Final Time:";
@ -71,9 +82,9 @@ class EndGameGui extends GuiControl {
finishMessage.extent = new Vector(200, 100);
pg.addChild(finishMessage);
var leftColumn = new GuiText(domcasual32);
var leftColumn = new GuiMLText(domcasual32, mlFontLoader);
leftColumn.text.textColor = 0x000000;
leftColumn.text.text = "Qualify Time:\nGold Time:\nElapsed Time:\nBonus Time:";
leftColumn.text.text = 'Qualify Time:<br/>Gold Time:<br/>Elapsed Time:<br/>Bonus Time:<br/><font face="Arial14"><br/></font>Best Times:<br/>1. Nardo Polo<br/>2. Nardo Polo<br/>3. Nardo Polo';
leftColumn.text.filter = new DropShadow(1.414, 0.785, 0xffffff, 1, 0, 0.4, 1, true);
leftColumn.position = new Vector(108, 103);
leftColumn.extent = new Vector(208, 50);

View file

@ -1,12 +1,13 @@
package gui;
import h3d.shader.AlphaMult;
import h3d.shader.ColorKey;
import hxd.snd.WavData;
import gui.GuiControl.HorizSizing;
import src.TimeState;
import format.gif.Data.Block;
import hxd.res.BitmapFont;
import h2d.Text;
import h3d.shader.pbr.PropsValues;
import h3d.Vector;
import hxd.fmt.hmd.Data.AnimationEvent;
import h2d.Tile;
@ -201,8 +202,8 @@ class PlayGui {
playGuiCtrl.addChild(gemCountNumbers[3]);
this.gemImageScene = new h3d.scene.Scene();
var gemImageRenderer = cast(this.gemImageScene.renderer, h3d.scene.pbr.Renderer);
gemImageRenderer.skyMode = Hide;
// var gemImageRenderer = cast(this.gemImageScene.renderer, h3d.scene.Renderer);
// gemImageRenderer.skyMode = Hide;
gemImageSceneTarget = new Texture(60, 60, [Target]);
gemImageSceneTarget.depthBuffer = new DepthBuffer(60, 60);
@ -210,6 +211,8 @@ class PlayGui {
gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d);
gemImageSceneTargetBitmap.x = -8;
gemImageSceneTargetBitmap.y = -8;
// gemImageSceneTargetBitmap.blendMode = None;
// gemImageSceneTargetBitmap.addShader(new ColorKey());
gemImageObject = new DtsObject();
gemImageObject.dtsPath = "data/shapes/items/gem.dts";
@ -220,7 +223,13 @@ class PlayGui {
// ["base.gem"] = color + ".gem";
gemImageObject.init(null);
for (mat in gemImageObject.materials) {
mat.mainPass.addShader(new PropsValues(1, 0, 0, 1));
mat.mainPass.enableLights = false;
// Huge hacks
if (mat.blendMode != Add) {
var alphaShader = new h3d.shader.AlphaChannel();
mat.mainPass.addShader(alphaShader);
}
}
gemImageScene.addChild(gemImageObject);
var gemImageCenter = gemImageObject.getBounds().getCenter();
@ -237,8 +246,8 @@ class PlayGui {
playGuiCtrl.addChild(powerupBox);
this.powerupImageScene = new h3d.scene.Scene();
var powerupImageRenderer = cast(this.powerupImageScene.renderer, h3d.scene.pbr.Renderer);
powerupImageRenderer.skyMode = Hide;
// var powerupImageRenderer = cast(this.powerupImageScene.renderer, h3d.scene.pbr.Renderer);
// powerupImageRenderer.skyMode = Hide;
powerupImageSceneTarget = new Texture(68, 67, [Target]);
powerupImageSceneTarget.depthBuffer = new DepthBuffer(68, 67);
@ -365,7 +374,7 @@ class PlayGui {
powerupImageObject.showSequences = false;
powerupImageObject.init(null);
for (mat in powerupImageObject.materials) {
mat.mainPass.addShader(new PropsValues(1, 0, 0, 1));
mat.mainPass.enableLights = false;
}
powerupImageScene.addChild(powerupImageObject);
var powerupImageCenter = powerupImageObject.getBounds().getCenter();