Skip to content

Commit

Permalink
- final updates of broken unsplash links
Browse files Browse the repository at this point in the history
- moved `PingPongPlane` class to `extras`
- version 0.7.1
  • Loading branch information
martinlaxenaire committed May 28, 2024
1 parent 669e5d5 commit bece6c5
Show file tree
Hide file tree
Showing 420 changed files with 4,281 additions and 4,281 deletions.
4 changes: 2 additions & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
## Work in progress

- Examples & tests
- Add/improve GLTFScenesManager features
- glTF IBL shader

## TODO / possible improvements

- Sort transparent objects by distance from the camera to the object bounding box center + radius distance before drawing them
- Add/improve GLTFScenesManager features
- Option to chose between sphere and OBB frustum culling
- Mesh raycasting
- Lights management?
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion dist/esm/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ export { Texture } from './core/textures/Texture.mjs';
export { DOMTexture } from './core/textures/DOMTexture.mjs';
export { DOMElement } from './core/DOM/DOMElement.mjs';
export { DOMMesh } from './curtains/meshes/DOMMesh.mjs';
export { PingPongPlane } from './curtains/meshes/PingPongPlane.mjs';
export { Plane } from './curtains/meshes/Plane.mjs';
export { DOMObject3D } from './curtains/objects3D/DOMObject3D.mjs';
export { GPUCurtainsRenderer } from './curtains/renderers/GPUCurtainsRenderer.mjs';
Expand All @@ -49,6 +48,7 @@ export { Vec3 } from './math/Vec3.mjs';
export { OrbitControls } from './extras/controls/OrbitControls.mjs';
export { BoxGeometry } from './extras/geometries/BoxGeometry.mjs';
export { SphereGeometry } from './extras/geometries/SphereGeometry.mjs';
export { PingPongPlane } from './extras/meshes/PingPongPlane.mjs';
export { GLTFLoader } from './extras/gltf/GLTFLoader.mjs';
export { GLTFScenesManager } from './extras/gltf/GLTFScenesManager.mjs';
export { buildIBLShaders, buildPBRShaders, buildShaders } from './extras/gltf/utils.mjs';
Expand Down
134 changes: 67 additions & 67 deletions dist/gpu-curtains.umd.js
Original file line number Diff line number Diff line change
Expand Up @@ -11965,73 +11965,6 @@ struct VSOutput {
}
}

class PingPongPlane extends FullscreenPlane {
/**
* PingPongPlane constructor
* @param renderer - {@link Renderer} object or {@link GPUCurtains} class object used to create this {@link PingPongPlane}
* @param parameters - {@link MeshBaseRenderParams | parameters} use to create this {@link PingPongPlane}
*/
constructor(renderer, parameters = {}) {
renderer = renderer && renderer.renderer || renderer;
isRenderer(renderer, parameters.label ? parameters.label + " PingPongPlane" : "PingPongPlane");
const colorAttachments = parameters.targets && parameters.targets.length && parameters.targets.map((target) => {
return {
targetFormat: target.format
};
});
parameters.outputTarget = new RenderTarget(renderer, {
label: parameters.label ? parameters.label + " render target" : "Ping Pong render target",
useDepth: false,
...colorAttachments && { colorAttachments }
});
parameters.transparent = false;
parameters.depth = false;
parameters.label = parameters.label ?? "PingPongPlane " + renderer.pingPongPlanes?.length;
super(renderer, parameters);
this.type = "PingPongPlane";
this.createTexture({
label: parameters.label ? `${parameters.label} render texture` : "PingPongPlane render texture",
name: "renderTexture",
...parameters.targets && parameters.targets.length && { format: parameters.targets[0].format },
usage: ["copyDst", "textureBinding"]
});
}
/**
* Get our main {@link Texture}, the one that contains our ping pong content
* @readonly
*/
get renderTexture() {
return this.textures.find((texture) => texture.options.name === "renderTexture");
}
/**
* Add the {@link PingPongPlane} to the {@link core/scenes/Scene.Scene | Scene} and optionally to the renderer.
* @param addToRenderer - whether to add this {@link PingPongPlane} to the {@link Renderer#pingPongPlanes | Renderer pingPongPlanes array}
*/
addToScene(addToRenderer = false) {
if (addToRenderer) {
this.renderer.pingPongPlanes.push(this);
}
if (this.autoRender) {
this.renderer.scene.addPingPongPlane(this);
}
}
/**
* Remove the {@link PingPongPlane} from the {@link core/scenes/Scene.Scene | Scene} and optionally from the renderer as well.
* @param removeFromRenderer - whether to remove this {@link PingPongPlane} from the {@link Renderer#pingPongPlanes | Renderer pingPongPlanes array}
*/
removeFromScene(removeFromRenderer = false) {
if (this.outputTarget) {
this.outputTarget.destroy();
}
if (this.autoRender) {
this.renderer.scene.removePingPongPlane(this);
}
if (removeFromRenderer) {
this.renderer.pingPongPlanes = this.renderer.pingPongPlanes.filter((pPP) => pPP.uuid !== this.uuid);
}
}
}

const defaultPlaneParams = {
label: "Plane",
// geometry
Expand Down Expand Up @@ -13018,6 +12951,73 @@ struct VSOutput {
}
}

class PingPongPlane extends FullscreenPlane {
/**
* PingPongPlane constructor
* @param renderer - {@link Renderer} object or {@link GPUCurtains} class object used to create this {@link PingPongPlane}
* @param parameters - {@link MeshBaseRenderParams | parameters} use to create this {@link PingPongPlane}
*/
constructor(renderer, parameters = {}) {
renderer = renderer && renderer.renderer || renderer;
isRenderer(renderer, parameters.label ? parameters.label + " PingPongPlane" : "PingPongPlane");
const colorAttachments = parameters.targets && parameters.targets.length && parameters.targets.map((target) => {
return {
targetFormat: target.format
};
});
parameters.outputTarget = new RenderTarget(renderer, {
label: parameters.label ? parameters.label + " render target" : "Ping Pong render target",
useDepth: false,
...colorAttachments && { colorAttachments }
});
parameters.transparent = false;
parameters.depth = false;
parameters.label = parameters.label ?? "PingPongPlane " + renderer.pingPongPlanes?.length;
super(renderer, parameters);
this.type = "PingPongPlane";
this.createTexture({
label: parameters.label ? `${parameters.label} render texture` : "PingPongPlane render texture",
name: "renderTexture",
...parameters.targets && parameters.targets.length && { format: parameters.targets[0].format },
usage: ["copyDst", "textureBinding"]
});
}
/**
* Get our main {@link Texture}, the one that contains our ping pong content
* @readonly
*/
get renderTexture() {
return this.textures.find((texture) => texture.options.name === "renderTexture");
}
/**
* Add the {@link PingPongPlane} to the {@link core/scenes/Scene.Scene | Scene} and optionally to the renderer.
* @param addToRenderer - whether to add this {@link PingPongPlane} to the {@link Renderer#pingPongPlanes | Renderer pingPongPlanes array}
*/
addToScene(addToRenderer = false) {
if (addToRenderer) {
this.renderer.pingPongPlanes.push(this);
}
if (this.autoRender) {
this.renderer.scene.addPingPongPlane(this);
}
}
/**
* Remove the {@link PingPongPlane} from the {@link core/scenes/Scene.Scene | Scene} and optionally from the renderer as well.
* @param removeFromRenderer - whether to remove this {@link PingPongPlane} from the {@link Renderer#pingPongPlanes | Renderer pingPongPlanes array}
*/
removeFromScene(removeFromRenderer = false) {
if (this.outputTarget) {
this.outputTarget.destroy();
}
if (this.autoRender) {
this.renderer.scene.removePingPongPlane(this);
}
if (removeFromRenderer) {
this.renderer.pingPongPlanes = this.renderer.pingPongPlanes.filter((pPP) => pPP.uuid !== this.uuid);
}
}
}

const GL$1 = WebGLRenderingContext;
const GLB_MAGIC = 1179937895;
const CHUNK_TYPE = {
Expand Down
4 changes: 2 additions & 2 deletions dist/gpu-curtains.umd.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/gpu-curtains.umd.min.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/types/core/renderers/GPURenderer.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { DOMElement, DOMElementBoundingRect, RectBBox, RectSize } from '../DOM/D
import { Scene } from '../scenes/Scene';
import { RenderPass, RenderPassParams } from '../renderPasses/RenderPass';
import { ComputePass } from '../computePasses/ComputePass';
import { PingPongPlane } from '../../curtains/meshes/PingPongPlane';
import { PingPongPlane } from '../../extras/meshes/PingPongPlane';
import { ShaderPass } from '../renderPasses/ShaderPass';
import { RenderTarget } from '../renderPasses/RenderTarget';
import { DOMTexture } from '../textures/DOMTexture';
Expand Down
2 changes: 1 addition & 1 deletion dist/types/core/scenes/Scene.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { Renderer } from '../renderers/utils';
import { SceneStackedMesh, RenderedMesh, ProjectedMesh } from '../renderers/GPURenderer';
import { ShaderPass } from '../renderPasses/ShaderPass';
import { PingPongPlane } from '../../curtains/meshes/PingPongPlane';
import { PingPongPlane } from '../../extras/meshes/PingPongPlane';
import { ComputePass } from '../computePasses/ComputePass';
import { GPUCurtains } from '../../curtains/GPUCurtains';
import { RenderTarget } from '../renderPasses/RenderTarget';
Expand Down
2 changes: 1 addition & 1 deletion dist/types/curtains/GPUCurtains.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { GPUCurtainsRenderer } from './renderers/GPUCurtainsRenderer';
import { ScrollManager } from '../utils/ScrollManager';
import { Vec3 } from '../math/Vec3';
import { PingPongPlane } from './meshes/PingPongPlane';
import { PingPongPlane } from '../extras/meshes/PingPongPlane';
import { ShaderPass } from '../core/renderPasses/ShaderPass';
import { GPURenderer, GPURendererParams, SceneStackedMesh } from '../core/renderers/GPURenderer';
import { DOMMesh } from './meshes/DOMMesh';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Renderer } from '../../core/renderers/utils';
import { RenderTarget } from '../../core/renderPasses/RenderTarget';
import { FullscreenPlane } from '../../core/meshes/FullscreenPlane';
import { GPUCurtains } from '../GPUCurtains';
import { GPUCurtains } from '../../curtains/GPUCurtains';
import { Texture } from '../../core/textures/Texture';
import { MeshBaseRenderParams } from '../../core/meshes/mixins/MeshBaseMixin';
/**
Expand Down
2 changes: 1 addition & 1 deletion dist/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ export { Texture } from './core/textures/Texture';
export { DOMTexture } from './core/textures/DOMTexture';
export { DOMElement } from './core/DOM/DOMElement';
export { DOMMesh } from './curtains/meshes/DOMMesh';
export { PingPongPlane } from './curtains/meshes/PingPongPlane';
export { Plane } from './curtains/meshes/Plane';
export { DOMObject3D } from './curtains/objects3D/DOMObject3D';
export { GPUCurtainsRenderer } from './curtains/renderers/GPUCurtainsRenderer';
Expand All @@ -49,6 +48,7 @@ export { Vec3 } from './math/Vec3';
export { OrbitControls } from './extras/controls/OrbitControls';
export { BoxGeometry } from './extras/geometries/BoxGeometry';
export { SphereGeometry } from './extras/geometries/SphereGeometry';
export { PingPongPlane } from './extras/meshes/PingPongPlane';
export { GLTFLoader } from './extras/gltf/GLTFLoader';
export { GLTFScenesManager } from './extras/gltf/GLTFScenesManager';
export * from './extras/gltf/utils';
Expand Down
Loading

0 comments on commit bece6c5

Please sign in to comment.