Skip to content

Commit 494173b

Browse files
authored
WebGPURenderer: Reuse MatcapUVNode in MeshMatcapNodeMaterial (#28274)
* add note * use matcapUV
1 parent ed211d8 commit 494173b

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

examples/jsm/nodes/materials/MeshMatcapNodeMaterial.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import NodeMaterial, { addNodeMaterial } from './NodeMaterial.js';
22
import { materialReference } from '../accessors/MaterialReferenceNode.js';
33
import { diffuseColor } from '../core/PropertyNode.js';
4-
import { vec2, vec3 } from '../shadernode/ShaderNode.js';
5-
import { positionViewDirection } from '../accessors/PositionNode.js';
4+
import { vec3 } from '../shadernode/ShaderNode.js';
65
import { MeshMatcapMaterial } from 'three';
7-
import { transformedNormalView } from '../accessors/NormalNode.js';
86
import { mix } from '../math/MathNode.js';
7+
import { matcapUV } from '../utils/MatcapUVNode.js';
98

109
const defaultValues = new MeshMatcapMaterial();
1110

@@ -27,10 +26,7 @@ class MeshMatcapNodeMaterial extends NodeMaterial {
2726

2827
setupVariants( builder ) {
2928

30-
const x = vec3( positionViewDirection.z, 0.0, positionViewDirection.x.negate() ).normalize();
31-
const y = positionViewDirection.cross( x );
32-
33-
const uv = vec2( x.dot( transformedNormalView ), y.dot( transformedNormalView ) ).mul( 0.495 ).add( 0.5 ) ; // 0.495 to remove artifacts caused by undersized matcap disks
29+
const uv = matcapUV;
3430

3531
let matcapColor;
3632

examples/jsm/nodes/utils/MatcapUVNode.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class MatcapUVNode extends TempNode {
1717
const x = vec3( positionViewDirection.z, 0, positionViewDirection.x.negate() ).normalize();
1818
const y = positionViewDirection.cross( x );
1919

20-
return vec2( x.dot( transformedNormalView ), y.dot( transformedNormalView ) ).mul( 0.495 ).add( 0.5 );
20+
return vec2( x.dot( transformedNormalView ), y.dot( transformedNormalView ) ).mul( 0.495 ).add( 0.5 ); // 0.495 to remove artifacts caused by undersized matcap disks
2121

2222
}
2323

0 commit comments

Comments
 (0)