three-rwx-loader v0.12.4
RWXLoader
three.js loader to import Active Worlds RenderWare scripts (.rwx)
What's RenderWare?
RenderWare (RW), developed by Criterion Software Limited, is the name of the 3D API graphics rendering engine used in the on-line, 3D, virtual reality and interactive environment Active Worlds (AW)
What's a RenderWare script?
A RenderWare script (RWX) file is an ASCII text file of an object/model's geometry. This geometry consists of vertices, polygons, and material information.
What's three.js?
It aims to be an easy to use, lightweight, cross-browser, general purpose 3D library. It's also a dependency of this package.
Installation
$ npm install three-rwx-loaderUsage
import RWXLoader from 'RWXLoader';
// For optional (but strongly advised) fflate usage
import * as fflate from 'fflate';
let rwxLoader = new RWXLoader();
// Like other three.js loaders: this one supports chained commands
rwxLoader.setPath('some/path/rwx').setResourcePath('some/path/textures').setFflate(fflate).setWaitFullLoad(true).setFlatten(true);
rwxLoader.load('object.rwx', (rwx) => {
// Do something with 'rwx' there, it is guaranteed to be an Object3D from three.js
});API documentation
By virtue of inheriting from the three.js Loader class: this loader comes with a set of expected setters such as setPath and setResourcePath.
However, it also brings its specific set of methods as described below:
setFflate( fflate: fflate ): this- Provide fflate module to the loader, required for proper texture masks handling.
setTextureExtension( textureExtension: string ): this- Set the expected texture files extension, '.jpg' by default.
setMaskExtension( maskExtension: string ): this- Set the expected texture mask files extension, '.zip' by default.
setWaitFullLoad( waitFullLoad: boolean ): thisWhether or not to wait for full loading completion before returning the objet,
falseby default (meaning textures are loaded asynchronously).Set this to
truefor the loader to only return the object once it's fully loaded.
setFlatten( flatten: boolean ): thisWhether or not to flatten the objet,
falseby default (the object will consist of nestedGroups). Set this totrueto get a singleMeshholding everything.In both cases: the object will inherit from
Object3D(which is a common parent of bothMeshandGroup).
setUseBasicMaterial( useBasicMaterial: boolean ): this- Whether or not to use
MeshBasicMaterialinstead ofMeshPhongMaterial,falseby default.
- Whether or not to use
setRWXMaterialManager( rwxMgr: RWXMaterialManager ): this- Set a custom
RWXMaterialManagerto be used by the loader, one will be internally instanciated by default if none is provided.
- Set a custom
setTextureColorSpace( textureColorSpace: constant ): this- Set the three.js texture color space used for textures loaded for materials (default is
SRGBColorSpace).
- Set the three.js texture color space used for textures loaded for materials (default is
setEnableTextures( enableTextures: boolean ): this- Enable textures (and masks) to be loaded,
trueby default.
- Enable textures (and masks) to be loaded,
setForceEarcut( forceEarcut: boolean ): this- Always force Earcut to be used when doing polygon triangulation (instead of poly2tri/Delaunay) for faster (but uglier) results,
falseby default.
- Always force Earcut to be used when doing polygon triangulation (instead of poly2tri/Delaunay) for faster (but uglier) results,
setVerboseWarning( verboseWarning: boolean ): this- Enable verbose warning logs for various non-critical mishaps, 'false' by default.
setAlphaTest( AlphaTest: float ): this- Set the threshold value to use for texture transparency testing (between 0 and 1), 0.2 by default.
setForceTextureFiltering( forceTextureFiltering: boolean ): thisWhether or not to force texture filtering regardless of texture modes.
trueby default, meaning: all materials will display their textures in a "fancy" way.
setAllowURLs( allowURLs: boolean ): thisWhether or not to allow full URLs for texture and mask paths.
falseby default, meaning it's disabled.
Testing
$ npm testLinting
$ npm run lintReferences:
1 year ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago