mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2026-04-05 02:18:04 +00:00
skybox shader for real now
This commit is contained in:
parent
6e6f2c9fb9
commit
ea114423a9
4 changed files with 46 additions and 17 deletions
24
src/Main.hx
24
src/Main.hx
|
|
@ -65,14 +65,14 @@ class Main extends hxd.App {
|
|||
var mission = new Mission();
|
||||
mission.root = mis.root;
|
||||
|
||||
canvas = new Canvas(s2d);
|
||||
// canvas = new Canvas(s2d);
|
||||
|
||||
canvas.setContent(new MainMenuGui());
|
||||
// canvas.setContent(new MainMenuGui());
|
||||
|
||||
// world = new MarbleWorld(s3d, s2d, mission);
|
||||
world = new MarbleWorld(s3d, s2d, mission);
|
||||
|
||||
// world.init();
|
||||
// world.start();
|
||||
world.init();
|
||||
world.start();
|
||||
|
||||
fpsCounter = new Text(DefaultFont.get(), s2d);
|
||||
fpsCounter.y = 40;
|
||||
|
|
@ -81,17 +81,17 @@ class Main extends hxd.App {
|
|||
|
||||
override function update(dt:Float) {
|
||||
super.update(dt);
|
||||
var wnd = Window.getInstance();
|
||||
var mouseState:MouseState = {
|
||||
position: new Vector(wnd.mouseX, wnd.mouseY)
|
||||
}
|
||||
canvas.update(dt, mouseState);
|
||||
// world.update(dt);
|
||||
// var wnd = Window.getInstance();
|
||||
// var mouseState:MouseState = {
|
||||
// position: new Vector(wnd.mouseX, wnd.mouseY)
|
||||
// }
|
||||
// canvas.update(dt, mouseState);
|
||||
world.update(dt);
|
||||
fpsCounter.text = 'FPS: ${this.engine.fps}';
|
||||
}
|
||||
|
||||
override function render(e:h3d.Engine) {
|
||||
// this.world.render(e);
|
||||
this.world.render(e);
|
||||
super.render(e);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ class MarbleWorld extends Scheduler {
|
|||
this.marble.camera.oob = false;
|
||||
this.marble.mode = Start;
|
||||
this.marble.startPad = cast startquat.pad;
|
||||
// sky.follow = marble;
|
||||
sky.follow = marble;
|
||||
|
||||
var missionInfo:MissionElementScriptObject = cast this.mission.root.elements.filter((element) -> element._type == MissionElementType.ScriptObject
|
||||
&& element._name == "MissionInfo")[0];
|
||||
|
|
@ -525,6 +525,7 @@ class MarbleWorld extends Scheduler {
|
|||
if (element.datablock == "OutOfBoundsTrigger") {
|
||||
trigger = new OutOfBoundsTrigger(element, cast this);
|
||||
} else if (element.datablock == "InBoundsTrigger") {
|
||||
return;
|
||||
trigger = new InBoundsTrigger(element, cast this);
|
||||
} else if (element.datablock == "HelpTrigger") {
|
||||
trigger = new HelpTrigger(element, cast this);
|
||||
|
|
@ -587,7 +588,7 @@ class MarbleWorld extends Scheduler {
|
|||
this.scene.addChild(marble.camera);
|
||||
this.marble = marble;
|
||||
// Ugly hack
|
||||
// sky.follow = marble;
|
||||
sky.follow = marble;
|
||||
}
|
||||
this.collisionWorld.addMovingEntity(marble.collider);
|
||||
this.scene.addChild(marble);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package src;
|
||||
|
||||
import shaders.Skybox;
|
||||
import h3d.shader.pbr.PropsValues;
|
||||
import h3d.shader.AmbientLight;
|
||||
import h3d.scene.pbr.Environment;
|
||||
|
|
@ -38,13 +39,13 @@ class Sky extends Object {
|
|||
pbrprops.occlusionValue = 0;
|
||||
pbrprops.metalnessValue = 1;
|
||||
|
||||
skyMesh.scale(3000);
|
||||
skyMesh.scale(3500);
|
||||
var env = new Environment(texture);
|
||||
env.compute();
|
||||
// var renderer = cast(level.scene.renderer, h3d.scene.pbr.Renderer);
|
||||
var shad = new CubeMap(texture);
|
||||
var shad = new Skybox(texture);
|
||||
skyMesh.material.mainPass.addShader(shad);
|
||||
skyMesh.material.shadows = false;
|
||||
// skyMesh.material.shadows = false;
|
||||
}
|
||||
|
||||
function createSkyboxCubeTextured(dmlPath:String) {
|
||||
|
|
|
|||
27
src/shaders/Skybox.hx
Normal file
27
src/shaders/Skybox.hx
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
package shaders;
|
||||
|
||||
class Skybox extends hxsl.Shader {
|
||||
static var SRC = {
|
||||
var pixelColor:Vec4;
|
||||
var transformedNormal:Vec3;
|
||||
var transformedPosition:Vec3;
|
||||
@param var texture:SamplerCube;
|
||||
@global var camera:{
|
||||
var position:Vec3;
|
||||
var viewProj:Mat4;
|
||||
var view:Mat4;
|
||||
var proj:Mat4;
|
||||
};
|
||||
function vertex() {
|
||||
transformedNormal = transformedPosition - camera.position;
|
||||
}
|
||||
function fragment() {
|
||||
pixelColor.rgb = texture.get(normalize(transformedNormal)).rgb;
|
||||
}
|
||||
}
|
||||
|
||||
public function new(texture) {
|
||||
super();
|
||||
this.texture = texture;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue