mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
bugfixes and nuke pbr
This commit is contained in:
parent
397a614bb7
commit
04c8498a28
12 changed files with 57 additions and 28 deletions
1
compile.bat
Normal file
1
compile.bat
Normal 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"
|
||||||
|
|
@ -305,6 +305,7 @@ class DifBuilder {
|
||||||
} else {
|
} else {
|
||||||
material = Material.create();
|
material = Material.create();
|
||||||
}
|
}
|
||||||
|
material.shadows = false;
|
||||||
// material.mainPass.addShader(new h3d.shader.pbr.PropsValues(1, 0, 0, 1));
|
// material.mainPass.addShader(new h3d.shader.pbr.PropsValues(1, 0, 0, 1));
|
||||||
// material.mainPass.wireframe = true;
|
// material.mainPass.wireframe = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -366,14 +366,15 @@ class DtsObject extends GameObject {
|
||||||
// // TODO TRANSPARENCY SHIT
|
// // TODO TRANSPARENCY SHIT
|
||||||
if (flags & 8 > 0) {
|
if (flags & 8 > 0) {
|
||||||
material.blendMode = BlendMode.Add;
|
material.blendMode = BlendMode.Add;
|
||||||
material.mainPass.setPassName("overlay");
|
// material.mainPass.setPassName("overlay");
|
||||||
// material.textureShader.additive = true;
|
// material.textureShader.additive = true;
|
||||||
}
|
}
|
||||||
if (flags & 16 > 0)
|
if (flags & 16 > 0)
|
||||||
material.blendMode = BlendMode.Sub;
|
material.blendMode = BlendMode.Sub;
|
||||||
|
|
||||||
if (flags & 32 > 0) {
|
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);
|
// var pbrprops = material.mainPass.getShader(h3d.shader.pbr.PropsValues);
|
||||||
// pbrprops.emissiveValue = 1;
|
// pbrprops.emissiveValue = 1;
|
||||||
// pbrprops.roughnessValue = 1;
|
// pbrprops.roughnessValue = 1;
|
||||||
|
|
@ -386,6 +387,8 @@ class DtsObject extends GameObject {
|
||||||
// }
|
// }
|
||||||
// ((flags & 32) || environmentMaterial) ? new Materia
|
// ((flags & 32) || environmentMaterial) ? new Materia
|
||||||
|
|
||||||
|
material.shadows = false;
|
||||||
|
|
||||||
// material.mainPass.addShader(new AlphaMult());
|
// material.mainPass.addShader(new AlphaMult());
|
||||||
|
|
||||||
this.materials.push(material);
|
this.materials.push(material);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package src;
|
||||||
|
|
||||||
import src.DtsObject;
|
import src.DtsObject;
|
||||||
import h3d.Vector;
|
import h3d.Vector;
|
||||||
import h3d.scene.CustomObject;
|
|
||||||
|
|
||||||
enum ForceType {
|
enum ForceType {
|
||||||
NoForce;
|
NoForce;
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ class InstanceManager {
|
||||||
for (instance in opaqueinstances) { // Draw the opaque shit first
|
for (instance in opaqueinstances) { // Draw the opaque shit first
|
||||||
var transform = instance.emptyObj.getAbsPos().clone();
|
var transform = instance.emptyObj.getAbsPos().clone();
|
||||||
minfo.meshbatch.material.mainPass.setPassName(minfo.mesh.material.mainPass.name);
|
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.setTransform(transform);
|
||||||
minfo.meshbatch.emitInstance();
|
minfo.meshbatch.emitInstance();
|
||||||
}
|
}
|
||||||
|
|
@ -52,8 +53,10 @@ class InstanceManager {
|
||||||
var dtsShader = minfo.transparencymeshbatch.material.mainPass.getShader(h3d.shader.Texture);
|
var dtsShader = minfo.transparencymeshbatch.material.mainPass.getShader(h3d.shader.Texture);
|
||||||
minfo.transparencymeshbatch.material.blendMode = Alpha;
|
minfo.transparencymeshbatch.material.blendMode = Alpha;
|
||||||
minfo.transparencymeshbatch.material.color.a = instance.gameObject.currentOpacity;
|
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.shadersChanged = true;
|
||||||
|
minfo.transparencymeshbatch.material.mainPass.enableLights = minfo.mesh.material.mainPass.enableLights;
|
||||||
|
// minfo.transparencymeshbatch.material.mainPass.depthWrite = false;
|
||||||
// if (dtsShader != null) {
|
// if (dtsShader != null) {
|
||||||
// dtsShader.currentOpacity = instance.gameObject.currentOpacity;
|
// dtsShader.currentOpacity = instance.gameObject.currentOpacity;
|
||||||
// minfo.transparencymeshbatch.shadersChanged = true;
|
// minfo.transparencymeshbatch.shadersChanged = true;
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ class Main extends hxd.App {
|
||||||
}
|
}
|
||||||
|
|
||||||
static function main() {
|
static function main() {
|
||||||
h3d.mat.PbrMaterialSetup.set();
|
// h3d.mat.PbrMaterialSetup.set();
|
||||||
new Main();
|
new Main();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package src;
|
package src;
|
||||||
|
|
||||||
|
import h3d.scene.Mesh;
|
||||||
import h3d.col.Bounds;
|
import h3d.col.Bounds;
|
||||||
import collision.CollisionEntity;
|
import collision.CollisionEntity;
|
||||||
import shapes.StartPad;
|
import shapes.StartPad;
|
||||||
|
|
@ -30,7 +31,6 @@ import h3d.col.ObjectCollider;
|
||||||
import h3d.col.Collider.GroupCollider;
|
import h3d.col.Collider.GroupCollider;
|
||||||
import h3d.Vector;
|
import h3d.Vector;
|
||||||
import h3d.mat.Material;
|
import h3d.mat.Material;
|
||||||
import h3d.scene.CustomObject;
|
|
||||||
import h3d.prim.Sphere;
|
import h3d.prim.Sphere;
|
||||||
import h3d.scene.Object;
|
import h3d.scene.Object;
|
||||||
import src.CameraController;
|
import src.CameraController;
|
||||||
|
|
@ -164,7 +164,8 @@ class Marble extends GameObject {
|
||||||
geom.addUVs();
|
geom.addUVs();
|
||||||
var marbleTexture = ResourceLoader.loader.load("data/shapes/balls/base.marble.png").toTexture();
|
var marbleTexture = ResourceLoader.loader.load("data/shapes/balls/base.marble.png").toTexture();
|
||||||
var marbleMaterial = Material.create(marbleTexture);
|
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);
|
obj.scale(_radius);
|
||||||
|
|
||||||
this.velocity = new Vector();
|
this.velocity = new Vector();
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import src.MarbleGame;
|
||||||
import gui.EndGameGui;
|
import gui.EndGameGui;
|
||||||
import sdl.Cursor;
|
import sdl.Cursor;
|
||||||
import src.ForceObject;
|
import src.ForceObject;
|
||||||
import h3d.scene.pbr.DirLight;
|
import h3d.scene.fwd.DirLight;
|
||||||
import h3d.col.Bounds;
|
import h3d.col.Bounds;
|
||||||
import triggers.HelpTrigger;
|
import triggers.HelpTrigger;
|
||||||
import triggers.InBoundsTrigger;
|
import triggers.InBoundsTrigger;
|
||||||
|
|
@ -54,7 +54,6 @@ import hxd.Key;
|
||||||
import h3d.Vector;
|
import h3d.Vector;
|
||||||
import src.InteriorObject;
|
import src.InteriorObject;
|
||||||
import h3d.scene.Scene;
|
import h3d.scene.Scene;
|
||||||
import h3d.scene.CustomObject;
|
|
||||||
import collision.CollisionWorld;
|
import collision.CollisionWorld;
|
||||||
import src.Marble;
|
import src.Marble;
|
||||||
|
|
||||||
|
|
@ -153,9 +152,9 @@ class MarbleWorld extends Scheduler {
|
||||||
this.instanceManager = new InstanceManager(scene);
|
this.instanceManager = new InstanceManager(scene);
|
||||||
this.particleManager = new ParticleManager(cast this);
|
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) {
|
for (element in mission.root.elements) {
|
||||||
if (element._type != MissionElementType.Sun)
|
if (element._type != MissionElementType.Sun)
|
||||||
|
|
@ -172,7 +171,7 @@ class MarbleWorld extends Scheduler {
|
||||||
scene.lightSystem.ambientLight.load(ambientColor);
|
scene.lightSystem.ambientLight.load(ambientColor);
|
||||||
|
|
||||||
var sunlight = new DirLight(sunDirection, scene);
|
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];
|
// var skyElement:MissionElementSky = cast this.mission.root.elements.filter((element) -> element._type == MissionElementType.Sky)[0];
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,8 @@ class ParticleManager {
|
||||||
particleShader.scale = instance.scale;
|
particleShader.scale = instance.scale;
|
||||||
particleShader.rotation = instance.rotation;
|
particleShader.rotation = instance.rotation;
|
||||||
batch.meshBatch.material.blendMode = instance.o.blending;
|
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.material.color.load(instance.color);
|
||||||
batch.meshBatch.shadersChanged = true;
|
batch.meshBatch.shadersChanged = true;
|
||||||
batch.meshBatch.setScale(instance.scale);
|
batch.meshBatch.setScale(instance.scale);
|
||||||
|
|
@ -324,8 +325,9 @@ class ParticleManager {
|
||||||
var mat = Material.create(particleData.texture);
|
var mat = Material.create(particleData.texture);
|
||||||
// matshader.texture = mat.texture;
|
// matshader.texture = mat.texture;
|
||||||
mat.mainPass.enableLights = false;
|
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.mainPass.addShader(new h3d.shader.pbr.PropsValues(1, 0, 0, 1));
|
||||||
|
mat.shadows = false;
|
||||||
mat.texture.wrap = Wrap.Repeat;
|
mat.texture.wrap = Wrap.Repeat;
|
||||||
var billboardShader = new Billboard();
|
var billboardShader = new Billboard();
|
||||||
mat.mainPass.addShader(billboardShader);
|
mat.mainPass.addShader(billboardShader);
|
||||||
|
|
|
||||||
10
src/Sky.hx
10
src/Sky.hx
|
|
@ -33,11 +33,11 @@ class Sky extends Object {
|
||||||
skyMesh.material.mainPass.enableLights = false;
|
skyMesh.material.mainPass.enableLights = false;
|
||||||
skyMesh.material.receiveShadows = false;
|
skyMesh.material.receiveShadows = false;
|
||||||
skyMesh.material.blendMode = None;
|
skyMesh.material.blendMode = None;
|
||||||
var pbrprops = skyMesh.material.mainPass.getShader(PropsValues);
|
// var pbrprops = skyMesh.material.mainPass.getShader(PropsValues);
|
||||||
pbrprops.emissiveValue = 1;
|
// pbrprops.emissiveValue = 1;
|
||||||
pbrprops.roughnessValue = 0;
|
// pbrprops.roughnessValue = 0;
|
||||||
pbrprops.occlusionValue = 0;
|
// pbrprops.occlusionValue = 0;
|
||||||
pbrprops.metalnessValue = 1;
|
// pbrprops.metalnessValue = 1;
|
||||||
|
|
||||||
skyMesh.scale(3500);
|
skyMesh.scale(3500);
|
||||||
var env = new Environment(texture);
|
var env = new Environment(texture);
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,17 @@ class EndGameGui extends GuiControl {
|
||||||
var expo32 = new BitmapFont(expo32fontdata.entry);
|
var expo32 = new BitmapFont(expo32fontdata.entry);
|
||||||
@:privateAccess expo32.loader = ResourceLoader.loader;
|
@: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);
|
var congrats = new GuiText(expo50);
|
||||||
congrats.text.textColor = 0xffff00;
|
congrats.text.textColor = 0xffff00;
|
||||||
congrats.text.text = "Final Time:";
|
congrats.text.text = "Final Time:";
|
||||||
|
|
@ -71,9 +82,9 @@ class EndGameGui extends GuiControl {
|
||||||
finishMessage.extent = new Vector(200, 100);
|
finishMessage.extent = new Vector(200, 100);
|
||||||
pg.addChild(finishMessage);
|
pg.addChild(finishMessage);
|
||||||
|
|
||||||
var leftColumn = new GuiText(domcasual32);
|
var leftColumn = new GuiMLText(domcasual32, mlFontLoader);
|
||||||
leftColumn.text.textColor = 0x000000;
|
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.text.filter = new DropShadow(1.414, 0.785, 0xffffff, 1, 0, 0.4, 1, true);
|
||||||
leftColumn.position = new Vector(108, 103);
|
leftColumn.position = new Vector(108, 103);
|
||||||
leftColumn.extent = new Vector(208, 50);
|
leftColumn.extent = new Vector(208, 50);
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
package gui;
|
package gui;
|
||||||
|
|
||||||
|
import h3d.shader.AlphaMult;
|
||||||
|
import h3d.shader.ColorKey;
|
||||||
import hxd.snd.WavData;
|
import hxd.snd.WavData;
|
||||||
import gui.GuiControl.HorizSizing;
|
import gui.GuiControl.HorizSizing;
|
||||||
import src.TimeState;
|
import src.TimeState;
|
||||||
import format.gif.Data.Block;
|
import format.gif.Data.Block;
|
||||||
import hxd.res.BitmapFont;
|
import hxd.res.BitmapFont;
|
||||||
import h2d.Text;
|
import h2d.Text;
|
||||||
import h3d.shader.pbr.PropsValues;
|
|
||||||
import h3d.Vector;
|
import h3d.Vector;
|
||||||
import hxd.fmt.hmd.Data.AnimationEvent;
|
import hxd.fmt.hmd.Data.AnimationEvent;
|
||||||
import h2d.Tile;
|
import h2d.Tile;
|
||||||
|
|
@ -201,8 +202,8 @@ class PlayGui {
|
||||||
playGuiCtrl.addChild(gemCountNumbers[3]);
|
playGuiCtrl.addChild(gemCountNumbers[3]);
|
||||||
|
|
||||||
this.gemImageScene = new h3d.scene.Scene();
|
this.gemImageScene = new h3d.scene.Scene();
|
||||||
var gemImageRenderer = cast(this.gemImageScene.renderer, h3d.scene.pbr.Renderer);
|
// var gemImageRenderer = cast(this.gemImageScene.renderer, h3d.scene.Renderer);
|
||||||
gemImageRenderer.skyMode = Hide;
|
// gemImageRenderer.skyMode = Hide;
|
||||||
|
|
||||||
gemImageSceneTarget = new Texture(60, 60, [Target]);
|
gemImageSceneTarget = new Texture(60, 60, [Target]);
|
||||||
gemImageSceneTarget.depthBuffer = new DepthBuffer(60, 60);
|
gemImageSceneTarget.depthBuffer = new DepthBuffer(60, 60);
|
||||||
|
|
@ -210,6 +211,8 @@ class PlayGui {
|
||||||
gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d);
|
gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d);
|
||||||
gemImageSceneTargetBitmap.x = -8;
|
gemImageSceneTargetBitmap.x = -8;
|
||||||
gemImageSceneTargetBitmap.y = -8;
|
gemImageSceneTargetBitmap.y = -8;
|
||||||
|
// gemImageSceneTargetBitmap.blendMode = None;
|
||||||
|
// gemImageSceneTargetBitmap.addShader(new ColorKey());
|
||||||
|
|
||||||
gemImageObject = new DtsObject();
|
gemImageObject = new DtsObject();
|
||||||
gemImageObject.dtsPath = "data/shapes/items/gem.dts";
|
gemImageObject.dtsPath = "data/shapes/items/gem.dts";
|
||||||
|
|
@ -220,7 +223,13 @@ class PlayGui {
|
||||||
// ["base.gem"] = color + ".gem";
|
// ["base.gem"] = color + ".gem";
|
||||||
gemImageObject.init(null);
|
gemImageObject.init(null);
|
||||||
for (mat in gemImageObject.materials) {
|
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);
|
gemImageScene.addChild(gemImageObject);
|
||||||
var gemImageCenter = gemImageObject.getBounds().getCenter();
|
var gemImageCenter = gemImageObject.getBounds().getCenter();
|
||||||
|
|
@ -237,8 +246,8 @@ class PlayGui {
|
||||||
playGuiCtrl.addChild(powerupBox);
|
playGuiCtrl.addChild(powerupBox);
|
||||||
|
|
||||||
this.powerupImageScene = new h3d.scene.Scene();
|
this.powerupImageScene = new h3d.scene.Scene();
|
||||||
var powerupImageRenderer = cast(this.powerupImageScene.renderer, h3d.scene.pbr.Renderer);
|
// var powerupImageRenderer = cast(this.powerupImageScene.renderer, h3d.scene.pbr.Renderer);
|
||||||
powerupImageRenderer.skyMode = Hide;
|
// powerupImageRenderer.skyMode = Hide;
|
||||||
|
|
||||||
powerupImageSceneTarget = new Texture(68, 67, [Target]);
|
powerupImageSceneTarget = new Texture(68, 67, [Target]);
|
||||||
powerupImageSceneTarget.depthBuffer = new DepthBuffer(68, 67);
|
powerupImageSceneTarget.depthBuffer = new DepthBuffer(68, 67);
|
||||||
|
|
@ -365,7 +374,7 @@ class PlayGui {
|
||||||
powerupImageObject.showSequences = false;
|
powerupImageObject.showSequences = false;
|
||||||
powerupImageObject.init(null);
|
powerupImageObject.init(null);
|
||||||
for (mat in powerupImageObject.materials) {
|
for (mat in powerupImageObject.materials) {
|
||||||
mat.mainPass.addShader(new PropsValues(1, 0, 0, 1));
|
mat.mainPass.enableLights = false;
|
||||||
}
|
}
|
||||||
powerupImageScene.addChild(powerupImageObject);
|
powerupImageScene.addChild(powerupImageObject);
|
||||||
var powerupImageCenter = powerupImageObject.getBounds().getCenter();
|
var powerupImageCenter = powerupImageObject.getBounds().getCenter();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue