<needle-engine> Configuration
The <needle-engine>
web-component comes with a nice collection of built-in attributes that can be used to modify the look and feel of the loaded scene without the need to add or edit the three.js scene directly.
The table below shows a list of the most important ones:
Loading
src
Path to one or multiple glTF or glb files.
Supported types are string
, string[]
or a stringified array (,
separated)
dracoDecoderPath
URL to the draco decoder e.g. ./include/draco/
to use the local Draco decoder
dracoDecoderType
draco decoder type. Options are wasm
or js
. See three.js documentation
ktx2DecoderPath
URL to the KTX2 decoder e.g. ./include/ktx2/
to use the local KTX2 decoder
Rendering
background-color
optional, hex color to be used as a background color. Examples: rgb(255, 200, 100)
, #dddd00
background-image
optional, URL to a skybox image (background image) or a preset string: studio
, blurred-skybox
, quicklook
, quicklook-ar
background-blurriness
optional, bluriness value between 0 (no blur) and 1 (max blur) for the background-image
. Example: background-blurriness="0.5"
environment-image
optional, URL to a environment image (environment light) or a preset string: studio
, blurred-skybox
, quicklook
, quicklook-ar
contactshadows
optional, render contact shadows
tone-mapping
optional, supported values are none
, linear
, neutral
, agx
tone-mapping-exposure
optional number e.g. increase exposure with tone-mapping-exposure="1.5"
, requires tone-mapping
to be set
Interaction
autoplay
add or set to true
to auto play animations e.g. <needle-engine autoplay
camera-controls
add or set to true
to automatically add OrbitControls if no camera controls are found in the scene
auto-rotate
add to enable auto-rotate (only used with camera-controls
)
Events
loadstart
Name of the function to call when loading starts. Note that the arguments are (ctx:Context, evt:Event)
. You can call evt.preventDefault()
to hide the default loading overlay
progress
Name of the function to call when loading updates. onProgress(ctx:Context, evt: {detail: {context:Context, name:string, index:number, count:number, totalProgress01:number}) { ... }
loadfinished
Name of the function to call when loading finishes
Loading Display
Available options to change how the Needle Engine loading display looks. Use ?debugloadingrendering
for easier editing
loading-background
PRO — Default: transparent
. Change the loading background color (e.g. #dd5500
)
loading-logo-src
PRO — Change the loading logo image (e.g. https://yourdomain.com/logo.png
or /logo.png
)
hide-loading-overlay
PRO — Do not show the loading overlay
Internal
hash
Used internally, is appended to the files being loaded to force an update (e.g. when the browser has cached a glb file). Should not be edited manually.
Upgrade notice:
Removed attributes in Needle Engine 4.5.0
loading-style
,loading-background-color
,loading-text-color
,primary-color
,secondary-color
Examples
<!-- Setting the path to a custom glb to be loaded -->
<needle-engine src="path/to/your.glb"></needle-engine>
<!-- Overriding where the draco decoder is located -->
<needle-engine src="path/to/your.glb" dracoDecoderPath="./include/draco/"></needle-engine>
Setting environment images, playing animation and automatic camera controls. See it live on stackblitz
<needle-engine
camera-controls
auto-rotate
autoplay
skybox-image="https://dl.polyhaven.org/file/ph-assets/HDRIs/hdr/1k/industrial_sunset_puresky_1k.hdr"
environment-image="https://dl.polyhaven.org/file/ph-assets/HDRIs/hdr/1k/industrial_sunset_puresky_1k.hdr"
src="https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF-Embedded/DamagedHelmet.gltf"
>
</needle-engine>
Receiving an event when the needle-engine context has finished loading:
<needle-engine loadfinished="onLoadFinished"> </needle-engine>
<script>
function onLoadFinished() {
console.log("Needle Engine has finished loading");
}
</script>
Custom Loading Style (PRO)
You can easily modify how Needle Engine looks by setting the appropriate attributes on the <needle-engine>
web component. Please see the table above for details.
Last updated