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 Unity Playworks Plugin 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.
- caution
In order to work property, make sure to enable Webgl2 profile ( Settings > Addvanced ).
There are some limitations on Linear color space support. Following features are not implemented:
- Texutre3d
- Texture2DArray
- Cubemaps
- Runtime texture creation
What we plan to implement
These are features that we have on our roadmap to add to the Unity Playworks Plugin Engine, be sure to check out our release notes when we update Playable to see what new features are available.
Not Supported
Unity Playworks Plugin initializes WebGL 1.0 context by default. It can be changed to WebGL 2 in Settings/Advanced tab (starting from Playworks Plugin 6.0.0).
To make sure Unity Playworks Plugin is able to utilize all your shader code, please try running the game targeting OpenGL ES 2 or OpenGL 3 API.
Below are features we currently do not support:
Shader target 3.5 and above (Supported with Playworks Plugin 6.0.0)
HDR (because of lack of float textures)
Color values from fragment shaders are clamped01 for WebGL1.
Optimized graphics API (instancing, cbuffers, vertexBuffer partial update)
Shader Lab Features
In this section are displayed all the ShaderLab features that are supported by Playworks 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 (support up to shader model 4.0 starting from Playworks Plugin 6.0.0) |
#pragma only_renderers <value> | Unity Playworks Plugin needs GLES target shaders |
#pragma exclude_renderers <value> | Unity Playworks Plugin needs GLES target shaders |