Conversation (7)
Open reply Open reply
Per Vognsen
@pervognsen@mastodon.social · Apr 21
@zeux@mastodon.gamedev.place It's funny to think back to how much confusion there was about tangent space generation in the early days of the normal mapping era. It's not something I've thought about in approximately 20 years, so I'm looking forward to what you're cooking.
Open reply Open reply
Arseny Kapoulkine
@zeux@mastodon.gamedev.place · Apr 21
Thread reply
@pervognsen@mastodon.social My current conclusion is that while MikkTSpace is flawed, the world doesn't need yet another TS generation scheme; it needs a good implementation, which mikktspace.c isn't. Addressing flaws is very possible... but I'm wary of incompatibilities increasing the entropy too much.
3
5
0
Open reply Open reply
Aras Pranckevičius
@aras@mastodon.gamedev.place · Apr 22
Thread reply
@zeux@mastodon.gamedev.place @pervognsen@mastodon.social FWIW, blender has rewritten mikktspace impl since original was kinda slow. From what I recall, Unity did the same for the same reason. Looking forward to your take!
1
4
0
Open reply Open reply
Arseny Kapoulkine
@zeux@mastodon.gamedev.place · Apr 22
Thread reply
@aras@mastodon.gamedev.place @pervognsen@mastodon.social Neat, TIL!
Looking at Blender code, there's a couple similarities as one would expect, but my version is a complete rewrite that does not reference or follow the original source code (except for one aspect that is completely left out of the paper for whatever reason). It's single threaded & deterministic, vs Blender which is parallel and looks non-deterministic (presumably fine there).
Blender does fix at least one impl flaw wrt behavior that's just a mistake in the original.
1
3
0
Open reply Open reply
Aras Pranckevičius
@aras@mastodon.gamedev.place · Apr 22
Thread reply
@zeux@mastodon.gamedev.place btw Blender is looking at adding meshoptimizer as a dependency (primarily for glTF compression reasons), I’m looking forward to integrating your tangent space once it is there. How much faster is it compared to mikkt?
3
2
0
Open reply Open reply
Arseny Kapoulkine
@zeux@mastodon.gamedev.place · Apr 22
Thread reply
@aras@mastodon.gamedev.place In my tests 6-7x vs original mikktspace.c on unindexed inputs, and 10-11x on indexed inputs (the output is the same, indexed inputs allow to reduce some internal work). But that's vs original mikktspace, Blender implementation looks better performance wise so someone would need to do a dedicated comparison.
OTOH I don't think Blender would be able to use my implementation anyway since it relies on quad support :) My code only handles triangles.
5
1
0
Open reply Open reply
Aras Pranckevičius
@aras@mastodon.gamedev.place · Apr 22
Thread reply
@zeux@mastodon.gamedev.place from what I can tell, blender's rewrite was about 5x speedup, https://projects.blender.org/blender/blender/commit/6951e8890ae3
1
0
0