Search Unity

Amplify Texture 2 - Development Showcase

Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Jan 20, 2014.

  1. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hello Ricardo,

    im testing AT2 and really think of buying it, but i have a problem with any kind of detail maps, i want a 32k detailmap on my model. The 32k albedo and normalmap works great but the detailmap still ends up by 8192 pixels. In my project its importand that the detailmap have 32k too.
    Can AT2 handle this or is it only not supported in the trial version?

    I testet the unity 5 "Standard (Specular setup)" and a converted vesion of "Marmosets beta skin detail".
    If you could help me using AT2 with Marmosets skin detail map, AT2 would be the very first choice for my project :)

    Thank you in advance.

    Luk
     
  2. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Thank you for your interest, we really appreciate it. It's not a trial limitation, Virtual Textures can only store a specific set of texture channels, by default, the Detail Map is not included in the Skyshop preset. Any textures not set to one of the used Shader Properties will not be virtualized.

    The Skyshop preset currently virtualizes the Base Color, Normal Map and Specular Map. If you don't need to virtualize the Specular Map, and since it's full RGBA, you could always try to use it to store your detail map; this is a common solution for users that need to blend between two virtualized Albedo Textures, one stored in the Base Color and another in the Specular Map channel.



    You can adjust your shaders as required, and even add your own Shader Properties names to your Virtual Texture(_MainTex excluded, currently fixed). If you prefer a more visual approach to shader development, we recommend checking out our node-based editor, Amplify Shader Editor, it fully supports AT2.



    Be sure to let us if you have any followup questions, we would be happy to elaborate.

    Thanks!
     
    Last edited: Jul 11, 2017
  3. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hello Ricardo,

    i purchased Amplify Shader Editor yesterday and i want to know if there is a way to add some more virtual layers to the skyshop layout preset of the virtual texture node or is there a way to lerp two 32k textures into one layer input like _MainTex?
    Im only looking for a way to input a virtual detail map.
    Thank you in advance!
     
  4. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Thank you for your purchase, we really appreciate it. You currently can't add additional layers to a Virtual Texture, however, you can change its shader properties in order to target specific textures. Take the Specular Map Layer for example, its currently targeting the respective property _SpecTex; you can edit it to target something else in your custom Skyshop shader.


    With ASE, the process of creating AT compatible shaders is simplified. Assuming that AT2 is set up in your scene(manager, camera runtime and virtual texture) you will simply need to create a new shader with 2 Virtual Texture Object nodes and lerp them; 1 set to _MainText and the other set to _SpecGlossMap. Keep in mind that not all Virtual Texture layers use the same channels, _SpecGlossMap is a good choice if you need full RGBA.



    Are you using Unity 2017?

    Be sure to let us know if you have any followup questions, we would be happy to elaborate.

    Thanks!
     
    Last edited: Jul 12, 2017
  5. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hey Ricardo,

    it works and im using Unity 5.5.1f1 Personal, but im not happy with the result, the amplify unity standard specular looks better. Maybe im not so familiar with all nodes.
    Is there a way to edit the nodes of your amplify unity standard specular setup?
    I only need another detail map as a solution instead of a virtual texture because i need the albedos and normal maps.
    Or is there a special code i can write in that shader to add an extra detail map?
    Thank you for your support!
     
  6. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Interesting, I was only able to import 32k images with Unity 2017.1. Maybe it's time to upgrade my workstation.
    No problem, we would be happy to help. Replicating the Unity Standard shader in ASE does involve some work, we would be happy to point you in the right direction if you are interested in sharing your shader. Was it set to Specular? You have to change the Light Model used in the shader properties.
    Unfortunately, our AT2 Unity Standard Specular shader is not made in ASE, it's the original Unity shader but converted to work with AT2.
    No special code, so to speak, you just need to make sure that AT2 knows which Shader Properties to look for and that the shader has been properly converted to virtualize the required texture. Unfortunately, we can't virtualize the Detail Texture in the Standard Unity shader, it uses a different UV coordinate. ASE is definitely the most flexible option if you are not entirely familiar with shader creation, we can help.

    Thanks!
     
    Last edited: Jul 13, 2017
  7. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hey Ricardo,

    im pleasantly surprised about the possibilities with the amplify shader editor. I nearly build the shader i want and i can add so many cool extra features to it, its really very nice.
    With the virtual node i already implemented the 32k texture and the 32k normalmap.
    But i have only one problem to reach my aim.
    I can overlay as many normalmaps as i want without loosing contrast or details via the add node.
    But i cannot overlay two albedo textures via the add node without getting strange results (wrong colors/ lost details).
    The Unity shader can overlay detail albedos without loosing any contrast or details from the main albedo.
    Is there a node to get to a same solution with two or three textures overlayed without loosing details?
    If you use the lerp node you have to choose the weights. For example 0.5 means you loose 50% Details of both Textures.
    Thats not what i want.
    I would be happy if there is a proper way for that.
    Thank you in advance.
     
  8. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Awesome, happy to know that you are enjoying using ASE.

    Adding normal maps may produce unwanted results in some cases, we recommend using the Lerp or Weight Blend node, don't forget to normalize your results; there's also a Blend Normals node specific to that purpose.

    You should be able to replicate the same technique, do you happen to be using one of the virtualized textures as the detail texture? Keep in mind that after a texture is virtualized it will be set at 64x64, only in the editor of course, AT2 uses the original data at its highest resolution.

    There are a couple of techniques that you can use to blend the detail texture as it's done in the Standard shader.(Line 86 of the UnityStandardInput.cginc located in the AT2 shader folder). Unfortunately, it seems that they are using an internal value that causes our results to be slightly different. We will have to run a few additional tests but the textures are usually mixed using the Multiply, Lerp, or Add node.

    We will let you know as soon as we identify the differences, apologies for the inconvenience.

    Thanks!
     
  9. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hey Ricardo,

    yes im using the virtual texture combined with the non virtual detail albedos and i finally got the right results by adjusting the right color and contrast value while multipling all layers together.
    Im even using a third detail layer without problems.
    But i have another problem and i dont know if this is a unity limitation or a wrong quality setup or something else.
    Maybe you have an idea whats wrong.
    As you can see on the attached picture, i got strange distortions on the third detail map.
    Maybe a tiling of 40000 is to much?

    Thanks.

    Detail3.JPG
     

    Attached Files:

  10. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Glad to know that part is working now.

    It could be a filtering issue, 40000 does seem a bit high. Can you share a sample to support@amplify.pt?

    Thanks!
     
  11. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hey Ricardo,
    sorry for the long response. In Unity 2017 it looks a bit better but the distortions are caused by the large amount of tilling and can be solved by splitting up the model in smaller parts with smaller UV's. In my case 1/4 of the UV solves the problem.

    I have another question. Is it possible to use the virtual displacements for android? I want to use some nice tesselations for mobile.

    Thank you in advance.
     
  12. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello!

    No problem, thank you for sharing additional information.

    It really depends on the mobile device, what's your target?

    Thanks!
     
  13. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hello Ricardo,

    i tested some tesselations and i dont know why the self shadows are not working like in your examples.
    Is that a result of the virtual texturing?
    I also setup the right shadow distances in the quality settings.

    Thanks!
     
  14. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thank you for the additional information. Is the problem present without Virtual Texturing?

    Can you send us the shader used for additional tests on our side?
     
  15. Da-Luk

    Da-Luk

    Joined:
    Apr 25, 2017
    Posts:
    53
    Hey Ricardo,

    i will send you the shader via email.
    But in my case i realized that my terrain model is to huge for shadow usage.
    I used a blender modelled terrain and i got a shadow like effect with a height generated normal map.
    And now i want to use a simple plane with tesselations from that height map. But the shadow effect of the normal map isn't working.
    It seems like the new view directions of the tesselated planes have no influence on the normal map.
    Is it possible to add that feature and how?
    Thank you in advance!
     
  16. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Looking forward to the additional information we requested via email. As soon as we have all the elements we can start testing it on our side. Some screenshots of the problem could really help us debug the issue. Not entirely sure what feature you are referring to, please do elaborate when you get back to us via email.

    Thanks!
     
    Last edited: Aug 1, 2017
  17. YHS

    YHS

    Joined:
    Aug 10, 2014
    Posts:
    31
    Hi there, I'm wondering how Amplify Texture helps my terrain. It seems I have to do my terrain texture with Multiple UV Tiles? Like cut my terrain texture into chunks and use Amplify Texture to streaming it? If I didn't understand wrong, the power of Amplify texture is make an object have multi-maps so that when we want to use high detail textures we won't generate extra materials or big resolution textures. So if my performance bottle neck is not in the texture size then Amplify texture are not my solution. Right?

    PS. Is there anywhere I can find demo terrain scene of Amplify Texture?

    Thank you.
     
    Last edited: Sep 4, 2017
  18. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Thank you for your interest, we really appreciate it. Please note that Terrain support is currently limited to Coverage Diffuse and Normals, not the actual Splats or Controls Splats.

    Not at all, that's completely up to you. We do recommend it, it's a great way to manage large texture collections exported from tools such as World Machine or World Composer.

    Amplify Texture 2 only streams the textures, there's no direct streaming gain from dividing the actual terrain since you can use large Multi-Tilve UV collections in a single terrain chunk.

    AT2 is specifically for texture streaming, users must supply the textures meant for virtualization. What do you mean by "multi-maps"? Virtualized content depends on the Preset used, the Standard default Preset accepts 1 Albedo Layer, 1 Normal, 1 Metallic, 1 Roughness, 1 Height, and 1 Occlusion, multi or single tile.

    Multi-tile Texture collections help you reduce the number of materials used, instead of 2 materials with 1 texture each, you could use 1 material with 2 texture tiles.

    AT2 eliminates common texture quantity and resolution limitations, you could literally use over 100GB of virtualized textures in a single scene without any memory related issues.

    Unfortunately, we currently don't offer any demos, you can however test the fully functional trial version. It should be quick to setup after following the in-depth tutorial; simply create an AT2 Material using the AT2 Terrain shader, set the Coverage textures and apply it to your terrain.

    Let us know if you have any followup questions, we would be happy to elaborate.

    Thanks!
     
  19. YHS

    YHS

    Joined:
    Aug 10, 2014
    Posts:
    31
    But without Multiple UV Tiles, there's no meaning to use Amplify Texture, right?

    Sorry, what I mean "multi-maps" just like you said, instead of 2 materials with 1 texture each (multi-maps), I could have only 1 material(1 texture) but 2 texture tiles.

    I try with Amplify Texture in my terrain scene, but maybe like what I said, I don't have large amount of terrain textures export by world machine or something, this is not my performance bottle neck. I export one color map and one normal map of my terrain from World Creator, then set up AT2 Material with AT2 Terrain Shader. Looks weird with Bumped Specular shader but also no really reduce large drawcall as I expect(see attachment). Hope my experimental is in the right direction.

    Thanks for fast and patient reply, thanks a lot.
     

    Attached Files:

  20. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Not at all, was it something in our product description or video tutorials that gave you that idea? Amplify Texture allows you to bypass common texture size, quantity, and video memory limitations without compromising quality, performance or build size. With AT2 Unity Scenes can use several gigabytes of textures without running into any video memory related issues, individual texture size is not a factor. Each texture can go up to 16384 x 16384 pixels using Unity 5 or even 32768 x 32768 pixels using Unity 2017. You can take advantage of Multi-Tile UV collections but it's completely optional.

    Do you mean having two textures with just 1 Material? If so, yes, multi-tile uv texture collections allow you to do that.

    Unfortunately, AT2 is not a draw call reduction tool, there's actually a small added cost that can be mitigated using Dynamic/Static Batching and removing non-virtualized contend from the AT2 Manager Culling Mask options. What result were you looking to achieve? Let me know, I would be happy to elaborate further.

    Looking forward to your reply.

    Thanks!
     
  21. YHS

    YHS

    Joined:
    Aug 10, 2014
    Posts:
    31
    I read this link: http://www.neilblevins.com/cg_education/multiple_uv_tiles/multiple_uvs_tiles.htm
    And I thought the tech behind AT2 is Multi-Tile UV. But sounds like AT2 with out Multi-Tile can still helping bypass some limits. What's the tech behind this? All because of streaming?

    Yes. Thank you.


    I have pretty low performance with terrain so I am trying terrain streaming and texture streaming to see if it helps. But performance bottle neck is not in the texture right now, it unity terrain have wrong/weird adaptive result as the experiment we did to compare with ue4 terrain. fps is way low than ue4 terrain. So AT2 can't help at this moment. But we still looking forward if we increase texture size in the further than AT2 might helps a lot.

    Thanks for all the nice reply. :)
     
    Last edited: Sep 7, 2017
  22. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Yes, all thanks to streaming and efficient compression.

    No problem, happy to elaborate.

    For that purpose you will need a terrain/asset streaming solution such as World Streamer. Be sure to also look into Gaia or World Creator.
     
    Last edited: Sep 7, 2017
  23. xj1982xj

    xj1982xj

    Joined:
    Sep 19, 2017
    Posts:
    35
    Very good tool , just eager to buy , but wonder if Amplify Texture 2 can meet this requirement as below:

    when i using ArCore to generate a procedural wall using another asset store tool named "Archimatix Pro", does Amplify Texture 2 support Assign its virtual texture through material to this random generated procedural wall ? currently don't have idea whether Amplify Texture 2 can do this , only i saw your showcase video is that the whole scene is there so that you can save scene to take effect , don't know whether when i random generated a object through AR phone , does Amplify Texture 2 can generated 16K texture through material to this generated object ? thanks.
     
  24. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello, thank you for your interest and kind words!

    While I'm not entirely familiar with Archimatix, as long as the AT2 textures are pre-processed in the editor and able to access the necessary UV information, it should work!

    I strongly recommend that you test it through our fully functional trial version available here, just to ensure that AT2 works as intended and fulfills your project's needs!

    Don't hesitate to get back in touch if you have any followup questions, thanks!
     
  25. xj1982xj

    xj1982xj

    Joined:
    Sep 19, 2017
    Posts:
    35
    thank you for your quick reply , one thing not clear is does Amplify Texture 2 can work with ArCore Phone ? can it reduce the AR Shader burner when using Material with large texture ( 8K/16K) ?
     
  26. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    I'm not familiar with that system but it shouldn't be a problem. Be sure to check the fully functional trial version.

    Amplify Texture Trial - Download
     
  27. xj1982xj

    xj1982xj

    Joined:
    Sep 19, 2017
    Posts:
    35
    Hi Amplify , is there any plan to support ArKit ?
     
  28. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello!

    We haven't planned on supporting ARKit and iOS support is not concluded, apologies for the inconvenience!
     
  29. xj1982xj

    xj1982xj

    Joined:
    Sep 19, 2017
    Posts:
    35
    Hi Borba, Thanks. one question is the reason for not supporting ARKit is from technical issue or other things ? if it is not technical issue , will Amplify Texture 2 for ARKit will be support in further years ? I mention this because in your wesite http://amplify.pt/unity/amplify-texture-2/ , i saw you write Note as : " Perfect for texture demanding VR and AR applications," , "iOS and Console Support Coming" , hope you give me some answer , so that i can choose the proper solution. thanks.
     
  30. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    No particular reason, it just wasn't planned.
    While Android support is already available, we currently don't have an estimate for iOS, unfortunately.
     
  31. xj1982xj

    xj1982xj

    Joined:
    Sep 19, 2017
    Posts:
    35
    Ok,thanks. hope you consider ArKit will be support in further release .;)
     
  32. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    If we get a chance, definitely!

    It is all dependent on iOS support though, so it might take some time, but thank you for sharing your interest!
     
  33. xj1982xj

    xj1982xj

    Joined:
    Sep 19, 2017
    Posts:
    35
    ok, thanks Borba, very appreciate. waiting for this.
     
  34. PerunCreative

    PerunCreative

    Joined:
    Nov 2, 2015
    Posts:
    113
    Hi :),

    any news or ETA on Vulkan/DirectX12 support?
     
  35. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    any reason why this was taken down, the trial and the pre-orders?
     
    Flurgle likes this.
  36. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Sorry, no official ETA at the moment.

    Yes, we have actually suspended public licensing as we further development in order to meet goals set forth to early adopters. Due to our small team size we are unable to take on new users or custom development requests at this time.

    Apologies for the inconvenience.

    Thanks!
     
  37. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    No problem do you have an ETA? We have a Steam game we are making, and was hoping to use it BUY it in the near future. With in 6 months . If not as much as I hate do to do , I will have to use something else. So please let us know. Thanks!

    PS: I own all your other tools.
     
  38. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Thank you for all your support, we really appreciate it!

    Apologies but, unfortunately, we currently don't have an ETA.
     
  39. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    Hi, do Amplify Textures 2 support Unity 2018 ?
    Also i want to know about the udim feature, do AT2 use one drawcall for each own 0 to 1 uv space of a udim?
     
    tdjemai likes this.
  40. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello!

    AT2 currently supports Unity 2018.1, and uses 1 material draw call, regardless of the amount of tiles in the UDIM.
     
    tdjemai and hopeful like this.
  41. Willchenyang

    Willchenyang

    Joined:
    Jul 20, 2018
    Posts:
    14
    Hello ! Are you guys still working on this? Is it going to work for iOS soon?
     
  42. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there!

    Yes, still working on it. We've actually added support for Android and Xbox One but I'm afraid iOS is not ready yet.

    I can't offer you an accurate ETA at the moment, our apologies.

    Thanks!
     
  43. Zergling103

    Zergling103

    Joined:
    Aug 16, 2011
    Posts:
    392
    I should give a fair warning - Amplify seems to harm fillrate. A build with amplify ran at 30 FPS while without it ran at 50 FPS. We believe this has to do with cache coherence on the GPU since whenever the virtual texture is cleared, frame rate improves but gradually degrades as texture memory is shuffled around. Increasing the tile size could help but the jump from 128x128 to 256x256 tripled the size of the amplify texture cache (even though the number and resolutions of textures remained constant) (bug?).
     
  44. PerunCreative

    PerunCreative

    Joined:
    Nov 2, 2015
    Posts:
    113
    We are also struggling with fillrate when using AT.
     
  45. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Virtual Texture caches are inherently sparse and not particularly coherent in regards to how they are ordered. Assuming cache coherency improvements are not feasible, we could possibly reduce the number of tiles in order to save on bandwidth. Unfortunately, bandwidth is not the only concern, indirection when first accessing the page table in order to determine where to get the tiles can also be problematic. There are a couple of options we can explore such as Cache Compression and hardware virtualization, do keep an eye out for news/updates, we have a few things planned.

    However, texture virtualization is "not free" in regards to processing cost; if your application is running at 50fps without AT2 the impact is going to be more noticeable. AT2 aside, what seems to be causing the performance issues in your application?

    What kind of performance are you seeing without AT2? Can you provide some profiler information?

    Thanks!
     
  46. Zergling103

    Zergling103

    Joined:
    Aug 16, 2011
    Posts:
    392
    We're finding that modifying the algorithm that populates the VRAM virtual texture so that tiles that are drawn together are positioned together helps improve performance and closes the gap between Amp and non-Amp performance significantly.
     
  47. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Any information you can send our way would be most welcome.

    I'm still interested in knowing more about your application performance without AT2, and with AT2.

    Thanks!
     
  48. PerunCreative

    PerunCreative

    Joined:
    Nov 2, 2015
    Posts:
    113
    Is there any chance you could share those changes?
     
    Last edited: Aug 14, 2018
  49. Zergling103

    Zergling103

    Joined:
    Aug 16, 2011
    Posts:
    392
    We're not sure they're ready for publishing because, although initially we see improvements, eventually the VRAM virtual texture gets scrambled up - it just takes longer. In other words, while we can confirm cache coherence does make a significant difference, we haven't found a silver bullet algorithm for placing tiles in the virutal texture to improve coherence in the long term.

    As far as our performance goes, we have a heavily detailed outdoor scene with an abundance of texture variety. Before we implemented amplify, we had 50 FPS at 1080p then post amplify that number went down to 30. Our bottleneck is fillrate as decreasing the resolution would improve frame rate in both cases.
     
    tdjemai likes this.
  50. PerunCreative

    PerunCreative

    Joined:
    Nov 2, 2015
    Posts:
    113
    Here are our observations. When using AT then our game has big issues with fillrate. With Nvidia 1060 the scene runs 60fps (locked, without vsync ~100fps) on full hd, but with 2560x1440 the framerate goes down to 30-40fps. I have found out that in PrePass.cs is method GenerateRequests which lowers or increases the quality based on amount of requests using lodBias. So I have implemented experimental feature which edits the LodBias parametr based on Texture Quality in QualitySettings.

    Here are few examples. In both cases the scene was rendered in 2k, but in the first picture the lodBias is set to 0 and in the second one to 1. This small change significantly improved the performance, because with lower bias there were less updates in the virtual texture. Is there possibility how to change when the mipmaps are changed? This could help the performance quite a lot.
    fullres.PNG
    lowres.PNG
     
    Last edited: Aug 17, 2018
    tdjemai likes this.