Skip to content

Commit 04ef205

Browse files
authored
WebGPURenderer: support using 3d textures (#976)
* WebGPURenderer: support using 3d textures * Update three.js * Add examples * Update * Fix
1 parent db87d87 commit 04ef205

File tree

8 files changed

+33
-3
lines changed

8 files changed

+33
-3
lines changed

examples-testing/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ const exceptionList = [
100100
'webgpu_multisampled_renderbuffers',
101101
'webgpu_storage_buffer',
102102
'webgpu_texturegrad',
103+
'webgpu_volume_cloud',
104+
'webgpu_volume_perlin',
103105
'webxr_vr_handinput_cubes',
104106
'webxr_vr_handinput_profiles',
105107
'webxr_vr_handinput_pointerclick',

types/three/examples/jsm/nodes/Nodes.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ export { default as RendererReferenceNode, rendererReference } from "./accessors
276276
export { default as SkinningNode, skinning } from "./accessors/SkinningNode.js";
277277
export { default as StorageBufferNode, storage, storageObject } from "./accessors/StorageBufferNode.js";
278278
export * from "./accessors/TangentNode.js";
279+
export { default as Texture3DNode } from "./accessors/Texture3DNode.js";
279280
export { default as TextureBicubicNode, textureBicubic } from "./accessors/TextureBicubicNode.js";
280281
export { default as TextureNode, sampler, texture } from "./accessors/TextureNode.js";
281282
export { default as UniformsNode, uniforms } from "./accessors/UniformsNode.js";

types/three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default class CubeTextureNode extends TextureNode {
88
uvNode: ShaderNodeObject<Node> | null;
99
levelNode: ShaderNodeObject<Node> | null;
1010

11-
constructor(value: CubeTexture, uvNode?: Node | null, levelNode?: Node | null);
11+
constructor(value: CubeTexture, uvNode?: ShaderNodeObject<Node> | null, levelNode?: ShaderNodeObject<Node> | null);
1212

1313
getDefaultUV(): Node;
1414
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { CubeTexture, Texture } from "three";
2+
import Node from "../core/Node.js";
3+
import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
4+
import TextureNode from "./TextureNode.js";
5+
6+
export default class Texture3DNode extends TextureNode {
7+
readonly isTexture3DNode: true;
8+
9+
constructor(value: Texture, uvNode?: ShaderNodeObject<Node> | null, levelNode?: ShaderNodeObject<Node> | null);
10+
}
11+
12+
export const texture3D: (
13+
value: CubeTexture,
14+
uvNode?: NodeRepresentation,
15+
levelNode?: NodeRepresentation,
16+
) => ShaderNodeObject<Texture3DNode>;

types/three/examples/jsm/nodes/accessors/TextureNode.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default class TextureNode extends UniformNode<Texture> {
1717

1818
referenceNode: Node | null;
1919

20-
constructor(value: Texture, uvNode?: ShaderNodeObject<Node>, levelNode?: ShaderNodeObject<Node> | null);
20+
constructor(value: Texture, uvNode?: ShaderNodeObject<Node> | null, levelNode?: ShaderNodeObject<Node> | null);
2121

2222
getDefaultUV(): Node;
2323

types/three/examples/jsm/nodes/materials/Materials.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ export { default as NodeMaterial } from "./NodeMaterial.js";
1111
export { default as PointsNodeMaterial } from "./PointsNodeMaterial.js";
1212
export { default as ShadowNodeMaterial } from "./ShadowNodeMaterial.js";
1313
export { default as SpriteNodeMaterial } from "./SpriteNodeMaterial.js";
14+
export { default as VolumeNodeMaterial } from "./VolumeNodeMaterial.js";
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import Node from "../core/Node.js";
2+
import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js";
3+
4+
export default class VolumeNodeMaterial extends NodeMaterial {
5+
lights: boolean;
6+
readonly isVolumeNodeMaterial: true;
7+
testNode: Node | null;
8+
9+
constructor(parameters?: NodeMaterialParameters);
10+
}

0 commit comments

Comments
 (0)