Skip to content

Commit

Permalink
Addons: Add LensflareNode. (#1351)
Browse files Browse the repository at this point in the history
* Addons: Add LensflareNode.

* Update three.js

* Add examples

* Update

* Update patch and delete examples
  • Loading branch information
Methuselah96 authored Nov 10, 2024
1 parent 9ceb566 commit 054f347
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 1 deletion.
25 changes: 25 additions & 0 deletions examples-testing/changes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -15057,6 +15057,31 @@ index e5cd0791..8a310a42 100644

init();

diff --git a/examples-testing/examples/webgpu_postprocessing_lensflare.ts b/examples-testing/examples/webgpu_postprocessing_lensflare.ts
index d0a1b51e..bfe5d434 100644
--- a/examples-testing/examples/webgpu_postprocessing_lensflare.ts
+++ b/examples-testing/examples/webgpu_postprocessing_lensflare.ts
@@ -1,4 +1,4 @@
-import * as THREE from 'three';
+import * as THREE from 'three/webgpu';
import { pass, mrt, output, emissive, uniform } from 'three/tsl';
import { bloom } from 'three/addons/tsl/display/BloomNode.js';
import { lensflare } from 'three/addons/tsl/display/LensflareNode.js';
@@ -12,8 +12,12 @@ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
import Stats from 'three/addons/libs/stats.module.js';

-let camera, scene, renderer, controls, stats;
-let postProcessing;
+let camera: THREE.PerspectiveCamera,
+ scene: THREE.Scene,
+ renderer: THREE.WebGPURenderer,
+ controls: OrbitControls,
+ stats: Stats;
+let postProcessing: THREE.PostProcessing;

init();

diff --git a/examples-testing/examples/webgpu_postprocessing_masking.ts b/examples-testing/examples/webgpu_postprocessing_masking.ts
index fc87be20..54310173 100644
--- a/examples-testing/examples/webgpu_postprocessing_masking.ts
Expand Down
2 changes: 1 addition & 1 deletion three.js
Submodule three.js updated 58 files
+4 −4 docs/api/en/core/Object3D.html
+1 −1 docs/api/en/math/Color.html
+10 −10 docs/api/fr/animation/AnimationAction.html
+1 −1 docs/api/fr/animation/AnimationClip.html
+1 −1 docs/api/fr/animation/AnimationMixer.html
+1 −1 docs/api/fr/animation/AnimationUtils.html
+6 −6 docs/api/fr/animation/KeyframeTrack.html
+1 −1 docs/api/fr/animation/tracks/BooleanKeyframeTrack.html
+1 −1 docs/api/fr/animation/tracks/ColorKeyframeTrack.html
+1 −1 docs/api/fr/animation/tracks/NumberKeyframeTrack.html
+1 −1 docs/api/fr/animation/tracks/QuaternionKeyframeTrack.html
+1 −1 docs/api/fr/animation/tracks/StringKeyframeTrack.html
+1 −1 docs/api/fr/animation/tracks/VectorKeyframeTrack.html
+2 −2 docs/api/fr/audio/AudioAnalyser.html
+1 −1 docs/api/fr/cameras/ArrayCamera.html
+2 −2 docs/api/fr/cameras/Camera.html
+1 −1 docs/api/fr/cameras/CubeCamera.html
+2 −2 docs/api/fr/cameras/OrthographicCamera.html
+6 −6 docs/api/fr/cameras/PerspectiveCamera.html
+1 −1 docs/api/fr/constants/CustomBlendingEquations.html
+12 −12 docs/api/fr/constants/Textures.html
+2 −2 docs/api/fr/geometries/BoxGeometry.html
+1 −1 docs/api/fr/geometries/CapsuleGeometry.html
+4 −4 docs/api/fr/materials/LineBasicMaterial.html
+1 −1 docs/api/fr/materials/LineDashedMaterial.html
+6 −6 docs/api/fr/materials/Material.html
+5 −5 docs/api/fr/materials/MeshBasicMaterial.html
+4 −4 docs/api/fr/materials/MeshDepthMaterial.html
+3 −3 docs/api/fr/materials/MeshDistanceMaterial.html
+5 −5 docs/api/fr/materials/MeshLambertMaterial.html
+3 −3 docs/api/fr/materials/MeshMatcapMaterial.html
+2 −2 docs/api/fr/materials/MeshNormalMaterial.html
+6 −6 docs/api/fr/materials/MeshPhongMaterial.html
+5 −5 docs/api/fr/materials/MeshStandardMaterial.html
+5 −5 docs/api/fr/materials/MeshToonMaterial.html
+4 −4 docs/api/fr/materials/PointsMaterial.html
+1 −1 docs/api/fr/materials/RawShaderMaterial.html
+3 −3 docs/api/fr/materials/ShaderMaterial.html
+1 −1 docs/api/fr/materials/ShadowMaterial.html
+4 −4 docs/api/fr/materials/SpriteMaterial.html
+2 −2 docs/examples/en/animations/MMDAnimationHelper.html
+1 −1 docs/examples/en/controls/ArcballControls.html
+1 −1 docs/examples/en/exporters/DRACOExporter.html
+2 −2 docs/examples/en/geometries/TeapotGeometry.html
+2 −2 docs/examples/en/math/convexhull/ConvexHull.html
+2 −2 docs/manual/en/introduction/How-to-update-things.html
+1 −0 examples/files.json
+2 −1 examples/jsm/exporters/GLTFExporter.js
+1 −1 examples/jsm/lights/RectAreaLightTexturesLib.js
+161 −0 examples/jsm/tsl/display/LensflareNode.js
+2 −2 examples/jsm/tsl/display/OutlineNode.js
+ examples/models/gltf/space_ship_hallway.glb
+ examples/screenshots/webgpu_materials_transmission.jpg
+ examples/screenshots/webgpu_postprocessing_lensflare.jpg
+ examples/textures/equirectangular/ice_planet_close.jpg
+183 −0 examples/webgpu_postprocessing_lensflare.html
+7 −3 src/nodes/functions/PhysicalLightingModel.js
+2 −2 src/renderers/webgpu/nodes/WGSLNodeBuilder.js
35 changes: 35 additions & 0 deletions types/three/examples/jsm/tsl/display/LensflareNode.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { Vector3 } from "three";
import { NodeRepresentation, ShaderNodeObject, TempNode, TextureNode, UniformNode } from "three/tsl";

interface LensflareNodeParams {
ghostTint?: ShaderNodeObject<UniformNode<Vector3>> | undefined;
threshold?: ShaderNodeObject<UniformNode<number>> | undefined;
ghostSamples?: ShaderNodeObject<UniformNode<number>> | undefined;
ghostSpacing?: ShaderNodeObject<UniformNode<number>> | undefined;
ghostAttenuationFactor?: ShaderNodeObject<UniformNode<number>> | undefined;
downSampleRatio?: number | undefined;
}

declare class LensflareNode extends TempNode {
textureNode: TextureNode;

ghostTint: ShaderNodeObject<UniformNode<Vector3>>;
threshold: ShaderNodeObject<UniformNode<number>>;
ghostSamples: ShaderNodeObject<UniformNode<number>>;
ghostSpacing: ShaderNodeObject<UniformNode<number>>;
ghostAttenuationFactor: ShaderNodeObject<UniformNode<number>>;
downSampleRatio: number;

constructor(textureNode: TextureNode, params?: LensflareNodeParams);

getTextureNode(): TextureNode;

setSize(width: number, height: number): void;
}

export default LensflareNode;

export const lensflare: (
inputNode: NodeRepresentation,
params?: LensflareNodeParams,
) => ShaderNodeObject<LensflareNode>;

0 comments on commit 054f347

Please sign in to comment.