Amplify - Virtual Texturing for Unity Pro [Beta 1.2.1]

This product is no longer beta software. We’ve opened a new thread for the official product release. You can also find more information at the official product page.

Thank you all for taking the time to provide us with valuable feedback during the beta. Cheers.

Hi.

This is obviously looking extremely interesting, but could you describe the whole thing in more detail?
I suppose this technology makes it possible to paint all the details in the scene by hand (as done in Rage)?
I am sure not everyone is familiar with what exactly the words SVT mean.

thanks,
Slav

very nice - looking forward to the release or even a beta tester :slight_smile:

Hi Slav,

While this version of the plugin won’t support painting, it is planned for a future release.

Very succinctly, SVT or just Virtual Texturing allows you to have a gigantic texture on disk while only a small visible portion exists in video memory. You just keep adding textures worrying less about texture limits and let the system handle the load.

For example, the maximum supported size by this system is 524288 x 524288, or around 2 TB of raw uncompressed data. This data is then heavily compressed to a few GB by the system in order to make it viable. However, by default only two 4096 x 4096 textures are allocated by the VT system to render the scene. Of course, you can manually tweak this value depending on your target platform and let the system balance the budget.

The system will fetch pieces of the larger texture from disk depending on your camera view. Never more than what is actually needed. So, in practice, you’ll get more detail using the same amount of texture memory. Plus, you get an automatic, unified texture streaming system.

I usually show this video to people that are trying to understand how it works and what the advantages are:

Looks very interesting. A few questions:

  1. Does it work with Unity’s real time shadows? In deferred and forward rendered modes?

  2. Ball park price for indy developers?

  1. Does it work with Unity’s real time shadows? In deferred and forward rendered modes?

Yes, it integrates nicely with dynamic shadows, light maps, and both rendering modes. However, using VT comes with a small shader performance penalty, so deferred mode is advised.

  1. Ball park price for indy developers?

Certainly yes. :slight_smile:

  1. does this work with webplayer? :wink:

Love it, want it, what orifice do I insert my credit card into.

  1. does this work with webplayer?

Not at the moment. I’m still trying to get around a few technical limitations preventing it. I see it as an important feature to have in the long run, but I’m focusing on standalone for now.

hans, duke: cheers :slight_smile:

This looks pretty awesome - add in some splats and 3D paint and we can give id a run for their money :slight_smile:

Anadin, their system is extremely robust. But hopefully this will be a very decent and cheap alternative.

BTW, these feedback posts in desperate need of votes, would go a long way to help improve this system:
http://feedback.unity3d.com/forums/15792-unity/suggestions/399927-graphics-texture2d-setpixels-for-compressed-textu
http://feedback.unity3d.com/forums/15792-unity/suggestions/852771-incremental-additive-buildassetbundle

Where do I sign up for the beta? where do I pay …where do I give my first born?

Ok, we were planning on making something like this internally …now you’ve gone and saved us the time :slight_smile:

Reapazor, :slight_smile: I’m glad this is of interest to you. I might end up anticipating the beta sign-up, so very soon.

We have a few projects that we are working on right now that would greatly benefit from this :slight_smile:

This looks very interesting, thanks for the explanatory video as well.

I understand it’s not it’s primary use, but could your implementation in Unity be used also for a 2D game, where you have tons of character animation frames, and have a virtual cache set up to hold only the needed frames in the VRAM? (Usually the character frames are stored in bulk in larger textures (atlases), using UV coordinates change to display only the needed frame on a quad (so basically you have an animated texture). If I get it right, with your setup it would be better to store all the character frames in one single huge texture.)

Matthew, will any of them require support for individual textures larger than 16K x 16K? I’m asking this because I’ve planned support for this for a post-1.0 release, but I could anticipate that if the demand is high. This could be the case for apps based on geographic or urbanistic data.

Andrej, the thing about 3d is that it is somewhat forgiving when it comes to streaming in textures. Sometimes you notice the textures popping in, but due to the depth, page loading order and the way texture filtering works, you rarely do. Plus, this system pulls pages based on what is visible to the camera. A 2d game, on the other hand, will require immediate access to full quality pages, so no progressive loading. The streaming system would have to be a bit different. Not based on what is visible, but probably based on the player’s state.

In the future, I could extend it to allow more control over the streaming. I hadn’t even considered that possibility, so thanks for pointing out.

Hi Diogo

Great work - :slight_smile:

Sign me up for Beta.

TAKE MY CREDIT CARD :slight_smile:

Does it work with the iPhone?

I need this like… YESTERDAY!

If any costs are involved, I’d love to purchase. Where do I sign up?

-TornadoTwins

maxfax2009, thanks! Based on the info I have, the only limitation preventing this from running on iPhone 3gs and 4g is the lack of RenderTexture support on Unity for iOS. Unfortunately, that’s a deal breaker.

TornadoTwins, I’m doing my best to get this out the door asap. Public beta in January.

This would be absolutely brilliant for huge satellite textures mapped on terrain.