Supported Rendering Features
Below you can find listed information on what rendering features we currently support, plan to support and ones that we do not.
Supported
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)
infoMake 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.
infoWe do not support other rendering paths from Unity's built-in pipeline, only ForwardPath.
Spherical harmonics: LightProbes, ReflectionProbes, Ambient Probes
All built-in Unity uniforms (for lights, harmonics, matrices, screenparams etc.)
Unity Fog (Exponential, Exponential Squared & Linear Fog)
cautionCalls made to fog via scripts will cause shader issues in Luna, be sure to use the lighting settings window in Unity instead.
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.
Not Supported
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:
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).
Optimized graphics API (instancing, cbuffers, VAO, vertexBuffer partial update)
Shader Lab Features
In this section are displayed all the ShaderLab features that are supported by Playable Plugin.
Shader Lab Features
ShaderLab Feature | Supported |
---|---|
Shader block | Yes |
Properties block | Yes |
Fallback block | Only for ShadowCaster |
Subshaders
SubShaders | |
---|---|
Feature | Supported |
SubShader block | Yes |
PackageRequirements block | No |
SubShader LOD block | Yes |
SubShader Tags | |
Feature | Supported |
SubShader Tags block | Yes |
RenderPipeline SubShader tag | No |
Queue SubShader tag | Yes |
RenderType SubShader tag | Yes |
DisableBatching SubShader tag | No |
CanUseSpriteAtlas SubShader tag | No |
PreviewType SubShader tag | No |
SubShader Commands | |
Feature | Supported |
UsePass | Yes |
GrabPass | Yes |
Pass
Pass | |
---|---|
Feature | Supported |
Pass block | Yes |
Name block | Yes |
Pass Tags | |
Feature | Supported |
Pass Tags block | Yes |
LightMode tag | Yes |
PassFlags tag | No |
RequiteOptions tag | No |
Pass Commands | |
Feature | Supported |
AlphaToMask | No |
Blend | Yes |
BlendOp | Yes |
ColorMask | Yes |
Conservative | No |
Cull | Yes |
Offset | Yes |
Stencil | Yes |
ZClip | Yes |
ZTest | Yes |
ZWrite | Yes |
#pragma
#pragma | |
---|---|
Feature | Supported |
#pragma target <value> | 2.0 - 3.0 (limited for 3.0) |
#pragma only_renderers <value> | Luna needs GLES target shaders |
#pragma exclude_renderers <value> | Luna needs GLES target shaders |