|
@@ -12,30 +12,6 @@ const experiment = {
|
|
|
portalColorEnd: '#ddc0ff',
|
|
|
}
|
|
|
|
|
|
-const { pane } = useTweakPane()
|
|
|
-
|
|
|
-const portalCtrls = pane.addFolder({ title: 'Portal' })
|
|
|
-portalCtrls
|
|
|
- .addInput(experiment, 'portalColorStart', {
|
|
|
- label: 'color start',
|
|
|
- min: 0,
|
|
|
- max: 1,
|
|
|
- step: 0.01,
|
|
|
- })
|
|
|
- .on('change', ({ value }) => {
|
|
|
- portalLightMaterial.uniforms.uColorStart.value.set(value)
|
|
|
- })
|
|
|
-portalCtrls
|
|
|
- .addInput(experiment, 'portalColorEnd', {
|
|
|
- label: 'color end',
|
|
|
- min: 0,
|
|
|
- max: 1,
|
|
|
- step: 0.01,
|
|
|
- })
|
|
|
- .on('change', ({ value }) => {
|
|
|
- portalLightMaterial.uniforms.uColorEnd.value.set(value)
|
|
|
- })
|
|
|
-
|
|
|
const { scene: portal } = await useGLTF(
|
|
|
'https://raw.githubusercontent.com/Tresjs/assets/main/models/gltf/portal/portal.glb',
|
|
|
{
|
|
@@ -69,15 +45,40 @@ const portalLightMaterial = new ShaderMaterial({
|
|
|
|
|
|
const portalObj = portal
|
|
|
const bakedMesh = portalObj.children.find(child => child.name === 'baked')
|
|
|
-;(bakedMesh as Mesh).material = bakedMaterial
|
|
|
+ ; (bakedMesh as Mesh).material = bakedMaterial
|
|
|
const portalCircle = portalObj.children.find(child => child.name === 'portalCircle')
|
|
|
-;(portalCircle as Mesh).material = portalLightMaterial
|
|
|
+ ; (portalCircle as Mesh).material = portalLightMaterial
|
|
|
|
|
|
const { onLoop } = useRenderLoop()
|
|
|
|
|
|
onLoop(({ elapsed }) => {
|
|
|
portalLightMaterial.uniforms.uTime.value = elapsed
|
|
|
})
|
|
|
+
|
|
|
+// Controls
|
|
|
+const { pane } = useTweakPane()
|
|
|
+
|
|
|
+const portalCtrls = pane.addFolder({ title: 'Portal' })
|
|
|
+portalCtrls
|
|
|
+ .addInput(experiment, 'portalColorStart', {
|
|
|
+ label: 'color start',
|
|
|
+ min: 0,
|
|
|
+ max: 1,
|
|
|
+ step: 0.01,
|
|
|
+ })
|
|
|
+ .on('change', ({ value }) => {
|
|
|
+ portalLightMaterial.uniforms.uColorStart.value.set(value)
|
|
|
+ })
|
|
|
+portalCtrls
|
|
|
+ .addInput(experiment, 'portalColorEnd', {
|
|
|
+ label: 'color end',
|
|
|
+ min: 0,
|
|
|
+ max: 1,
|
|
|
+ step: 0.01,
|
|
|
+ })
|
|
|
+ .on('change', ({ value }) => {
|
|
|
+ portalLightMaterial.uniforms.uColorEnd.value.set(value)
|
|
|
+ })
|
|
|
</script>
|
|
|
|
|
|
<template>
|