Updating Tangents and Binormals for Skinned and Morphed Anim

Post those lines of code you feel like sharing or find what you require for your project here; or simply use them as tutorials.
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by Vectrotek »

Glad you could use it. I'm trying to get it into a custom node node but I need to learn a LOT more about Irrlicht.
(There were some "Tan Updater" bugs, but they were sorted out in later posts..) Ugh.. I've got a lot to learn..
Currently struggling through Screen Quads and just, now, got Mongoose7's very cool screen quad tutorial..
I can compile it, so i'll work with it.. (that's my motto)..
Oh! Your RPG Builder is really really cool! I wish I could dive into that! Maybe later..
Cheers!
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by Vectrotek »

Christianclavet, you have great understanding..
Oh, by the way I think certain other people missed my last post where there are more than one texture per object..
Anyhow, Normal maps are still not the same as Bumpmaps! :mrgreen:
Oh never mind... its late and I haven't slept for three days..
Love your page.. Cheers!
The_Glitch
Competition winner
Posts: 523
Joined: Tue Jan 15, 2013 6:36 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by The_Glitch »

It's been a while but I tried this on the latest irrlicht trunk and I did find a lot of issues.
Most noted was if the mesh was composed of multiple mesh buffers instead of just one things did not look proper.
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by Vectrotek »

The newer tangent updater should work but I see that Irrlicht has issues with INSTANCES of objects..
See my latest posts "a new complication"
http://irrlicht.sourceforge.net/forum/v ... &start=195
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by devsh »

just btw, you dont need to update or store the bitangent, you can cross product with normal and tangent on the fly in the vertex shader
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by Vectrotek »

If you animate a mesh with bones, then you HAVE TO update the Tangents AND Binormals
because the absolute position of vertices (upon which T's and B's rely) in a triangle
"changes" at every frame. Matrices handle the rotation and scaling of WHOLE objects just fine, but,
again, Skinning and deforming character limbs complicates things somewhat.

Also, crossing the Tangent with the Normal in the shader, to get a Binormal whether Vertex or Fragment
will not work because to get the the CORRECT Bi-Normal a different vertex of the Tri, i.e. vector has to be read
which cannot be done during any action inside the shader.
Now, unless there has been some significant architecture changes in graphics hardware
which I don't know of, then I'm afraid this is how it is.
Anyhow, only when you look "real closely" at Specular Highlights in Skinned Objects using Normal Maps, then
the "Physical Error" brought about by animation and "bogus" Binormals will be noticeable.
But, let me add, there are very few software titles out there that has truly addressed this problem,
not even Doom MMXVI. In fact I've never seen any Game or 3d App that does this successfully!
Anyway, these things really only become important if you are using Normal Maps on your objects
and real time lights in the scene.

Anyhow I've deliberated on this at length in previous posts which you probably did not look at yet.

Anyway, I hope to be upgrading my system really seriously soon..
Currently busy with studies.. Living day by day..
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by devsh »

You know that you could probably use screen-space derivatives of the model-vertex-position and texture-coordinates to reconstruct a tangent and bitangent, I was a paper about doing bumpmaps without having that data at hand.

What's cool about it is that if you stretch your texture over the same area (like stretch the skin) the normal deviation becomes less pronounced (surface gets less bumpy).
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by Vectrotek »

It does sound possible.. Definitely worth looking into.
I'm just worried about those tangents as they are generated by Irrlicht.
But.. With a deeper understanding of screen space a lot becomes possible!
Yes, it "feels like" one could find in screen space all that is needed to have physically correct mapped normals.
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by Vectrotek »

How is a float packed into a 32 *4 i.e. 128 bit render target?
IEEE-754 etc etc..
I heed your message on the other board but for for my own sanity I need to know..
Image
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by devsh »

IEEE-754, yes.

Remember to pack straight into 32bit uint, as you have no guarantee on the endianness of the GPU.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Updating Tangents and Binormals for Skinned and Morphed

Post by devsh »

have you got any skinned and normal/bump (or even better relief) mapped models that have an OK license to include with engine samples?

I want to put together an example of that tangent-less paper.
Post Reply