2
\$\begingroup\$

Am playing around with MagicaVoxel, then exporting as an obj, and importing into Unity.

What I am trying to do is make it appear exactly the same in Unity as it does in MagicaVoxel, but am not sure how. I've played with the lighting, a few different shaders, but nothing comes close to how it looks in MagicaVoxel.

Below is a screen shot of Unity and MagicaVoxel so you can see the difference. The colors in Unity just seem so dull. Looking at the sand in MagicaVoxel compared to Unity is so much brighter. I know that there is AO in MagicaVoxel, but for now I'm just trying to get the colors to be correct.

The object is using the standard shader (Unity 5.3), with the albedo set to an image...

Albedo

In the Unity screen shot, it's using a basic directional light (default settings in screen shot).

Any advice?

Unity MagicaVoxel

\$\endgroup\$
  • \$\begingroup\$ The MagicaVoxel website describes the tool as "a free lightweight 8-bit voxel editor and interactive path tracing renderer". Path tracing is a rendering technique which works completely different than the scanline-rendering engine used by Unity. It might be quite hard to get the exact same results. \$\endgroup\$ – Philipp Feb 22 '16 at 15:40
  • \$\begingroup\$ MagicaVoxel added the bake option, maybe if you get rid of the Unity directional light and use the bake textures it should work. I'm not a Unity pro, just guessing. \$\endgroup\$ – DH. Feb 22 '16 at 15:42
1
\$\begingroup\$

I'd start with increasing intensity of ambient light to a much higher value, to make unlit sides of voxels brighter. Compare vertical faces on the left sides of the screenshots: they are much darker in Unity. You also might need to increase intensity of the directional light as well, to match overall brightness of the scene. And, yes, the next important step would be adding ambient occlusion (either realtime or baked), it will significantly improve the picture.

\$\endgroup\$
0
\$\begingroup\$

If you want to get the exact same result, you have to implement in Unity the same rendering as the one used in MagicaVoxel, and to create a scene with the same lighting and material data.
As noted in the comments, MagicaVoxel uses a ray-tracing solution that might be hard to implement using Unity features. I heard however that the new experimental "Scriptable Render Loop" feature might give you enough flexibility to try to do it...
Alternately, since the main contribution of path-tracing to a scene rendering is the quality of Global Illumination, you might be able to get a closer result by playing with Unity's Global Illumination settings (Light Maps, Light Probes, Image-Based Lighting I guess - sorry I don't know these features well enough to give more advice).

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.