summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2024-10-19 17:34:26 +0500
committerilotterytea <iltsu@alright.party>2024-10-19 17:34:26 +0500
commit64d3c48c743883bdf9ca74d7b1954a649814222e (patch)
treec861aacf711c198cf6af6525b78cc1dc10f00d7e /core
parent3ad154dee870dc38baeeec17094d9aa77c4639ac (diff)
feat: a lightweight skybox instead of a massive scene
Diffstat (limited to 'core')
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/MenuScreen.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java b/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java
index 1154b25..365dd5b 100644
--- a/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java
+++ b/core/src/kz/ilotterytea/maxon/screens/MenuScreen.java
@@ -1,6 +1,7 @@
package kz.ilotterytea.maxon.screens;
import com.badlogic.gdx.*;
+import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.files.FileHandle;
@@ -30,9 +31,9 @@ import net.mgsx.gltf.scene3d.attributes.PBRCubemapAttribute;
import net.mgsx.gltf.scene3d.attributes.PBRTextureAttribute;
import net.mgsx.gltf.scene3d.lights.DirectionalShadowLight;
import net.mgsx.gltf.scene3d.lights.PointLightEx;
-import net.mgsx.gltf.scene3d.scene.Scene;
-import net.mgsx.gltf.scene3d.scene.SceneAsset;
import net.mgsx.gltf.scene3d.scene.SceneManager;
+import net.mgsx.gltf.scene3d.scene.SceneSkybox;
+import net.mgsx.gltf.scene3d.utils.EnvironmentUtil;
import net.mgsx.gltf.scene3d.utils.IBLBuilder;
import java.util.ArrayList;
@@ -404,11 +405,7 @@ public class MenuScreen implements Screen {
}
private void create3D() {
- SceneAsset sceneAsset = game.assetManager.get("models/scenes/living_room.glb", SceneAsset.class);
- Scene scene = new Scene(sceneAsset.scene);
-
sceneManager = new SceneManager();
- sceneManager.addScene(scene);
camera = new PerspectiveCamera(60f, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
camera.near = 1f;
@@ -438,7 +435,6 @@ public class MenuScreen implements Screen {
// setup quick IBL (image based lighting)
IBLBuilder iblBuilder = IBLBuilder.createOutdoor(light);
- Cubemap environmentCubemap = iblBuilder.buildEnvMap(1024);
Cubemap diffuseCubemap = iblBuilder.buildIrradianceMap(256);
Cubemap specularCubemap = iblBuilder.buildRadianceMap(10);
iblBuilder.dispose();
@@ -449,5 +445,14 @@ public class MenuScreen implements Screen {
sceneManager.environment.set(new PBRTextureAttribute(PBRTextureAttribute.BRDFLUTTexture, brdfLUT));
sceneManager.environment.set(PBRCubemapAttribute.createSpecularEnv(specularCubemap));
sceneManager.environment.set(PBRCubemapAttribute.createDiffuseEnv(diffuseCubemap));
+
+ Cubemap environmentCubemap = EnvironmentUtil.createCubemap(
+ new InternalFileHandleResolver(),
+ "skyboxes/menu/",
+ ".png",
+ EnvironmentUtil.FACE_NAMES_NEG_POS
+ );
+
+ sceneManager.setSkyBox(new SceneSkybox(environmentCubemap));
}
}