diff --git a/examples-testing/index.js b/examples-testing/index.js index 198d5349d..ddb8ba73f 100644 --- a/examples-testing/index.js +++ b/examples-testing/index.js @@ -100,6 +100,8 @@ const exceptionList = [ 'webgpu_multisampled_renderbuffers', 'webgpu_storage_buffer', 'webgpu_texturegrad', + 'webgpu_volume_cloud', + 'webgpu_volume_perlin', 'webxr_vr_handinput_cubes', 'webxr_vr_handinput_profiles', 'webxr_vr_handinput_pointerclick', diff --git a/three.js b/three.js index 7a2ccef35..b38ef166c 160000 --- a/three.js +++ b/three.js @@ -1 +1 @@ -Subproject commit 7a2ccef35998273f4cb99d20ffaea08c7d44ef52 +Subproject commit b38ef166c7ed9efa1cac71b4fd16d0e168079ad7 diff --git a/types/three/examples/jsm/nodes/Nodes.d.ts b/types/three/examples/jsm/nodes/Nodes.d.ts index 06758aef2..bd3d0a630 100644 --- a/types/three/examples/jsm/nodes/Nodes.d.ts +++ b/types/three/examples/jsm/nodes/Nodes.d.ts @@ -276,6 +276,7 @@ export { default as RendererReferenceNode, rendererReference } from "./accessors export { default as SkinningNode, skinning } from "./accessors/SkinningNode.js"; export { default as StorageBufferNode, storage, storageObject } from "./accessors/StorageBufferNode.js"; export * from "./accessors/TangentNode.js"; +export { default as Texture3DNode } from "./accessors/Texture3DNode.js"; export { default as TextureBicubicNode, textureBicubic } from "./accessors/TextureBicubicNode.js"; export { default as TextureNode, sampler, texture } from "./accessors/TextureNode.js"; export { default as UniformsNode, uniforms } from "./accessors/UniformsNode.js"; diff --git a/types/three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts b/types/three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts index 9f22e4f72..dc61e30d8 100644 --- a/types/three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +++ b/types/three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts @@ -8,7 +8,7 @@ export default class CubeTextureNode extends TextureNode { uvNode: ShaderNodeObject | null; levelNode: ShaderNodeObject | null; - constructor(value: CubeTexture, uvNode?: Node | null, levelNode?: Node | null); + constructor(value: CubeTexture, uvNode?: ShaderNodeObject | null, levelNode?: ShaderNodeObject | null); getDefaultUV(): Node; } diff --git a/types/three/examples/jsm/nodes/accessors/Texture3DNode.d.ts b/types/three/examples/jsm/nodes/accessors/Texture3DNode.d.ts new file mode 100644 index 000000000..861b41805 --- /dev/null +++ b/types/three/examples/jsm/nodes/accessors/Texture3DNode.d.ts @@ -0,0 +1,16 @@ +import { CubeTexture, Texture } from "three"; +import Node from "../core/Node.js"; +import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js"; +import TextureNode from "./TextureNode.js"; + +export default class Texture3DNode extends TextureNode { + readonly isTexture3DNode: true; + + constructor(value: Texture, uvNode?: ShaderNodeObject | null, levelNode?: ShaderNodeObject | null); +} + +export const texture3D: ( + value: CubeTexture, + uvNode?: NodeRepresentation, + levelNode?: NodeRepresentation, +) => ShaderNodeObject; diff --git a/types/three/examples/jsm/nodes/accessors/TextureNode.d.ts b/types/three/examples/jsm/nodes/accessors/TextureNode.d.ts index 6eb8e3272..8d77c5654 100644 --- a/types/three/examples/jsm/nodes/accessors/TextureNode.d.ts +++ b/types/three/examples/jsm/nodes/accessors/TextureNode.d.ts @@ -17,7 +17,7 @@ export default class TextureNode extends UniformNode { referenceNode: Node | null; - constructor(value: Texture, uvNode?: ShaderNodeObject, levelNode?: ShaderNodeObject | null); + constructor(value: Texture, uvNode?: ShaderNodeObject | null, levelNode?: ShaderNodeObject | null); getDefaultUV(): Node; diff --git a/types/three/examples/jsm/nodes/materials/Materials.d.ts b/types/three/examples/jsm/nodes/materials/Materials.d.ts index b7d66412e..785e4a9ac 100644 --- a/types/three/examples/jsm/nodes/materials/Materials.d.ts +++ b/types/three/examples/jsm/nodes/materials/Materials.d.ts @@ -11,3 +11,4 @@ export { default as NodeMaterial } from "./NodeMaterial.js"; export { default as PointsNodeMaterial } from "./PointsNodeMaterial.js"; export { default as ShadowNodeMaterial } from "./ShadowNodeMaterial.js"; export { default as SpriteNodeMaterial } from "./SpriteNodeMaterial.js"; +export { default as VolumeNodeMaterial } from "./VolumeNodeMaterial.js"; diff --git a/types/three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts b/types/three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts new file mode 100644 index 000000000..d1f4b9cc0 --- /dev/null +++ b/types/three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts @@ -0,0 +1,10 @@ +import Node from "../core/Node.js"; +import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js"; + +export default class VolumeNodeMaterial extends NodeMaterial { + lights: boolean; + readonly isVolumeNodeMaterial: true; + testNode: Node | null; + + constructor(parameters?: NodeMaterialParameters); +}