-
Notifications
You must be signed in to change notification settings - Fork 42
Compatibility
There is few things we should care when talking about using NSprites in real projects. Since this package uses GPU instancing
and ComputeBuffer
on CPU side with StructuredBuffer<T>
on GPU side (in shader) to send sprites data, we need platform and Graphics APU support
this two.
So you can see Platform and Graphics API compatibility tables.
This is complicated a bit, because you can run any of APIs, but some doesn't support all NSprites feature (PropertyUpdateMode
).
Direct3D11
, OpenGLCore
and OpenGLES3
don't support Reactive
and Static
update modes, using this modes producing graphic artifacts. Though you can use EachUpdate
which pretty stable.
Though I have several ideas how I can try to bring full support for listed APIs.
Graphics API | Description |
---|---|
Direct3D11 | EachUpdate mode |
Direct3D12 | ✅ supported |
Vulkan | ✅ supported |
OpenGLCore | EachUpdate mode |
OpenGLES3 | EachUpdate mode |
⚠️ NOTE: unity by default sets graphics API automatically to best depending on your current platform, so it can be Direct3D11 in most cases, which have problems withStatic
andReactive
update modes, so select more suitable API or use onlyEachUpdate
mode.
In terms of platform we sometimes have problems with using ComputeBuffer
, because some platforms don't support it, and some have limited StructuredBuffer<T>
count. Down below you can see table with current state of what we know about compatibility on platforms. This information will be updated with more details.
If you have any information please share.
Platform | Description |
---|---|
PC | ✅ supported |
WebGL | ⛔ can't use ComputeBuffer
|
Android X | ❔ not fully checked |
Android 9 | ⛔ can't use StructuredBuffer
|
iOS | ❓ not checked |