binstream Posted October 12, 2015 Posted October 12, 2015 We need to figure out what to do with the PBR worklow: at the moment UNIGINE 2.0 supports both metalness and specular. Some objects still have legacy specular shading only. It would be obviously easier to keep only one from the development speed stand of point. So both workflows have pros and cons: Specular Pros: Easier to migrate old projects to Cons: Larger texture sizes (+2 more channels) Metalness Pros: Standard de-facto for new rendering software / engines More compact textures (less disk space occupied, less VRAM required) Prevents artist from making physically-incorrect materials Slightly better performance Cons: More work when migrating old content Some objects still support only specular shading Keeping both workflows means slower progress on visual features + some technical limitations. We are leaning towards transition to pure metalness workflow through 2.1-2.3 versions. Please let us know your opinion on that.
demostenes Posted October 12, 2015 Posted October 12, 2015 Currently we have cca 15 000 textures, which makes cca 6000 materials (99% mesh base). We have no problem to switch to completly new workflow (everything new we are already doing PBR), but legacy shaders should stay there (at least for mesh base). Switching whole project to PBR can take one year of serious work (instead of project progress). And loosing updates of unigine until migration is done (stay on the last version with legacy shaders) is also not good idea.
esger.abbink_ Posted October 21, 2015 Posted October 21, 2015 As we do not have a large amount of assets built up, a conversion would be acceptable for us. So my vote would be for the technical best solution when it's complete. But as demostenes already stated, for others a conversion might be insurmountable if needed in too short a time frame.
spencer.brown Posted October 25, 2015 Posted October 25, 2015 Metallic workflow is fine but it needs a few different parameters to really be production-ready IMO. It needs a better way to express specular occlusion, whether it's an H-basis directional occlusion map baked in AmbientMapper or a Marmoset Toolbag-style view independent one-channel cavity map that also occludes direct specularity. (Cavity map could maybe go in A of metallic texture to ensure that DXT5 quality without too much added cost.) A big problem that artists who are new to PBR tend to have is large areas of undetailed, unrealistic metal that just doesn't quite look right (see Dragon Age Inquisition for a great example) and having access to good, temporally stable tools to create specular occlusion can go a long way towards combating this problem even for relatively low-skill or time-limited artists. One possibility that might be worth considering if you're running out of gbuffer space is rendering virtual texture UVs instead of your more usual geometry data. This makes overdraw really, really cheap for opaque materials and allows you to use more BRDF parameters than you would ordinarily be able to. Take a look at the middle of this presentation if you've not seen it yet.
silent Posted October 26, 2015 Posted October 26, 2015 Hi Spencer, Do you mean a specular occlusion texture for reflections (to reduce the reflection intensity)? Could you give some use-case for this texture or correct me I understand you wrong :) Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
spencer.brown Posted October 26, 2015 Posted October 26, 2015 Sure! This is a monkey head with an unlit specular occlusion texture baked with Turtle in Maya. And, this is a monkey head with ambient occlusion baked in Blender. You can see the difference between the Turtle reflection occlusion bake and the Blender AO bake. The Turtle bake tends to concentrate the occlusion in the corners more. If you uncheck "Orthogonal Reflections" in the Turtle bake properties in Maya you get a more accurate reflection occlusion bake that takes the view direction into account. Probably it traces cones from the camera to the object then scatters them in a glossy way according to the cone angle the user sets. This is pretty close to the result that I'd like Unigine to be able to get. As you can see it's quite different from the ambient occlusion bake. If I now use this image to occlude the reflections in Toolbag this is the result I get. Compared to the result that's occluded with the AO map, which is what I'd get in Unigine: And just for posterity, here's the completely unoccluded result. Screenspace reflections can help a bit with the problem, but they almost always have problems with temporal stability and availability of information on the screen, so I prefer to not use them most of the time. The problem that I have with Turtle baked reflection occlusion is that it's too view dependent. That is, you have to rebake for every view of the mesh. For games this is obviously not workable but it can somewhat improve rendering speed within Maya for animations. Obviously no good! The way that The Order: 1886 solved this is by baking unique-UV directional occlusion lightmaps with an Optix baker. Looking up the occlusion in a glossy way gives pretty convincing specular occlusion. You can scan Crafting Victorian London: The Environment Art and Lighting Pipelines of The Order: 1886 for more details (starting at slide 144.) I don't think that baking as aggressively as they do is always a good idea but the reflection occlusion strategy using skinned capsules and baked H-basis maps is a good idea in most cases and can be used for most games. For more details about the H-basis you can read this paper which has some good details about the underlying math. I bet I get the baking tool to bake these lightmaps and Unigine to render them if you give me source code access. If the company is interested in hiring me as a contractor to implement this stuff, let me know and maybe we can work something out. Cavity maps are kind of a separate thing and probably way easier to implement into your renderer. They occlude specularity from both dynamic lights and cubemaps and make it way easier to represent stuff with small cracks and corners in them. I believe that Unigine is currently using AO to occlude both specularity from cubemaps and the ambient cube-- here's what that looks like in Toolbag on a hard surface model. If you use a cavity map for the specular occlusion and use AO only for occluding the ambient cube this is the result: It looks a little better, the threads especially. I think it doesn't pay off quite as much as H-basis occlusion maps would but it's still an important option to have, especially for stuff like characters' teeth that can look pretty funky otherwise. Usually you can get a similar result to the cavity map with a secondary specular map, which is what Unreal and Frostbite are both using for their metallic workflows.
cryunreal Posted October 27, 2015 Posted October 27, 2015 Hi Spencer! Thank you for such detailed feedback :) We multiply reflection on Ambient Occlusion texture. Using separate Specular Occlusion texture too expensive for performance, and the result is almost the same with simple AO map. You can use AO map as diffuse AO and specular AO at the same time:
werner.poetzelberger Posted November 17, 2015 Posted November 17, 2015 Hello, do I understand that right, that this should 'simulate' the self reflection of objects, by darkening the reflection? thx. w.
silent Posted November 18, 2015 Posted November 18, 2015 Hi Werner, Yes, that's the point :) How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
binstream Posted May 31, 2016 Author Posted May 31, 2016 Starting with 2.3 release, the internal workflow is metalness. Decals will be working with metalness only. There will be a conversion tool for textures (however, there will be some conversion error). It is recommended to create your assets according to metalness workflow from now on.
Recommended Posts