I found this axis system is just like MAX system(right-handed and Z-up).
But I use DirectX... and I cannot find axis converting part on this source codes.
Please let me know if there is another way to solve this problem.
(eg. PhysXViewer setting? mel script setting? compiler setting? ... )
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think that the normal way to handle the difference in coordinate systems is in the binding between your application and the physics code, i.e. for example when you convert an NxMat34 (or 33) into a DirectX matrix representation. Using this approach you don't need to worry too much about the difference in systems, though you need to be aware of it when applying rotations in the PhysX engine.
Otherwise, please make a suggestion as to what functionality you are missing (more specifically), and we can discuss it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've had success enhancing the PhysX Viewer to convert to the correct coord system when it's loading the PhysX data from the file. I used the same logic in my game engine as I use DirectX and its default coord system there as well.
If there is interest in that approach I can post my code. There are also a couple things you need to do in order to get the 6DOF joints to import correctly, post if you are interested in those details as well.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think what a lot of people would like is an option to convert to another coordinate system at export. We for example, use a right-handed, Y-up coordinate system in our engine, so we need to convert from 3ds max's Z-up to our Y-up. We use other physics tools too which do export as Y-up, so doing this conversion in the loading code would complicate it a lot.
The feature would just consist of a combo box to choose the export coordinate system (defaulting to the native one), and some code to rotate to the correct one at export.
Thanks for this great tool by the way. It spared me quite some time already.
Greetz,
JeDi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think there is a need for a "Left Hand" export option.
To allow artists to create render & physics geometry in Max, export, and use the PhysX Viewer as a "sign-off" tool would be nothing short of excellent.
Alternatively, I think the next best option would be some sort of batch file, which converts between the spaces.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First and foremost (again), thanks for the work on the exporter.
It really is a great tool.
I posted above looking for DirectX export option, and you asked for ideas as to what functionality would be appreciated.
Ideally, our artists would be able to set the physics properties in Max, view the simulation, and then export, selecting from a check box, or drop-down list, the Z-Up, or Y-Up space to use.
They can then use the PhysX Viewer to "sign-off" the physics exported successfully.
At the moment they are exporting out as Collada, which has a flag in the XML header:
<up_axis>Y_UP</up_axis>
Which they tried changing this to Z_UP, (or X_UP for that matter) has no effect. (if it had worked, they could have considered writing a batch file, or something).
So currently they get their animation / simulation up and running in Max, then rotate it 90 degrees, and then REMOVE ALL, ADD ALL, and export.
I found this axis system is just like MAX system(right-handed and Z-up).
But I use DirectX... and I cannot find axis converting part on this source codes.
Please let me know if there is another way to solve this problem.
(eg. PhysXViewer setting? mel script setting? compiler setting? ... )
I think that the normal way to handle the difference in coordinate systems is in the binding between your application and the physics code, i.e. for example when you convert an NxMat34 (or 33) into a DirectX matrix representation. Using this approach you don't need to worry too much about the difference in systems, though you need to be aware of it when applying rotations in the PhysX engine.
Otherwise, please make a suggestion as to what functionality you are missing (more specifically), and we can discuss it.
I've had success enhancing the PhysX Viewer to convert to the correct coord system when it's loading the PhysX data from the file. I used the same logic in my game engine as I use DirectX and its default coord system there as well.
If there is interest in that approach I can post my code. There are also a couple things you need to do in order to get the 6DOF joints to import correctly, post if you are interested in those details as well.
I think what a lot of people would like is an option to convert to another coordinate system at export. We for example, use a right-handed, Y-up coordinate system in our engine, so we need to convert from 3ds max's Z-up to our Y-up. We use other physics tools too which do export as Y-up, so doing this conversion in the loading code would complicate it a lot.
The feature would just consist of a combo box to choose the export coordinate system (defaulting to the native one), and some code to rotate to the correct one at export.
Thanks for this great tool by the way. It spared me quite some time already.
Greetz,
JeDi
Thanks markus,
I agree you because collada's dae format is not platform specific.
My little wish was that if PhysXViewer use DirectX, I want to see it correctly in viewer.
If not, I should modify the viewer :)
I think there is a need for a "Left Hand" export option.
To allow artists to create render & physics geometry in Max, export, and use the PhysX Viewer as a "sign-off" tool would be nothing short of excellent.
Alternatively, I think the next best option would be some sort of batch file, which converts between the spaces.
Also, it may be worth while reviewing existing applications, and see if they can act as a "cleanser" in your production pipeline.
I am currently reviewing [the now open-source] Scythe Physics Editor to see if it will perform the RH -> LH conversion.
http://www.physicseditor.com/features.shtml
Hi Markus,
First and foremost (again), thanks for the work on the exporter.
It really is a great tool.
I posted above looking for DirectX export option, and you asked for ideas as to what functionality would be appreciated.
Ideally, our artists would be able to set the physics properties in Max, view the simulation, and then export, selecting from a check box, or drop-down list, the Z-Up, or Y-Up space to use.
They can then use the PhysX Viewer to "sign-off" the physics exported successfully.
At the moment they are exporting out as Collada, which has a flag in the XML header:
<up_axis>Y_UP</up_axis>
Which they tried changing this to Z_UP, (or X_UP for that matter) has no effect. (if it had worked, they could have considered writing a batch file, or something).
So currently they get their animation / simulation up and running in Max, then rotate it 90 degrees, and then REMOVE ALL, ADD ALL, and export.
So any chance of helping us out?
I've also found this tool:
http://fizxscene.com/?page=FizXScene&lang=en
Which may help out in the conversion / viewing / proofing process.
B.
Someone might find this post in "Open Discussions" helpful
"RE: What I've found so far..."
https://sourceforge.net/forum/message.php?msg_id=4988523