Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/read-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,15 @@ jobs:
id: read-size
run: |
# minify the builds to measure their size
npx terser build/three.core.js --module --compress --mangle --output build/three.core.min.js
npx terser build/three.module.js --module --compress --mangle --output build/three.module.min.js
npx terser build/three.webgpu.js --module --compress --mangle --output build/three.webgpu.min.js
npx terser build/three.webgpu.nodes.js --module --compress --mangle --output build/three.webgpu.nodes.min.js

CORE_FILESIZE=$(stat --format=%s build/three.core.min.js)
gzip -k build/three.core.min.js
CORE_FILESIZE_GZIP=$(stat --format=%s build/three.core.min.js.gz)

WEBGL_FILESIZE=$(stat --format=%s build/three.module.min.js)
gzip -k build/three.module.min.js
WEBGL_FILESIZE_GZIP=$(stat --format=%s build/three.module.min.js.gz)
Expand All @@ -66,7 +71,7 @@ jobs:
PR=${{ github.event.pull_request.number }}

# write the output in a json file to upload it as artifact
node -pe "JSON.stringify({ filesize: $WEBGL_FILESIZE, gzip: $WEBGL_FILESIZE_GZIP, treeshaken: $WEBGL_TREESHAKEN, treeshakenGzip: $WEBGL_TREESHAKEN_GZIP, filesize2: $WEBGPU_FILESIZE, gzip2: $WEBGPU_FILESIZE_GZIP, treeshaken2: $WEBGPU_TREESHAKEN, treeshakenGzip2: $WEBGPU_TREESHAKEN_GZIP, filesize3: $WEBGPU_NODES_FILESIZE, gzip3: $WEBGPU_NODES_FILESIZE_GZIP, treeshaken3: $WEBGPU_NODES_TREESHAKEN, treeshakenGzip3: $WEBGPU_NODES_TREESHAKEN_GZIP, pr: $PR })" > sizes.json
node -pe "JSON.stringify({ coreFilesize: $CORE_FILESIZE, coreGzip: $CORE_FILESIZE_GZIP, filesize: $WEBGL_FILESIZE, gzip: $WEBGL_FILESIZE_GZIP, treeshaken: $WEBGL_TREESHAKEN, treeshakenGzip: $WEBGL_TREESHAKEN_GZIP, filesize2: $WEBGPU_FILESIZE, gzip2: $WEBGPU_FILESIZE_GZIP, treeshaken2: $WEBGPU_TREESHAKEN, treeshakenGzip2: $WEBGPU_TREESHAKEN_GZIP, filesize3: $WEBGPU_NODES_FILESIZE, gzip3: $WEBGPU_NODES_FILESIZE_GZIP, treeshaken3: $WEBGPU_NODES_TREESHAKEN, treeshakenGzip3: $WEBGPU_NODES_TREESHAKEN_GZIP, pr: $PR })" > sizes.json
- name: Upload artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/report-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,15 @@ jobs:
id: read-size
run: |
# minify the builds to measure their size
npx terser build/three.core.js --module --compress --mangle --output build/three.core.min.js
npx terser build/three.module.js --module --compress --mangle --output build/three.module.min.js
npx terser build/three.webgpu.js --module --compress --mangle --output build/three.webgpu.min.js
npx terser build/three.webgpu.nodes.js --module --compress --mangle --output build/three.webgpu.nodes.min.js

CORE_FILESIZE_BASE=$(stat --format=%s build/three.core.min.js)
gzip -k build/three.core.min.js
CORE_FILESIZE_BASE_GZIP=$(stat --format=%s build/three.core.min.js.gz)

WEBGL_FILESIZE_BASE=$(stat --format=%s build/three.module.min.js)
gzip -k build/three.module.min.js
WEBGL_FILESIZE_BASE_GZIP=$(stat --format=%s build/three.module.min.js.gz)
Expand All @@ -100,6 +105,12 @@ jobs:
WEBGPU_NODES_TREESHAKEN_BASE_GZIP=$(stat --format=%s test/treeshake/index.webgpu.nodes.bundle.min.js.gz)

# log to console
echo "CORE_FILESIZE_BASE=$CORE_FILESIZE_BASE"
echo "CORE_FILESIZE_BASE_GZIP=$CORE_FILESIZE_BASE_GZIP"

echo "CORE_FILESIZE_BASE=$CORE_FILESIZE_BASE" >> $GITHUB_OUTPUT
echo "CORE_FILESIZE_BASE_GZIP=$CORE_FILESIZE_BASE_GZIP" >> $GITHUB_OUTPUT

echo "WEBGL_FILESIZE_BASE=$WEBGL_FILESIZE_BASE"
echo "WEBGL_FILESIZE_BASE_GZIP=$WEBGL_FILESIZE_BASE_GZIP"
echo "WEBGL_TREESHAKEN_BASE=$WEBGL_TREESHAKEN_BASE"
Expand Down Expand Up @@ -135,6 +146,10 @@ jobs:
# It's important these are passed as env variables.
# https://securitylab.github.com/research/github-actions-untrusted-input/
env:
CORE_FILESIZE: ${{ fromJSON(steps.download-artifact.outputs.result).coreFilesize }}
CORE_FILESIZE_GZIP: ${{ fromJSON(steps.download-artifact.outputs.result).coreGzip }}
CORE_FILESIZE_BASE: ${{ steps.read-size.outputs.CORE_FILESIZE_BASE }}
CORE_FILESIZE_BASE_GZIP: ${{ steps.read-size.outputs.CORE_FILESIZE_BASE_GZIP }}
WEBGL_FILESIZE: ${{ fromJSON(steps.download-artifact.outputs.result).filesize }}
WEBGL_FILESIZE_GZIP: ${{ fromJSON(steps.download-artifact.outputs.result).gzip }}
WEBGL_FILESIZE_BASE: ${{ steps.read-size.outputs.WEBGL_FILESIZE_BASE }}
Expand All @@ -160,6 +175,13 @@ jobs:
WEBGPU_NODES_TREESHAKEN_BASE: ${{ steps.read-size.outputs.WEBGPU_NODES_TREESHAKEN_BASE }}
WEBGPU_NODES_TREESHAKEN_BASE_GZIP: ${{ steps.read-size.outputs.WEBGPU_NODES_TREESHAKEN_BASE_GZIP }}
run: |
CORE_FILESIZE_FORM=$(node ./test/treeshake/utils/format-size.js "$CORE_FILESIZE")
CORE_FILESIZE_GZIP_FORM=$(node ./test/treeshake/utils/format-size.js "$CORE_FILESIZE_GZIP")
CORE_FILESIZE_BASE_FORM=$(node ./test/treeshake/utils/format-size.js "$CORE_FILESIZE_BASE")
CORE_FILESIZE_BASE_GZIP_FORM=$(node ./test/treeshake/utils/format-size.js "$CORE_FILESIZE_BASE_GZIP")
CORE_FILESIZE_DIFF=$(node ./test/treeshake/utils/format-diff.js "$CORE_FILESIZE" "$CORE_FILESIZE_BASE")
CORE_FILESIZE_DIFF_GZIP=$(node ./test/treeshake/utils/format-diff.js "$CORE_FILESIZE_GZIP" "$CORE_FILESIZE_BASE_GZIP")

WEBGL_FILESIZE_FORM=$(node ./test/treeshake/utils/format-size.js "$WEBGL_FILESIZE")
WEBGL_FILESIZE_GZIP_FORM=$(node ./test/treeshake/utils/format-size.js "$WEBGL_FILESIZE_GZIP")
WEBGL_FILESIZE_BASE_FORM=$(node ./test/treeshake/utils/format-size.js "$WEBGL_FILESIZE_BASE")
Expand Down Expand Up @@ -202,6 +224,13 @@ jobs:
WEBGPU_NODES_TREESHAKEN_DIFF=$(node ./test/treeshake/utils/format-diff.js "$WEBGPU_NODES_TREESHAKEN" "$WEBGPU_NODES_TREESHAKEN_BASE")
WEBGPU_NODES_TREESHAKEN_DIFF_GZIP=$(node ./test/treeshake/utils/format-diff.js "$WEBGPU_NODES_TREESHAKEN_GZIP" "$WEBGPU_NODES_TREESHAKEN_BASE_GZIP")

echo "CORE_FILESIZE=$CORE_FILESIZE_FORM" >> $GITHUB_OUTPUT
echo "CORE_FILESIZE_GZIP=$CORE_FILESIZE_GZIP_FORM" >> $GITHUB_OUTPUT
echo "CORE_FILESIZE_BASE=$CORE_FILESIZE_BASE_FORM" >> $GITHUB_OUTPUT
echo "CORE_FILESIZE_BASE_GZIP=$CORE_FILESIZE_BASE_GZIP_FORM" >> $GITHUB_OUTPUT
echo "CORE_FILESIZE_DIFF=$CORE_FILESIZE_DIFF" >> $GITHUB_OUTPUT
echo "CORE_FILESIZE_DIFF_GZIP=$CORE_FILESIZE_DIFF_GZIP" >> $GITHUB_OUTPUT

echo "WEBGL_FILESIZE=$WEBGL_FILESIZE_FORM" >> $GITHUB_OUTPUT
echo "WEBGL_FILESIZE_GZIP=$WEBGL_FILESIZE_GZIP_FORM" >> $GITHUB_OUTPUT
echo "WEBGL_FILESIZE_BASE=$WEBGL_FILESIZE_BASE_FORM" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -264,6 +293,7 @@ jobs:

|| Before | After | Diff |
|:-:|:-:|:-:|:-:|
| Core | ${{ steps.format.outputs.CORE_FILESIZE_BASE }} <br> **${{ steps.format.outputs.CORE_FILESIZE_BASE_GZIP }}** | ${{ steps.format.outputs.CORE_FILESIZE }} <br> **${{ steps.format.outputs.CORE_FILESIZE_GZIP }}** | ${{ steps.format.outputs.CORE_FILESIZE_DIFF }} <br> **${{ steps.format.outputs.CORE_FILESIZE_DIFF_GZIP }}** |
| WebGL | ${{ steps.format.outputs.WEBGL_FILESIZE_BASE }} <br> **${{ steps.format.outputs.WEBGL_FILESIZE_BASE_GZIP }}** | ${{ steps.format.outputs.WEBGL_FILESIZE }} <br> **${{ steps.format.outputs.WEBGL_FILESIZE_GZIP }}** | ${{ steps.format.outputs.WEBGL_FILESIZE_DIFF }} <br> **${{ steps.format.outputs.WEBGL_FILESIZE_DIFF_GZIP }}** |
| WebGPU | ${{ steps.format.outputs.WEBGPU_FILESIZE_BASE }} <br> **${{ steps.format.outputs.WEBGPU_FILESIZE_BASE_GZIP }}** | ${{ steps.format.outputs.WEBGPU_FILESIZE }} <br> **${{ steps.format.outputs.WEBGPU_FILESIZE_GZIP }}** | ${{ steps.format.outputs.WEBGPU_FILESIZE_DIFF }} <br> **${{ steps.format.outputs.WEBGPU_FILESIZE_DIFF_GZIP }}** |
| WebGPU Nodes | ${{ steps.format.outputs.WEBGPU_NODES_FILESIZE_BASE }} <br> **${{ steps.format.outputs.WEBGPU_NODES_FILESIZE_BASE_GZIP }}** | ${{ steps.format.outputs.WEBGPU_NODES_FILESIZE }} <br> **${{ steps.format.outputs.WEBGPU_NODES_FILESIZE_GZIP }}** | ${{ steps.format.outputs.WEBGPU_NODES_FILESIZE_DIFF }} <br> **${{ steps.format.outputs.WEBGPU_NODES_FILESIZE_DIFF_GZIP }}** |
Expand Down
4 changes: 2 additions & 2 deletions src/lights/SunLight.js → examples/jsm/lights/SunLight.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Light } from './Light.js';
import { Light, Object3D } from 'three';
import { SunLightShadow } from './SunLightShadow.js';
import { Object3D } from '../core/Object3D.js';

/**
* A sun-like light that gets emitted in a specific direction, with rays that
Expand All @@ -23,6 +22,7 @@ import { Object3D } from '../core/Object3D.js';
* use {@link DirectionalLight} with `CSMShadowNode` instead.
*
* @augments Light
* @three_import import { SunLight } from 'three/addons/lights/SunLight.js';
*/
class SunLight extends Light {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { LightShadow } from './LightShadow.js';
import { OrthographicCamera } from '../cameras/OrthographicCamera.js';
import { Frustum } from '../math/Frustum.js';
import { Matrix4 } from '../math/Matrix4.js';
import { Vector3 } from '../math/Vector3.js';
import { Vector4 } from '../math/Vector4.js';
import {
Frustum,
LightShadow,
Matrix4,
OrthographicCamera,
Vector3,
Vector4
} from 'three';

const _lightOrientationMatrix = /*@__PURE__*/ new Matrix4();
const _viewToLightMatrix = /*@__PURE__*/ new Matrix4();
Expand Down Expand Up @@ -38,14 +40,14 @@ const _cascadeCorners = [

// must match the cascade count in the sun shadow shader chunks

const _cascadeCount = 4;
const _cascadeCount = 2;

// fraction of each cascade's depth range that blends into the next cascade

const _cascadeFade = 0.1;

/**
* Represents the shadow configuration of {@link SunLight}, using four
* Represents the shadow configuration of {@link SunLight}, using two
* cascaded shadow maps (CSM).
*
* The shadow camera projection is fitted automatically to slices of the view
Expand All @@ -56,6 +58,7 @@ const _cascadeFade = 0.1;
* The default `mapSize` is `1024x1024` per cascade.
*
* @augments LightShadow
* @three_import import { SunLightShadow } from 'three/addons/lights/SunLightShadow.js';
*/
class SunLightShadow extends LightShadow {

Expand Down Expand Up @@ -87,7 +90,7 @@ class SunLightShadow extends LightShadow {
this._cascadeData = [];

this._viewportCount = _cascadeCount;
this._frameExtents.set( 2, 2 );
this._frameExtents.set( 2, 1 );

for ( let i = 0; i < _cascadeCount; i ++ ) {

Expand Down Expand Up @@ -157,7 +160,7 @@ class SunLightShadow extends LightShadow {

for ( let i = 0; i < _cascadeCount; i ++ ) {

this._viewports[ i ].set( i % 2 + insetX, Math.floor( i / 2 ) + insetY, 1 - 2 * insetX, 1 - 2 * insetY );
this._viewports[ i ].set( i + insetX, insetY, 1 - 2 * insetX, 1 - 2 * insetY );

}

Expand Down
2 changes: 1 addition & 1 deletion examples/jsm/loaders/FBXLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ class FBXTreeParser {
} else { // Binary Format

const array = new Uint8Array( content );
return window.URL.createObjectURL( new Blob( [ array ], { type: type } ) );
return URL.createObjectURL( new Blob( [ array ], { type: type } ) );

}

Expand Down
Binary file modified examples/screenshots/webgl_lightprobes_sponza.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion examples/webgl_animation_multiple.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

import * as THREE from 'three';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import * as SkeletonUtils from 'three/addons/utils/SkeletonUtils.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
Expand Down Expand Up @@ -61,7 +62,7 @@
hemiLight.position.set( 0, 20, 0 );
scene.add( hemiLight );

const sunLight = new THREE.SunLight( 0xffffff, 3 );
const sunLight = new SunLight( 0xffffff, 3 );
sunLight.position.set( - 3, 10, - 10 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 20;
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_animation_skinning_additive_blending.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

import Stats from 'three/addons/libs/stats.module.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

Expand Down Expand Up @@ -79,7 +80,7 @@
hemiLight.position.set( 0, 20, 0 );
scene.add( hemiLight );

const sunLight = new THREE.SunLight( 0xffffff, 3 );
const sunLight = new SunLight( 0xffffff, 3 );
sunLight.position.set( 3, 10, 10 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 20;
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_animation_skinning_blending.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import Stats from 'three/addons/libs/stats.module.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

let scene, renderer, camera, stats;
Expand Down Expand Up @@ -74,7 +75,7 @@
hemiLight.position.set( 0, 20, 0 );
scene.add( hemiLight );

const sunLight = new THREE.SunLight( 0xffffff, 3 );
const sunLight = new SunLight( 0xffffff, 3 );
sunLight.position.set( - 3, 10, - 10 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 20;
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_animation_walk.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@

import * as THREE from 'three';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';

Expand Down Expand Up @@ -91,7 +92,7 @@
group = new THREE.Group();
scene.add( group );

const sunLight = new THREE.SunLight( 0xffffff, 5 );
const sunLight = new SunLight( 0xffffff, 5 );
sunLight.position.set( - 2, 5, - 3 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 20;
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_gpgpu_water.html
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@

import Stats from 'three/addons/libs/stats.module.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';

import { GPUComputationRenderer } from 'three/addons/misc/GPUComputationRenderer.js';
Expand Down Expand Up @@ -216,7 +217,7 @@

scene = new THREE.Scene();

sun = new THREE.SunLight( 0xFFFFFF, 4.0 );
sun = new SunLight( 0xFFFFFF, 4.0 );
sun.position.set( - 1, 2.6, 1.4 );
scene.add( sun );

Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_instancing_morph.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

import * as THREE from 'three';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';

import Stats from 'three/addons/libs/stats.module.js';
Expand Down Expand Up @@ -55,7 +56,7 @@

scene.fog = new THREE.Fog( 0x99DDFF, 5000, 10000 );

const light = new THREE.SunLight( 0xffffff, 2 );
const light = new SunLight( 0xffffff, 2 );

light.position.set( 200, 1000, 50 );

Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_lightprobes_sponza.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

import * as THREE from 'three';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
Expand Down Expand Up @@ -137,7 +138,7 @@
let isBaking = false;
let bakeQueued = false;

sunLight = new THREE.SunLight( 0xfff2dc, 100.0 );
sunLight = new SunLight( 0xfff2dc, 100.0 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 50;
sunLight.shadow.mapSize.setScalar( 2048 );
Expand Down
5 changes: 3 additions & 2 deletions examples/webgl_lights_sunlight.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

import * as THREE from 'three';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js';
import { Sky } from 'three/addons/objects/Sky.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
Expand Down Expand Up @@ -58,7 +59,7 @@
#if defined( USE_SHADOWMAP ) && NUM_SUN_LIGHT_SHADOWS > 0

float cascade = 0.0;
for ( int i = 0; i < 4; i ++ ) cascade += step( sunShadowCascade[ i ].y, vSunShadowWorldPosition.w );
for ( int i = 0; i < 2; i ++ ) cascade += step( sunShadowCascade[ i ].y, vSunShadowWorldPosition.w );
gl_FragColor.rgb *= 0.7 + 0.3 * cos( cascade * 1.2 + vec3( 0.0, 4.2, 2.1 ) );

#endif
Expand Down Expand Up @@ -132,7 +133,7 @@
sky.material.uniforms.rayleigh.value = 2;
sky.material.uniforms.showSunDisc.value = false; // the sun is represented by the light

sunLight = new THREE.SunLight();
sunLight = new SunLight();
sunLight.castShadow = true;
sunLight.shadow.camera.far = params.far; // maximum shadow distance
sunLight.shadow.mapSize.setScalar( params.resolution );
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_loader_3mf_materials.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

import * as THREE from 'three';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { ThreeMFLoader } from 'three/addons/loaders/3MFLoader.js';

Expand All @@ -57,7 +58,7 @@
hemiLight.position.set( 0, 100, 0 );
scene.add( hemiLight );

const sunLight = new THREE.SunLight( 0xffffff, 3 );
const sunLight = new SunLight( 0xffffff, 3 );
sunLight.position.set( 0, 40, 50 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 100;
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_loader_fbx.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

import Stats from 'three/addons/libs/stats.module.js';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { FBXLoader } from 'three/addons/loaders/FBXLoader.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
Expand Down Expand Up @@ -90,7 +91,7 @@
hemiLight.position.set( 0, 200, 0 );
scene.add( hemiLight );

const sunLight = new THREE.SunLight( 0xffffff, 5 );
const sunLight = new SunLight( 0xffffff, 5 );
sunLight.position.set( 0, 200, 100 );
sunLight.castShadow = true;
scene.add( sunLight );
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_loader_md2_control.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@

import Stats from 'three/addons/libs/stats.module.js';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { MD2CharacterComplex } from 'three/addons/misc/MD2CharacterComplex.js';
import { Gyroscope } from 'three/addons/misc/Gyroscope.js';
Expand Down Expand Up @@ -92,7 +93,7 @@

scene.add( new THREE.AmbientLight( 0x666666, 3 ) );

const sunLight = new THREE.SunLight( 0xffffff, 7 );
const sunLight = new SunLight( 0xffffff, 7 );
sunLight.position.set( 200, 450, 500 );
sunLight.castShadow = true;
sunLight.shadow.camera.far = 2000;
Expand Down
3 changes: 2 additions & 1 deletion examples/webgl_postprocessing_outline.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import Stats from 'three/addons/libs/stats.module.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';

import { SunLight } from 'three/addons/lights/SunLight.js';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { OBJLoader } from 'three/addons/loaders/OBJLoader.js';
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
Expand Down Expand Up @@ -151,7 +152,7 @@

scene.add( new THREE.AmbientLight( 0xaaaaaa, 0.6 ) );

const light = new THREE.SunLight( 0xddffdd, 2 );
const light = new SunLight( 0xddffdd, 2 );
light.position.set( 5, 5, 5 );
light.castShadow = true;
light.shadow.camera.far = 40;
Expand Down
Loading