Skip to content

Conversation

@cmhhelgeson
Copy link
Contributor

Related issue -

Port of existing transition post processing feature of RenderTransitionPass to node post processing system.

@github-actions
Copy link

github-actions bot commented Jul 11, 2024

📦 Bundle size

Full ESM build, minified and gzipped.

Filesize dev Filesize PR Diff
683.7 kB (169.3 kB) 683.7 kB (169.3 kB) +0 B

🌳 Bundle size after tree-shaking

Minimal build including a renderer, camera, empty scene, and dependencies.

Filesize dev Filesize PR Diff
460.9 kB (111.2 kB) 460.9 kB (111.2 kB) +0 B


window.addEventListener( 'resize', onWindowResize );

function onWindowResize() {3

Check warning

Code scanning / CodeQL

Expression has no effect

This expression has no effect.
@@ -0,0 +1,64 @@
import TempNode from '../core/TempNode.js';
import { uv } from '../accessors/UVNode.js';
import { addNodeElement, tslFn, nodeObject, float, If } from '../shadernode/ShaderNode.js';

Check notice

Code scanning / CodeQL

Unused variable, import, function or class

Unused import If.
@cmhhelgeson cmhhelgeson force-pushed the webgpu_transition_pass branch from fe4a105 to 841d0dd Compare July 15, 2024 01:22
@Mugen87
Copy link
Collaborator

Mugen87 commented Jul 16, 2024

Is this PR ready to review?

@cmhhelgeson
Copy link
Contributor Author

Is this PR ready to review?

Unfortunately no, I'm trying to investigate the proper way to dynamically change the value of the mixTextureNode, using the 3DLut example as a reference (i.e the value of the mixTexture used by the pass is directly updated in the animate loop). However, for whatever reason, I haven't been successful in replicating the approach.

import TempNode from '../core/TempNode.js';
import { uv } from '../accessors/UVNode.js';
import { addNodeElement, tslFn, nodeObject, float, If } from '../shadernode/ShaderNode.js';
import { NodeUpdateType } from '../core/constants.js';

Check notice

Code scanning / CodeQL

Unused variable, import, function or class

Unused import NodeUpdateType.

import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
import TWEEN from 'three/addons/libs/tween.module.js';
import { uniform, transition, pass, texture } from 'three/tsl'

Check notice

Code scanning / CodeQL

Unused variable, import, function or class

Unused import texture.
@cmhhelgeson cmhhelgeson marked this pull request as ready for review July 16, 2024 21:18
@Mugen87 Mugen87 changed the title Nodes: Add TransitionNode Nodes: Add TransitionNode. Jul 18, 2024
@Mugen87 Mugen87 added this to the r167 milestone Jul 18, 2024

const color = vec4().toVar();

If( useTextureNode.equal( int( 1 ) ), () => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have refactored this bit since I think the if clause makes the code more readable.


} ).else( () => {

color.assign( mix( texelTwo, texelOne, mixRatioNode ) );
Copy link
Collaborator

@Mugen87 Mugen87 Jul 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The transition was broken when useTextureNode is set to 0 since texelTwo and texelOne should be switched in this mix statement.

@Mugen87
Copy link
Collaborator

Mugen87 commented Jul 18, 2024

BTW: You should be able to avoid any code formatting issues by integrating ESLint in your editor. VSCode for example can automatically detect the ESLint configuration of the project and auto-format files to avoid linter issues.

@Mugen87 Mugen87 merged commit ffef510 into mrdoob:dev Jul 18, 2024
@mrdoob
Copy link
Owner

mrdoob commented Jul 18, 2024

The code for these new nodes is beautiful ~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants