|
|
@@ -25,7 +25,7 @@
|
|
|
<script type="module">
|
|
|
|
|
|
import * as THREE from 'three';
|
|
|
- import { viewportSharedTexture, texture, uv } from 'three/tsl';
|
|
|
+ import { viewportSafeUV, viewportSharedTexture, viewportTopLeft, texture, uv } from 'three/tsl';
|
|
|
|
|
|
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
|
|
|
|
|
@@ -63,11 +63,11 @@
|
|
|
|
|
|
// refractor
|
|
|
|
|
|
- const verticalRefractor = viewportSharedTexture();
|
|
|
-
|
|
|
const verticalNormalScale = 0.1;
|
|
|
const verticalUVOffset = texture( floorNormal, uv().mul( 5 ) ).xy.mul( 2 ).sub( 1 ).mul( verticalNormalScale );
|
|
|
- verticalRefractor.uvNode = verticalRefractor.uvNode.add( verticalUVOffset );
|
|
|
+
|
|
|
+ const refractorUV = viewportTopLeft.add( verticalUVOffset );
|
|
|
+ const verticalRefractor = viewportSharedTexture( viewportSafeUV( refractorUV ) );
|
|
|
|
|
|
const planeGeo = new THREE.PlaneGeometry( 100.1, 100.1 );
|
|
|
|
|
|
@@ -126,7 +126,7 @@
|
|
|
|
|
|
// renderer
|
|
|
|
|
|
- renderer = new THREE.WebGPURenderer( { antialias: true } );
|
|
|
+ renderer = new THREE.WebGPURenderer( /*{ antialias: true }*/ );
|
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|
|
|
renderer.setAnimationLoop( animate );
|