What the two 2VFX modes mean
Native Semantic maps supported fields from the open particle document into Unity ParticleSystem modules. You can inspect lifetime, emission, shapes, curves and other portable settings in the generated prefab. It does not convert a browser shader into Unity’s native particle simulation instruction-for-instruction.
Baked Visual uses a PNG atlas to create an additional flipbook-driven prefab. It preserves the source imagery through a simpler rendering contract. In the current prototype the atlas is generated from a procedural preset or supplied by you; it is not an automatic bake of every change made in Modules.
| Question | Native Semantic | Baked Visual |
|---|---|---|
| Can I tune particle motion in Unity? | Yes, supported ParticleSystem fields remain editable. | The image sequence is fixed; changing the image requires a new atlas. |
| Does it preserve arbitrary 3D views? | Native particles can be viewed in the scene, with engine-specific appearance. | The effect is a camera-facing image representation. |
| Can the browser and Unity be pixel-identical? | Not promised by equal parameters or seeds. | A constrained atlas/camera/blending test can measure close agreement. |
Lock the comparison conditions
A useful visual comparison needs more than two screenshots. Fix the model transform, effect transform, camera, frame size, background, time, colour space and blend convention. Disable unrelated post-processing during the diagnostic pass, then reintroduce the game’s actual rendering settings as a second test.
Use a sequence of timestamps such as 0, 0.25, 0.5 and 1 second, plus continuous playback. This proposed protocol helps catch onset and loop errors that a peak frame hides. A different camera distance or exposure invalidates the comparison even if the effect itself is unchanged.
Measure both opacity and colour
Alpha intersection-over-union measures silhouette overlap under a declared threshold. Alpha mean absolute error measures opacity differences. Colour error should be computed in a common representation: a browser PNG can store straight RGB while a transparent rendered target holds premultiplied RGB.
For one reference 2VFX 4×4/12 FPS fire case, the project includes a browser → fresh TGZ → actual Unity Baked prefab comparison. That is evidence for the tested contract, not a certificate for every imported atlas, camera or engine pipeline. Keep the test conditions with the result rather than quoting a number without its context.
Native export needs semantic tests too
For native mode, inspect the imported module values before judging its appearance. Check enabled states, constant/curve modes, XYZ groups, burst timing and sub-emitter links. Unity requires compatible curve modes within an axis group; different numeric values per axis are still allowed.
Then test runtime behaviour. For a death-triggered child, verify that it does not emit independently before a parent dies. Repeat the prefab builder to catch duplicate objects or links. A successful C# compilation says nothing about these behaviours by itself.
Use the mode that fits the game
Choose native mode when engine-side parameter control is central to the effect. Choose baked imagery when a predictable animated shape matters more than volumetric freedom. Keep the .2vfx source in both cases so you can return to authoring.
A successful Built-in test does not establish URP, HDRP, VFX Graph or Niagara compatibility. Treat engine and render-pipeline versions as part of the asset contract, and budget a separate validation pass when they change.