Scene3D Basics
Scene3D uses built-in components and material presets for fast setup.
Canonical Setup
scene is Scene.Create();
cameraEntity is scene.CreateEntity("Camera");
camera is cameraEntity.AddCamera3D();
camera.SetPerspective(60.0, 0.1, 200.0);
camera.SetPrimary(true);
sunEntity is scene.CreateEntity("Sun");
sun is sunEntity.AddDirectionalLight();
sun.SetColor(Color(1.0, 1.0, 1.0, 1.0));
sun.SetIntensity(1.2);
shipEntity is scene.CreateEntity("Ship");
shipRenderer is shipEntity.AddModelRenderer();
shipRenderer.SetMesh(Mesh.Load("examples/assets/ship.obj"));
shipRenderer.SetMaterialStyle(MaterialPreset.Lit);
shipRenderer.SetColor(Color(1.0, 1.0, 1.0, 1.0));
renderer is Renderer3D.Create();
renderer.SetCamera(camera);
canvas(window) {
OnFrame {
renderer.Render(scene);
}
}
MaterialPreset Contract
MaterialPreset.UnlitMaterialPreset.Lit
Use enum values, not numeric literals.
Scene3D Rules
Renderer3D.Render(scene)only insideOnFrame- One
Camera3Dper entity - One
ModelRendererper entity - One
DirectionalLightper entity
Next Steps
- Lighting and MaterialPreset - Lit vs Unlit behavior
- Mesh Builder - Build 3D meshes in script