Skip to main content

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.Unlit
  • MaterialPreset.Lit

Use enum values, not numeric literals.


Scene3D Rules

  • Renderer3D.Render(scene) only inside OnFrame
  • One Camera3D per entity
  • One ModelRenderer per entity
  • One DirectionalLight per entity

Next Steps