Page 1 of 1

Virtual texture - custom layout

PostPosted: Tue Dec 06, 2016 10:54 am
by ChezDoodles
For a virtual texture, I can select between a couple of layout presets - Unity legacy, Unity5, Alloy, UBER, Lux and Skyshop. These have support for predefined maps, but what if I need to add yet another map? For instance, all materials within one of my virtual textures use emission maps. How can I add emission map to the list of included maps for this virtual texture?

Regards,
Sven Myhre

Re: Virtual texture - custom layout

PostPosted: Tue Dec 06, 2016 11:08 am
by Ricardo Teixeira
ChezDoodles wrote:For a virtual texture, I can select between a couple of layout presets - Unity legacy, Unity5, Alloy, UBER, Lux and Skyshop. These have support for predefined maps, but what if I need to add yet another map? For instance, all materials within one of my virtual textures use emission maps. How can I add emission map to the list of included maps for this virtual texture?

Regards,
Sven Myhre


Hello Sven,

Thank you for getting in touch, we really appreciate it. Unfortunately, custom layout presets will only be available in future versions, the current channels are fixed. Can you elaborate on your use of the emissive channel, and what other channels would you need to virtualize in the same material? Any additional information that could help us improve AT2 would be very welcome.

Depending on your current use, we might be able to pack it using the existing channels. We recently added support for AT2 materials in or own shader editor, the Amplify Shader Editor.

Thanks!

Re: Virtual texture - custom layout

PostPosted: Tue Dec 06, 2016 12:07 pm
by ChezDoodles
Wow, that was a fast reply - thanks!

I use the Unity Standard metallic shader.

The project in question is a large scale transport/railroad game, and in addition to using AT2 for the terrain I also found AT2 to be a great solution for managing texture loading/unloading for vehicles (mostly trains but also boats and airplanes) - and for rapid loading of new models. I have about a dozen airplanes and boats, as well as around 100 unique locomotives and the same amount of cars. Any combination can be on-screen at any time. All textures are full PBR and either 2K or 4K resolution. The third virtual texture is used for buildings.

I have full day/night cycle, and all the models have externals lamps in various colours as well as lower-intensity internal cab lights and some even have light maps for the exteriors. These are baked into an emission map (same uv-map as regular textures), and I lower the intensity to 0.1 during daytime and turn the intensity to full at night. Combined with a bloom filter and some motion blur, it gives a very nice lighting solution that also bleeds somewhat to the surrounding areas - without the need of real lighting - very important since you can see more than one hundred locomotives and cars visible on screen simultaniously at some junctions. But the emission map has to be full RGB - just intensity does not cut it.

Ideally, I would also like to have a separate mask for snow/sand/dust build up on the model over time. These should build up first in corners and flat surfaces, but not so much if the area has geometry above. I could pack this info into the albedo alpha channel, and customise the Unity Standard shader.

Ideally, I would also like to have a mask for team/company colours and another mask for how decay develops - but these features might end up being postponed for a later update.

Re: Virtual texture - custom layout

PostPosted: Tue Dec 06, 2016 3:15 pm
by Ricardo Teixeira
ChezDoodles wrote:Wow, that was a fast reply - thanks!

I use the Unity Standard metallic shader.

The project in question is a large scale transport/railroad game, and in addition to using AT2 for the terrain I also found AT2 to be a great solution for managing texture loading/unloading for vehicles (mostly trains but also boats and airplanes) - and for rapid loading of new models. I have about a dozen airplanes and boats, as well as around 100 unique locomotives and the same amount of cars. Any combination can be on-screen at any time. All textures are full PBR and either 2K or 4K resolution. The third virtual texture is used for buildings.

I have full day/night cycle, and all the models have externals lamps in various colours as well as lower-intensity internal cab lights and some even have light maps for the exteriors. These are baked into an emission map (same uv-map as regular textures), and I lower the intensity to 0.1 during daytime and turn the intensity to full at night. Combined with a bloom filter and some motion blur, it gives a very nice lighting solution that also bleeds somewhat to the surrounding areas - without the need of real lighting - very important since you can see more than one hundred locomotives and cars visible on screen simultaniously at some junctions. But the emission map has to be full RGB - just intensity does not cut it.

Ideally, I would also like to have a separate mask for snow/sand/dust build up on the model over time. These should build up first in corners and flat surfaces, but not so much if the area has geometry above. I could pack this info into the albedo alpha channel, and customise the Unity Standard shader.

Ideally, I would also like to have a mask for team/company colours and another mask for how decay develops - but these features might end up being postponed for a later update.


Hello Sven,

No problem, happy to help. It sounds like an interesting project, and a great fit for AT2, we would be happy to help you take advantage of our texture virtualization tech. It's great to know that you found it useful for faster loading, the video ram savings and reduced build size are also a great addition.

That's a pretty interesting setup, I was going to suggest virtualizing the intensity but I can see now that it would not be sufficient. For your other requirements, you could easily mix none-virtualized content with virtualized content using our node based shader editor.

Image

Which channels exactly (textures) do you need for your vehicle and building material? For example, are you using the full standard material with Albedo+Alpha, Metallic/Specular + Smoothness, Occlusion, Emission, Normal and Height?

Looking forward to your feedback, thanks!

Re: Virtual texture - custom layout

PostPosted: Tue Dec 06, 2016 9:54 pm
by ChezDoodles
AoT20160405-BoxCars.jpg
AoT20160405-BoxCars.jpg (108.55 KiB) Viewed 11796 times

AoT201604-Challenger.jpg
AoT201604-Challenger.jpg (87.39 KiB) Viewed 11796 times


The models use Albedo (no alpha), Metallic+Smoothness, Occlusion, Emission and Normal. I do have Height, but have decided not to use Height at the moment.

So except for the Emission, I have what I need for the models.


HOWEVER - I do have a couple of other use-cases as well:

1) PLANET-VIEW

The game is basically played in this view. All the strategic decision and the construction is done in PLANET-VIEW. You have an entire Earth that you can spin around and zoom from space to something that resembles the graphics in the latest Civilization games. The entire earth is mapped in there and basically all the large-scale features are present. The earth-texture is basically 32000 x 16000 pixels, and it use basic Albedo + Metallic+Smoothness + Normal + Height + SDF (one channel). The SDF define a super-smooth shoreline (the water is rendered using separate external textures, but the land is rendered using the 32000 x 16000 pixel textures. The earth globe is rendered using the a 20000+ triangle sphere mesh with shader based tessellation. The tessellation level is adjusted to match the zoom level, so up close ("Civilisation view") there is a lot of tessellation.

This is all being replaced by AT2 - since it simplifies the rendering code and management loading/unloading earth tiles. My plan is to pack the SDF into the Albedo alhpa channel - so no changes are necessary on your part.

2) SPECTATOR-VIEW

It is possible to zoom in and follow the trains around the globe. For this I dynamically build standard Unity terrain tiles using MapMagic on the Asset Store. The earth has 1200 x 600 Unity terrain tiles. Using AT2, the plan is to have MapMagic generate all these tiles and save the bitmaps, and the AT2 load them during runtime.

There is no gameplay in the SPECTATOR-VIEW - but a lot of people love to watch trains running along the landscape, so this is just a very cinematic and zen-like experience.

If this works well, I plan on change the 32000 x 16000 PLANET-VIEW textures to use exact scaled down versions of the actual terrain tiles. All this is possible thanks to AT2, and I really hope this will increase the graphics quality by quite a few steps. Having a PLANET-SIZE exact zoomed down replica of the actual game world would be so amazing!!!!

So, to get this going, I guess I would need AT2 to save/load all the terrain maps (I assume the "right" way to do it, is to render 4096x4096 albedo, normal, height maps. In addition I would need to save/load maps that define grass and trees. I hope this is all possible using AT2... ?

Re: Virtual texture - custom layout

PostPosted: Wed Dec 07, 2016 12:32 pm
by Ricardo Teixeira
ChezDoodles wrote:
AoT20160405-BoxCars.jpg

AoT201604-Challenger.jpg


The models use Albedo (no alpha), Metallic+Smoothness, Occlusion, Emission and Normal. I do have Height, but have decided not to use Height at the moment.

So except for the Emission, I have what I need for the models.


HOWEVER - I do have a couple of other use-cases as well:

1) PLANET-VIEW

The game is basically played in this view. All the strategic decision and the construction is done in PLANET-VIEW. You have an entire Earth that you can spin around and zoom from space to something that resembles the graphics in the latest Civilization games. The entire earth is mapped in there and basically all the large-scale features are present. The earth-texture is basically 32000 x 16000 pixels, and it use basic Albedo + Metallic+Smoothness + Normal + Height + SDF (one channel). The SDF define a super-smooth shoreline (the water is rendered using separate external textures, but the land is rendered using the 32000 x 16000 pixel textures. The earth globe is rendered using the a 20000+ triangle sphere mesh with shader based tessellation. The tessellation level is adjusted to match the zoom level, so up close ("Civilisation view") there is a lot of tessellation.

This is all being replaced by AT2 - since it simplifies the rendering code and management loading/unloading earth tiles. My plan is to pack the SDF into the Albedo alhpa channel - so no changes are necessary on your part.

2) SPECTATOR-VIEW

It is possible to zoom in and follow the trains around the globe. For this I dynamically build standard Unity terrain tiles using MapMagic on the Asset Store. The earth has 1200 x 600 Unity terrain tiles. Using AT2, the plan is to have MapMagic generate all these tiles and save the bitmaps, and the AT2 load them during runtime.

There is no gameplay in the SPECTATOR-VIEW - but a lot of people love to watch trains running along the landscape, so this is just a very cinematic and zen-like experience.

If this works well, I plan on change the 32000 x 16000 PLANET-VIEW textures to use exact scaled down versions of the actual terrain tiles. All this is possible thanks to AT2, and I really hope this will increase the graphics quality by quite a few steps. Having a PLANET-SIZE exact zoomed down replica of the actual game world would be so amazing!!!!

So, to get this going, I guess I would need AT2 to save/load all the terrain maps (I assume the "right" way to do it, is to render 4096x4096 albedo, normal, height maps. In addition I would need to save/load maps that define grass and trees. I hope this is all possible using AT2... ?


Hello Sven,

Thank you for the additional information, we really appreciate it. The screenshots look great, cant wait to see the game in action. It really sounds like an amazing project, you can definitely eliminate common textures limitations by using AT2. Emission(RGB) excluded, it should be possible to meet all your requirements. Regarding your last questions about grass and trees, it really depends on how the map is used and stored(virtualized) but, hopefully, it's not going to be a problem.

I'm going to contact you via email so that we can discuss possible custom shaders and if we can bypass the emission(RGB) limitation.

Thanks!