Skip to content

Commit 478497e

Browse files
committed
prepare post-processing test playground
1 parent d6a31d1 commit 478497e

File tree

4 files changed

+58
-1
lines changed

4 files changed

+58
-1
lines changed

packages/twopoint5d-elements-e2e/index.html

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<ul>
1212
<li><a class="hover:underline" href="pages/bundle.html">bundle</a></li>
1313
<li><a class="hover:underline" href="pages/display-and-stage2d.html">display-and-stage2d</a></li>
14+
<li><a class="hover:underline" href="pages/post-processing.html">post-processing</a></li>
1415
<li><a class="hover:underline" href="pages/simple-greeting.html">simple-greeting</a></li>
1516
<li><a class="hover:underline" href="pages/stage2d.html">stage2d</a></li>
1617
<li><a class="hover:underline" href="pages/display.html">display</a></li>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>post-processing (twopoint5d-elements-e2e)</title>
8+
</head>
9+
<body>
10+
<script type="module" src="/src/post-processing.ts"></script>
11+
<main class="two5-display-container">
12+
<x-display class="two5-display">
13+
<x-post-processing>
14+
<x-stage2d id="stage2d" projection-type="parallax" width="197" height="205"></two5-stage2d>
15+
</x-post-processing>
16+
</x-display>
17+
</main>
18+
</body>
19+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import {TextureStore} from '@spearwolf/twopoint5d';
2+
import {DisplayElement, Stage2DElement} from '@spearwolf/twopoint5d-elements';
3+
import {Color, Scene, Sprite, SpriteMaterial} from 'three';
4+
import './display.css';
5+
import './style.css';
6+
7+
const initialize = async (action: (el: Stage2DElement) => void) => {
8+
customElements.define('x-display', DisplayElement);
9+
customElements.define('x-stage2d', Stage2DElement);
10+
11+
const el = await Stage2DElement.whenDefined(document.getElementById('stage2d'));
12+
action(el);
13+
};
14+
15+
const textures = new TextureStore().load('/assets/textures.json');
16+
17+
initialize((el) => {
18+
el.sceneReady().then((scene: Scene) => {
19+
scene.background = new Color(0x212121);
20+
});
21+
22+
el.firstFrame().then(({renderer, scene}) => {
23+
textures.renderer = renderer;
24+
25+
const sprite = new Sprite();
26+
sprite.scale.set(197, 205, 1);
27+
scene.add(sprite);
28+
29+
textures.get('ballPatternRot', ['texture', 'imageCoords'], ([texture, imageCoords]) => {
30+
console.log('texture', {texture, imageCoords});
31+
32+
sprite.material?.dispose();
33+
sprite.material = new SpriteMaterial({map: texture});
34+
});
35+
});
36+
});

packages/twopoint5d/src/stage/PostProcessingRenderer.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type {WebGLRenderer} from 'three';
2-
import {EffectComposer, Pass} from 'three/addons/postprocessing/EffectComposer.js';
2+
import {EffectComposer} from 'three/addons/postprocessing/EffectComposer.js';
3+
import {Pass} from 'three/addons/postprocessing/Pass.js';
34
import {RenderPass} from 'three/addons/postprocessing/RenderPass.js';
45
import {
56
StageAdded,

0 commit comments

Comments
 (0)