Horde3D

Next-Generation Graphics Engine
It is currently 01.11.2024, 03:18

All times are UTC + 1 hour




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: 11.12.2009, 13:08 
Offline

Joined: 15.10.2009, 18:10
Posts: 5
Greetings,

I have a small feature request for Horde3D developers. Namely, I'm working on a project involving morph target animation and our animation system sometimes needs to apply morph targets with negative weights. However, it appears that Horde3D's h3dSetModelMorpher clamps all negative weights to zero. Would it be possible to modify that behavior so that negative weights can be applied as well? I've briefly checked the engine source code and I believe this only necessitates changing a single line of ModelNode::setMorphParam (line 161 in egModel.h). Yet I realize this change is likely to cause problems with hypothetical animation code relying on that behavior, so it's perfectly understandable if developers are reluctant to implement it. What say you, developers?

Kind regards,
RatTyrant


Top
 Profile  
Reply with quote  
PostPosted: 12.12.2009, 03:03 
Offline

Joined: 15.02.2009, 02:13
Posts: 161
Location: Sydney Australia
Unrelated to your issue but on the topic of morph targets I've been reading up on a technique which uses the GPU to do the processing by using a shader which reads the vertex relative difference in a texture (which is made offline) which a vertex shader could use as a lookup, and blends could be done as a texture blend http://www.imgtec.com/powervr/insider/demos/gremlin.asp this was featured in Shader X7 it's a shame I can't find any online info of this technique, perhaps it's in the powervr sgx sdk...

Could be interesting to look into as an alternative to horde's software morphs? *shrugs*

-Alex

_________________
-Alex
Website


Top
 Profile  
Reply with quote  
PostPosted: 14.12.2009, 00:58 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
RatTyrant, I never used weights outside the 0..1 range so far but if they make sense for a real world application, we can add support for them. We could add an engine option which determines if morpher weights should be clamped or really just remove the clamping altogether.

MistaED wrote:
Could be interesting to look into as an alternative to horde's software morphs? *shrugs*

If morph targets were the bottleneck, it would certainly make sense to look into specific optimization techniques like the one you proposed. But otherwise I would prefer a more generic solution like we have it now.


Top
 Profile  
Reply with quote  
PostPosted: 14.12.2009, 12:47 
Offline

Joined: 15.10.2009, 18:10
Posts: 5
MistaED wrote:
Could be interesting to look into as an alternative to horde's software morphs? *shrugs*

I've never had any performance issues with Horde3D's morphing implementation, but I expect hardware morphing will be added eventually. Personally I think the 79-joint restriction on hardware skinning is likely to become a bigger hurdle in the future, as it precludes some highly complex face and body rigs.

marciano wrote:
RatTyrant, I never used weights outside the 0..1 range so far but if they make sense for a real world application, we can add support for them. We could add an engine option which determines if morpher weights should be clamped or really just remove the clamping altogether.

Well, what we are doing is integrating Horde3D with an existing animation system that is based on MPEG-4 Face and Body Animation specification. The system maps facial animation parameters directly to morph target weights. Since MPEG-4 FBA specification uses both positive and negative parameter values (e.g. raise_*_eyebrow parameters control both raising and lowering of eyebrows), negative extrapolation is necessary in many cases. That doesn't make much sense from an artistic standpoint ("MPEG-4 FBA" and "not making sense" go together like peanut butter and jelly, as I discovered time and time again), as it would surely look better if there was a separate parameter and morph target for the opposite direction. But it is what it is, and if you could add support for negative weights, it would indeed be extremely helpful.


Top
 Profile  
Reply with quote  
PostPosted: 17.12.2009, 19:36 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
RatTyrant wrote:
Personally I think the 79-joint restriction on hardware skinning is likely to become a bigger hurdle in the future, as it precludes some highly complex face and body rigs.

Just as a note, this limit is easy to relax on SM 4.0 (d3d 10) hardware (GF 8, Radeon 2000).


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group