v3d-core
Version:
WebGL-based humanoid model rendering engine.
73 lines • 2.6 kB
JavaScript
/** Copyright (c) 2021 The v3d Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*/
import { SkeletonViewer } from "@babylonjs/core";
export class V3DHelper {
constructor(core) {
this.core = core;
}
/**
* Make a node cast shadow from a ShadowGenerator
* @param shadowGenerator
* @param nodeName
*/
addNodeToShadowCasterByName(shadowGenerator, nodeName) {
shadowGenerator?.addShadowCaster(this.core.scene.getNodeByName(nodeName));
}
/**
* Make nodes cast shadow from a ShadowGenerator
* @param shadowGenerator
* @param nodeName
*/
addNodeToShadowCasterContainsName(shadowGenerator, nodeName) {
if (!shadowGenerator)
return;
for (const node of this.core.scene.getNodes()) {
if (node && node.name.includes(nodeName)) {
shadowGenerator.addShadowCaster(node);
}
}
}
/**
* Make node receive shadow
* @param nodeName
*/
makeReceiveShadowByName(nodeName) {
this.core.scene.getNodeByName(nodeName).receiveShadows = true;
}
/**
* Make nodes receive shadow
* @param nodeName
*/
makeReceiveShadowContainsName(nodeName) {
for (const node of this.core.scene.getNodes()) {
if (node && node.name.includes(nodeName)) {
try {
node.receiveShadows = true;
}
catch (e) {
console.log(e);
}
}
}
}
showSkeletonDebug(skeleton, mesh) {
const options = {
pauseAnimations: true,
returnToRest: false,
computeBonesUsingShaders: true,
useAllBones: true,
displayMode: SkeletonViewer.DISPLAY_LINES, //A value that controls which display mode to use. (SkeletonViewer.DISPLAY_LINES = 0, SkeletonViewer.DISPLAY_SPHERES = 1, SkeletonViewer.DISPLAY_SPHERE_AND_SPURS = 2). Default = 0.
};
const skeletonViewer = new SkeletonViewer(skeleton, //Target Skeleton
mesh, //That skeletons Attached Mesh or a Node with the same globalMatrix
this.core.scene, //The Scene scope
true, //autoUpdateBoneMatrices?
mesh.renderingGroupId > 0 ? mesh.renderingGroupId + 1 : 1, // renderingGroupId
options);
return skeletonViewer;
}
}
//# sourceMappingURL=helper.js.map