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,SkinnedMeshPointsGeometry,BufferGeometry- Current limitation: when using a
Geometry, callingdispose()on it doesn't reclaim memory.
- Current limitation: when using a
PerspectiveCameraAmbientLight,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.WebGLHyperRendererHyper.ReflectionProbe(inherits fromTHREE.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 fromTHREE.Material)Hyper.PointLight(inherits fromTHREE.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.
