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.