UNPKG

v3d-core

Version:

WebGL-based humanoid model rendering engine.

73 lines 2.6 kB
/** 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