Can impossible be possible? (The real challenge)

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
  10 October 2013
Originally Posted by lecopivo: I didn't read the whole thread but I think I have solution to original problem just have a look


if you are interested in math behind have a look here

few points:
I will reference to the scene that I have in video i.e. two control locators and box which is controlled.

1. I am not doing any kind of parent switching to break evaluation loops! You can rotate around two points simultaneously. I do some funny math to figure out what actually means to rotate around two points at the same time.
2. Because of 1. directly moving locators is disabled. Imagine you rotate around locator1 so locator 2 get translated therefore the whole system has to move. But you just wanted rotate around locator1.
3. Rotation of locator1 is not altered by locator2 and vice versa. You have full control of locators rotation. This way I can break the dependency loop. If you need something fixed with system just link it to the box.
4. Position and rotation of system depends on history of locator's rotation. So you have to specify state of the system at some time t0 and than the node do some numerical integration from time t0 to time t. In current implementation the integration is done from time t0 to time t each time you change something. So even when you change from time t to time t+dt it will recalculate everything from time t0 to (t+dt). But It could just do one more step in the integration. But the advantage of current solution is that you can randomly jump in time.
5. It would be cool to have one move controlel which would be fix with the system but for now I don't know how to do this. If you need some move control just edit parent start position of the multiParentNode

Ok... @lecopivo, I read your revised method you posted in your updated blog (two pivot nodes A and B, and one helper node H). I do understand your math... and I have implemented a MAXscript DLX extension that calculates the matrix exponential (using angleaxis values to first construct the required cross-product matrix...)-- thus allowing me to sum the rotations of nodes A and B (regardless of order, as you explain in your blog) and apply the total rotation to node H...

...BUT I'm struggling with how to actually implement your "update equations" in a 3ds Max construct while avoiding illegal-self referencing or circular dependencies. I'm not sure if I should try and do all of this in a custom attribute definition on the helper node H. Or try and use wire expressions or script controllers???

Any ideas or guidance from anybody would be greatly appreciated. It would save me some headaches...

Last edited by Archangel35757 : 10 October 2013 at 09:03 PM.
  10 October 2013
Thread automatically closed

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 04:14 AM.

Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.