Skip to content

Commit

Permalink
WebGPURenderer: Better skinning performance (#836)
Browse files Browse the repository at this point in the history
  • Loading branch information
Methuselah96 committed Feb 23, 2024
1 parent b1949e9 commit 0086896
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion types/three/examples/jsm/nodes/Nodes.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ export {
positionWorld,
positionWorldDirection,
} from "./accessors/PositionNode.js";
export { default as ReferenceNode, reference } from "./accessors/ReferenceNode.js";
export { default as ReferenceNode, reference, referenceBuffer } from "./accessors/ReferenceNode.js";
export { default as ReflectVectorNode, reflectVector } from "./accessors/ReflectVectorNode.js";
export { default as SkinningNode, skinning } from "./accessors/SkinningNode.js";
export { default as StorageBufferNode, storage, storageObject } from "./accessors/StorageBufferNode.js";
Expand Down
11 changes: 6 additions & 5 deletions types/three/examples/jsm/nodes/accessors/ReferenceNode.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,25 @@ import { NodeOrType, NodeRepresentation, ShaderNodeObject } from "../shadernode/

export default class ReferenceNode<T> extends Node {
property: string;
indexNode: Node | null;

uniformType: NodeTypeOption;

object: T;
reference: T | null;
count: number | null;

properties: string[];
reference: T | null;
node: Node | null;

constructor(property: string, uniformType: NodeTypeOption, object?: T | null, indexNode?: Node | null);
constructor(property: string, uniformType: NodeTypeOption, object?: T | null, count?: number | null);

setNodeType(uniformType: NodeTypeOption): void;
}

export const reference: <T>(name: string, nodeOrType: NodeOrType, object: T) => ShaderNodeObject<ReferenceNode<T>>;
export const referenceIndex: <T>(
export const referenceBuffer: <T>(
name: string,
index: NodeRepresentation,
nodeOrType: NodeOrType,
count: NodeRepresentation,
object: T,
) => ShaderNodeObject<ReferenceNode<T>>;
8 changes: 6 additions & 2 deletions types/three/examples/jsm/nodes/accessors/SkinningNode.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,18 @@ import Node from "../core/Node.js";
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";

export default class SkinningNode extends Node {
skinnedMesh: SkinnedMesh;
useReference: boolean;

skinIndexNode: Node;
skinWeightNode: Node;

bindMatrixNode: Node;
bindMatrixInverseNode: Node;
boneMatricesNode: Node;

constructor(skinnedMesh: SkinnedMesh);
constructor(skinnedMesh: SkinnedMesh, useReference?: boolean);
}

export function skinning(skinnedMesh: SkinnedMesh): ShaderNodeObject<SkinningNode>;
export const skinning: (skinnedMesh: SkinnedMesh) => ShaderNodeObject<SkinningNode>;
export const skinningReference: (skinnedMesh: SkinnedMesh) => ShaderNodeObject<SkinningNode>;

0 comments on commit 0086896

Please sign in to comment.