AT2 v2.0.3 - Alpha 21
Posted: Thu Aug 28, 2014 10:30 pm
.
After weeks of going back and forth between me and Ricardo, trying to get the QA solid enough for a customer release we finally present devbuild 3, featuring: Third-party shader support (Alloy, Lux, Skyshop), Virtual Texture Layout presets and Anisotropic Filtering.
Shader Forge is still unsupported mostly because it requires custom code to be done by Joachim. It is, however, still scheduled for one of the Alpha releases. To make up for it we added Skyshop and Lux support to complement the Physical Based Shader provided by Alloy.
Unity 5 beta took way longer than expected to come out and was only released a week ago. That's essentially why we don't have support for it today. We now have access to Unity 5 beta and will release a compatible update soon.
Our intention with the introduction of devbuilds was to update more often and we failed miserably. Thus we've decided to make devbuild 3 the alpha stage and will keep adding features and releasing builds, until we reach devbuild 4 which will be known as the beta stage for which we'll do mostly bug fixes and polishing work. Any large enough features
Here are the changes introduced in Alpha 21:
Amplify Texture v2.0.3 Alpha 21 is Now Available for Download
http://amplify.pt/download
Dear developer,http://amplify.pt/download
After weeks of going back and forth between me and Ricardo, trying to get the QA solid enough for a customer release we finally present devbuild 3, featuring: Third-party shader support (Alloy, Lux, Skyshop), Virtual Texture Layout presets and Anisotropic Filtering.
Shader Forge is still unsupported mostly because it requires custom code to be done by Joachim. It is, however, still scheduled for one of the Alpha releases. To make up for it we added Skyshop and Lux support to complement the Physical Based Shader provided by Alloy.
Unity 5 beta took way longer than expected to come out and was only released a week ago. That's essentially why we don't have support for it today. We now have access to Unity 5 beta and will release a compatible update soon.
Our intention with the introduction of devbuilds was to update more often and we failed miserably. Thus we've decided to make devbuild 3 the alpha stage and will keep adding features and releasing builds, until we reach devbuild 4 which will be known as the beta stage for which we'll do mostly bug fixes and polishing work. Any large enough features
Here are the changes introduced in Alpha 21:
- Requirements
• Unity 4.5.3+
Changes
• Multi-VT consolidation
• Added fully working configurable Virtual Texture layout presets
• Added support for a total of 12 channels; 3 cache textures
• Added full support for specular/material maps; paving the way for Physical Based Shaders
• Added third-party support for Alloy, Lux and Skyshop
• Added anisotropic filtering support; adjustable, 8x by default
• Added support for pre-pass far plane scaling
• Added filter checkboxes to Material Converter Tool and added third-party shaders to the list
• Added errors/warnings when attempting to deploy a scene with unbuilt VTs
• Added Update Materials stage
• Removed default and placeholder textures; added default colors/values instead
• Switched back to single material property
• Switched to static material handling; no longer have to update materials at runtime
• Improved material converter; faster and doesn't run out of memory anymore
• Improved behaviour of build checks: only the VTs added to the Manager will be checked/updated
• Improved VRAM storage of page tables; now half size on devices that support rgb565
• Fixed memory consumption crashes; now fully scalable to tens of thousands of materials
• Fixed selecting an unloaded VT taking a few seconds, making switching between VTs a pain
• Fixed all kinds of interaction issues with VT asset inspector
• Fixed "Windows Layout is Invalid" error.
• Fixed depth camera mode being enabled sometimes in pre-pass
• Fixed crash when building in HDR mode without alpha enabled
• Fixed a crashes related to unassigned maps
• Fixed issues on Intel HD 3000
• Fixed legacy bug when removing and reusing VT pages
• Fixed more OSX specific issues
• Fixed more OpenGL specific issues
Known Issues
• Multiple Camera/Runtime STILL not working; to be addressed in the next alpha release
• SLI/CF unsupported; also to be addressed on following release
• Negligible artifacts between tiles under significant magnification; also next
• DirectX 11 not working properly in edit-mode with Linear-space; works fine in play mode
- Seams/Tile-misalignment with Multi-Tile UVs
Make sure you turn off Mesh Compression on any meshes you import into Unity that rely on Multi-Tile UVs. We need full precision UVs when dealing with very large UV sets. Not disabling compression may cause the tiles to offset causing serious seams and misalignment between multi-tiles.
From our experience, Unity seems to be compressing UVs (or cause precision loss) on some meshes even if the Mesh Compression setting is set to off. Turning on Read/Write and setting the mesh to Static can help in these cases. If all else fails, you may also try disabling: Player Settings / Other Settings / Optimization / Optimize Mesh Data.
We recommend you get in touch with Unity support if the issue persists after disabling all kinds of Mesh Compression and Optimization.
Runtime Performance
We've received some complaints regarding the performance impact caused by Amplify Texture 2, which is understandable. So we'd like to take the opportunity to clarify a few things regarding this issue:
Virtual texturing will always have a negative impact on performance without changes to your scene. We have a conservative goal of, at the very best, achieve an indiscernible performance impact. However, since VT-compatible shaders are slightly more complex (averaging 10% more complexity; more instructions and texture access) and this type of VT requires an additional pass (albeit to a small buffer) on every virtualized surface, on some low-end GPUs (like the Intel HD 4000) this can be a really hard task. On the other hand, please keep in mind that AT2 is still in Alpha and we're focusing mostly on features at this stage. We left most of the optimization work and polishing to the Beta stage. I can assure you that we still have a tremendous margin for improvement.
Regarding the draw call doubling: what's really happening is that we're using a second camera that renders amplify compatible surfaces into an offscreen render texture, roughly 1/15th of the size of the actual screen size. The target texture is really small and the shader is simple so most of the weight is on the CPU which is doing culling and draw calls. The culling is exactly the same as the Main Camera but unity, at the moment, provides no API to re-use culling data from one camera to another. We also have to read back the data from this offscreen texture onto the CPU. This is a notoriously slow process in Unity and a optimization targeted specifically at this issue is planned to come on devbuild4, following very promising initial tests.
We've had some customers get most of the performance drop from the culling and draw calls. This is something that we're coming to realize we'll have to address sooner or later, in some kind of automated form. In the meantime, however, what we have in place right now is support for tiling. This allows a drastic draw calls reduction, compensating for the extra camera pass. It's the only option we have right now to help reduce draw calls. We do have other plans for after the official release, including auto-batching tools that I believe we'll end up having to anticipate.
There are some settings you can modify to try and get better performance. On your camera's Amplify Texture Runtime component you can reduce the number of Pages Per Frame (number of page uploads per frame) or Pre Pass size. Page uploads can be quite slow also and we're not done optimizing this part either. Also, selecting Standard hardware level on the VT can also make a difference.
There could be a number of reasons for that performance drop and we're very interested in finding out what we can do to improve. If you're having performance issues please take some time to send us a development build with editor autoconnect so we can do some first hand profiling. If not, maybe you can share some screenshots of the expanded profiler stack in both cases (cpu and gpu stacks), with and without AT2.
Please be assured that performance is a big deal for us, but we're still in alpha and right now we're focusing on getting all the right features. Serious performance improvements will start to arrive on devbuild4 which will be the first beta. From then on we plan to work with our customers to improve further based on feedback.
Source Code
The source code release was delayed a bit but is still planned. We'll be releasing all C# scripts associated with this project. The native part will have to be licensed separately, however.
We'll be posting a draft proposal on this forum for a new license very soon. It will have some modifications to accomodate source-code. Your evaluation and feedback will be appreciated.
- Alpha 22
• SLI/CrossFire support
• Fix HDR encoding issues
• Add support for EXR 2.0
• More options for filtering Mipmaps: Nearest
Alpha 23
• Multiple Camera/Runtime support
• Fix anisotropic magnification artifacts
• Fix DirectX 11 in edit-mode + Linear-space
• Unity 5 support
• Third-party: Oculus Rift SDK 2 support
- If AT2 is a pivotal tool in your large-scale project, please consider providing us one of your larger datasets for robustness testing. Unfortunately we're lacking large data sets and in AT2 we _really_ want to solve ALL scalability issues.
Please note that we're available to sign any contracts or NDAs necessary to protect your copyright. We are absolutely certain that both our parties can benefit from this type of cooperation. If you're interest, please contact us directly or, feel free to reply here to get things started.