Below you can find listed information on what rendering features we currently support, plan to support and ones that we do not.
These features are all available right now to use with the Luna Engine:
- Standard & Custom Shaders from Unity (which means the converted results are 1:1)Make sure the shaders you use support Shader Target 3.0. If not they can most likely be converted/adapted.
- Forward renderer path from Unity's built-in render pipeline.Note: We do not support other rendering paths from Unity's built-in pipeline, only ForwardPath.
- Normal Maps
- Spherical harmonics: LightProbes, ReflectionProbes, Ambient Probes
- All built-in Unity uniforms (for lights, harmonics, matrices, screenparams etc.)
- Unity Fog (Exponential, Exponential Squared & Linear Fog)
- Baked lightmaps
What we plan to implement
These are features that we have on our roadmap to add to the Luna Engine, be sure to check out our release notes when we update Playable to see what new features are available.
Luna always initializes WebGL 1.0 context for compatibility reasons (even when WebGL 2.0 is available). This can lead to limitations when it comes to the support of newer shader features. The exact set varies from device to device due to different vendor-specific extensions available. You can find more info on WebGL1.0 here.
To make sure Luna is able to utilize all your shader code, please try running the game targeting OpenGL ES 2 API.
Below are features we currently do not support:
- Shader target 3.0 and above
- HDR (because of lack of float textures)
- Linear color space (again due to lack of float textures)
- Color values from fragment shaders are clamped01 for WebGL1.
This can lead to wrong blending (especially in additive).
E.g. White (1,1,1,1) + Red (1,0,0,1); Would be clamped to (1,1,1,1).
- Deferred rendering path
- Depth texture
- Native compression
- Optimized graphics API (instancing, cbuffers, VAO, vertexBuffer partial update)