Skip to main content

Scene

Type

Component

Default Usage

Every example below can be viewed with either the WebGPU (default) or the WebGL renderer — switch tabs to compare.

import { Scene } from 'react-three-lite'

function App() {
return (
<Scene
style={{ marginTop: '10px', width: '100%', height: '300px' }}
/>
)
}

Color As Background

import { Scene } from 'react-three-lite'

function App() {
return (
<Scene
style={{ marginTop: '10px', width: '100%', height: '400px' }}
bgColor="#98F5F9"
/>
)
}

Image As Background

import { Scene } from 'react-three-lite'

function App() {
return (
<Scene
style={{ marginTop: '10px', width: '100%', height: '300px' }}
bgImage="/images/examples/bg.jpg"
/>
)
}

Props

NameTypeDefaultDescription
modelValueTHREE.SceneTHREE.Sceneoptional The value will be the THREE.Scene instance from undefined after the components mounted.
rendererWebGPURenderer | WebGLRendereroptional Provide a custom renderer instance. Takes precedence over rendererType.
rendererType'webgpu' | 'webgl''webgpu'optional Renderer backend. 'webgpu' uses WebGPURenderer (falls back to the WebGL2 backend when WebGPU is unavailable), 'webgl' uses the classic WebGLRenderer.
bgColorStringoptional The background color of the scene.
bgImageStringoptional The background image of the scene.
cameraTHREE.CameraTHREE.PerspectiveCameraoptional Defaults to a PerspectiveCamera.
lightTHREE.LightTHREE.HemisphereLightoptional Defaults to a HemisphereLight.
axesHelperTHREE.AxesHelper | booleanTHREE.AxesHelperoptional Defaults to a AxesHelper, false to hide it.
gridHelperTHREE.GridHelper | booleanTHREE.GridHelperoptional Defaults to a GridHelper, false to hide it.
controlsOrbitControls | booleanOrbitControlsoptional Defaults to a OrbitControls, false to disable it.

Events

NameParametersDescription
onCreated(scene, {camera, light, axesHelper, controls}) => voidCalled when the component is mounted and the scene is created.
onBeforeFrame(renderer: WebGPURenderer | WebGLRenderer, scene: THREE.Scene, components: {camera, light, axesHelper, controls}) => voidCalled before each frame is rendered.
onFrame(renderer: WebGPURenderer | WebGLRenderer, scene: THREE.Scene, components: {camera, light, axesHelper, controls}) => voidCalled during each frame render loop.
onAfterFrame(renderer: WebGPURenderer | WebGLRenderer, scene: THREE.Scene, components: {camera, light, axesHelper, controls}) => voidCalled after each frame is rendered.