Search - User list
Full Version: Normal Map in Vulkan ?
Root » Houdini Lounge » Normal Map in Vulkan ?
Gaalvk
First of all, I want to express my deep gratitude to SideFx for improving the viewport! Finally, we have a pleasing light and snapping on the button. I am incredibly happy about this. As are you, guys, probably. Many rounds of applause to the developers!
It's a pity that the handle is still thin and hard to see.
By the way, can anyone tell me - I saw with my own eyes the item in the handle menu - Move Pivot to Selection centroid and even used it. But now this item is not in the menu and I don't understand what it depends on? Does anyone know? This is a super useful item, but where is it?
But the main question of the post is different:
At the presentation, I heard that Vulcan now 100% replaces OpenGL. But OpenGL easily showed normal maps from the principal shader. And how can I see normal maps in the material on the object in the volcano? I tried all sorts of options - and there are none. It is unclear - Vulkan cannot/will not show normal maps or can, but we do not know how? Or cannot yet, but will be able to later? Or will never show on principle?
Developers, please clarify the situation with normal maps in Vulkan for the community!
malexander
Tangent-space Normal maps require tangents to work. OpenGL used a screen-space technique to generate tangents on the fly when the geometry did not have tangents, but they often didn't match Karma or other renderers so we opted not to adopt this method in Vulkan. If no tangents exists on the Geometry, the normal map will not be used.

If your geometry is missing tangents (tangentu/tangentv), you can generate them by using:
  1. Polyframe SOP - set the Style to MikkT.
  2. Display Option - Auto Generate Tangents set to "MikkT"
We don't recommend the 2nd option anymore, as the MikkT algorithm is very slow, and the viewer will need to regenerate them quite often (deforming meshes will kill performance). But if you're working with static meshes, this may work for you.
raincole
malexander
Tangent-space Normal maps require tangents to work. OpenGL used a screen-space technique to generate tangents on the fly when the geometry did not have tangents, but they often didn't match Karma or other renderers so we opted not to adopt this method in Vulkan. If no tangents exists on the Geometry, the normal map will not be used.

If your geometry is missing tangents (tangentu/tangentv), you can generate them by using:
  1. Polyframe SOP - set the Style to MikkT.
  2. Display Option - Auto Generate Tangents set to "MikkT"
We don't recommend the 2nd option anymore, as the MikkT algorithm is very slow, and the viewer will need to regenerate them quite often (deforming meshes will kill performance). But if you're working with static meshes, this may work for you.

But isn't practically every single video game calculating tangent space on the fly by uv coordinates and vertex positions? I'm still not sure why it's a bad idea for Houdini Vulkan viewport if it's so widely used.
Gaalvk
малександр
Tangent-space Normal maps require tangents to work.

Thanks for the explanation! Now everything is clear!
malexander
MikkT has become the industry standard for games. Both Unreal and Unity support is as their default tangent generation method when importing models. Houdini doesn't generate tangents (or normals) when loading geometry via the File SOP, which can cause a bit of confusion for games users.

While having a "Screen Space" option for the Generate Tangents display option is feasible for the Principled shader, it would be difficult to implement for MaterialX, which generates GLSL on the fly.
raincole
malexander
MikkT has become the industry standard for games. Both Unreal and Unity support is as their default tangent generation method when importing models. Houdini doesn't generate tangents (or normals) when loading geometry via the File SOP, which can cause a bit of confusion for games users.

While having a "Screen Space" option for the Generate Tangents display option is feasible for the Principled shader, it would be difficult to implement for MaterialX, which generates GLSL on the fly.

I see. You're correct, I completely misunderstood how Unity works. Tangent calculation happens in editor, not on the fly.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB