UNPKG

v3d-core-realbits

Version:

WebGL-based humanoid model rendering engine.

123 lines (77 loc) 3.09 kB
# v3d-core WebGL-based humanoid model rendering engine. ## Objectives This project aims to be an easy-to-use library for rendering 3D and pseudo-2D humanoid models. We choose WebGL because of its portability across platforms, as well as the broad support from JavaScript community. ## Features - Contains one simple API for interacting with scene and models - Supports `.vrm` file loading, including: - Unity Humanoid bone mapping - [BlendShape](https://vrm.dev/univrm/components/univrm_blendshape/) morphing - [Secondary Animation](https://vrm.dev/univrm/components/univrm_secondary/) - [MToonMaterial](https://github.com/phantom-software-AZ/babylon-mtoon-material) ## Usage ### Install from NPM ```s npm install v3d-core ``` ### In browser _Some older browsers may not be supported._ Please see [examples/browser](./examples/browser) for an example. A more complicated example can be found in [examples/classroom](./examples/classroom). ### On Babylon.js Playground Currently, this is not possible since we use a modified Babylon.js fork. ### For node.js and webpack _All modules support ES6 imports._ Please see [index-test.ts](./src/index-test.ts) for an example. ## Contributing See [CONTRIBUTING.md](./CONTRIBUTING.md). ## Build 1. Clone this repo and submodules: ```s git clone https://github.com/phantom-software-AZ/v3d-core.git --recurse-submodules ``` If your Internet connection is slow, try the following instead: ```s git clone https://github.com/phantom-software-AZ/v3d-core.git --recurse-submodules --shallow-submodules ``` 2. Build Babylon.js ```s cd lib/Babylon.js && git checkout master-custom && npm install cd Tools/Gulp && npm install gulp typescript-libraries --noGlobalInstall && gulp npmPackages-es6 --noGlobalInstall cd ../../../.. ``` 3. Build v3d-core ```s npm install npm run build ``` Output files will be under `dist` folder. ## Debugging Go to root folder of this repository and run: ```s $ npm run debug ``` The debug page can be opened in any browser with `http://localhost:8080/`. ## Demo Video See [this demo video](https://www.youtube.com/watch?v=pQnvU2PVymE). ## Credits - [babylon-vrm-loader](https://github.com/virtual-cast/babylon-vrm-loader) - [babylon-mtoon-material](https://github.com/virtual-cast/babylon-mtoon-material) ## Licenses see [LICENSE](./LICENSE). Babylon.js is licensed under [Apache License 2.0](https://github.com/BabylonJS/Babylon.js/blob/master/license.md). ## Git Submodule - git submodule init - git submodule sync - git submodule update --remote - git submodule status ## Git Submodule Remove 1. git submodule deinit <your_submodule> 2. rm -rf <your_submodule> 3. git rm <your_submodule> 4. git commit -m "Removed submodule" 5. rm -rf .git/modules/<your_submodule> ## For babylon-mtoon-material debugging with es6 option - Patch material-value-binding-merger.ts and vrm-material-generator.ts file in babylon-vrm-loader package. - copy shader/babylon-mtoon-material/src/shaders to dist/src/babylon-mtoon-material/src