Examples — Documentation — Roadmap — jsdo.itで試す
This version of Hyper3D is no longer developed. Meanwhile, Hyper3D 3, the completely overhauled WebGL framework, is being developed here!
HYPER3D is a high-end (unofficial) renderer for three.js.
- Modern rendering engine
- Physically based rendering
- Roughness-metallic material workflow with support for custom shaders
- High dynamic range rendering
- High-quality post-effects
 
- Development support
- Includes TypeScript definition
- Integrated GPU Profiler
 
More features are coming! See Roadmap.
Following three.js objects can safely be used with Hyper3D.
- Mesh,- SkinnedMesh
- Points
- Geometry,- BufferGeometry- Current limitation: when using a Geometry, callingdispose()on it doesn't reclaim memory.
 
- Current limitation: when using a 
- PerspectiveCamera
- AmbientLight,- DirectionalLight,- PointLight- Current limitation: semantics of PointLight's parameters differs significantly. Recommended to useHyper.PointLightinstead for future compatibility.
- Current limitation: shadowBiasandshadowMapSizeis hardcoded.
- Shadow can be rendered by setting castShadowtotrue. However, most parameters related to the shadow rendering are computed automatically and cannot be overrided.
- shadowDarknessis not supported because it doesn't have a physical meaning.
 
- Current limitation: semantics of 
- Texture,- CubeTexture- Current limitation 1: texture parameters are not respected
- Current limitation 2: compressed textures are not supported
 
- MeshBasicMaterial,- MeshPhongMaterial- Current limitation: transparency is not supported at all. Vertex color is not supported.
- Colored specular reflection, wireframe,lightMap,aoMapis not supported. Wireframe is not supported.
- specularMapis treated as a roughness map.
- Environment maps are not supported. Use Hyper.ReflectionProbeinstead.
- Most of the properties defined in the base class Materialare not supported.
 
- PointsMaterial- Current limitation 1: transparency is not supported at all. Vertex color is not supported.
- Current limitation 2: sizeAttenuationis ignored and the point size is always specified in the world-space coordinate system.
 
- Hyper.WebGLHyperRenderer
- Hyper.ReflectionProbe(inherits from- THREE.Object3D)- Current limitation: positional probe is not supported.
 
- Hyper.Material- Current limitation: transparency is not supported at all. discard;still works
- This class allows you to write a custom shader that generates material parameters like m_albedoandm_roughness. This itself cannot be used as a material. It should be instantiated by creatingHyper.MaterialInstance.
 
- Current limitation: transparency is not supported at all. 
- Hyper.MaterialInstance(inherits from- THREE.Material)
- Hyper.PointLight(inherits from- THREE.PointLight)- Current limitation: sized lights are not supported.
 
Before building Hyper3D, the following programs must be installed:
- The latest version of Node.js
# Clone the repository (you can just download ZIP instead)
git clone https://github.com/Hyper3D/hyper3d.git
cd hyper3d
# Install dependencies
npm install
# Download TypeScript definitions
npm run-script tsd-installnpm run-script buildhyper3d.js and hyper3d.min.js are generated in the build directory. You can use them like this:
<script type="application/javascript" src="three.min.js"></script>
<script type="application/javascript" src="hyper3d.min.js"></script>If you intend to use Hyper3D on Browserify-based apps, you might want a npm package instead of a simple JS file. In this case, run the following command:
npm run-script lib
# ..or, rebuild automatically whenever a source file was modified
# npm run-script watchAfter running these command this library can be used in your project
by using npm link.
Contributions are always welcome. Feel free to talk to the developers.
MIT.
