Coordinate System Feature

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
Post Reply
treddie
Licensed Customer
Posts: 739
Joined: Fri Mar 23, 2012 5:44 am

A REALLY useful feature (for me anyway), would be a new Coord System Node...A point with three small axes coming out of it that can be moved anywhere you need it and that can be rotated to face any direction. Then, you can assign objects to that CSys so that you can rotate those objects about the new coord system rather than Octane's origin. That would GREATLY simplify local rotations without having to constantly couple Y,P, and R to get what you want.
Win7 | Geforce TitanX w/ 12Gb | Geforce GTX-560 w/ 2Gb | 6-Core 3.5GHz | 32Gb | Cinema4D w RipTide Importer and OctaneExporter Plugs.
User avatar
roeland
OctaneRender Team
Posts: 1823
Joined: Wed Mar 09, 2011 10:09 pm

The current release candidates first apply the translation, and then the rotation, and then the scale. So it works as if you first move the object, then rotate it to the desired orientation and then scale it in its local coordinate system.

--
Roeland
manalokos
Licensed Customer
Posts: 441
Joined: Fri Nov 18, 2011 4:43 pm

Shouldn't it be exactly the oposite?
First: Rotation
Second: Scale
Third: Translate

This way we would not need 3 different placement nodes to correctly position an object.
User avatar
roeland
OctaneRender Team
Posts: 1823
Joined: Wed Mar 09, 2011 10:09 pm

If you give an order for the transformations you can interpret this order in two different ways, and both of them sometimes make sense:

Suppose we have a square, aligned with the X and Y axes, and apply two transforms. We want to first rotate the square by 45° and then stretch along the x-axis by a factor 2.

The rotation is simple. But what about the scaling? We can apply it along the rotated X-axis so we get a rectangle. But we can also scale along the original X-axis so we get a rhombus.

Mathematically speaking these two ways of interpreting this second transform are equivalent to swapping the order of these two transforms.

The way Octane applies the scale, rotation and translation is as follows:
- first apply the scaling
- then apply the rotation to the scaled object, in the original coordinate system.
- then apply the translation.

Or, using the other definition of how to compose the transforms:
- first apply the translation
- then rotate the object around the translated origin.
- then scale the object along the translated and rotated axes

This has changed in version 1.21, up to 1.20 the order was different. The easiest way to see how it works is try it out in Octane.

--
Roeland
treddie
Licensed Customer
Posts: 739
Joined: Fri Mar 23, 2012 5:44 am

But even if you use the order: scale, rotate, xlate, the rotation point is still at Octane's origin, correct? If I import a part into Octane, where it is not centered about the origin, there is no way to get the part to rotate about its center. Unless I xlate it first to be centered about the origin, then scale/rotate/xlate it to wherever I want it. That would work, I suppose.

So two placement nodes would be required...
One just to translate back so the part is centered about the origin, with all rotations set to zero, and scale set to 1,

Another node to scale/rotate, then xlate to wherever, correct?
Win7 | Geforce TitanX w/ 12Gb | Geforce GTX-560 w/ 2Gb | 6-Core 3.5GHz | 32Gb | Cinema4D w RipTide Importer and OctaneExporter Plugs.
User avatar
roeland
OctaneRender Team
Posts: 1823
Joined: Wed Mar 09, 2011 10:09 pm

That is correct. If the object is not centered you need an extra translation to move the object to the origin. But in this case you always need a second translation to move the object to the final position.

--
Roeland
treddie
Licensed Customer
Posts: 739
Joined: Fri Mar 23, 2012 5:44 am

OK, I'm clear on that aspect then. Thanks, Roeland.

But please see my other thread, "Xform Nodes not working?". In that scenario, I am not translating back to the origin as we discussed here. I am letting the part come into Octane in its desired position. Then I scale it to the desired size. This will also scale its position coordinates in the scene. For a copy of that part, I then do a rotation and a translation on that copy, to get the part into some other location at a desired angle and position. Something is happening in Octane that makes the new position slightly off. BUT ONLY WHEN THE PART IS SCALED. If the part is just left at 1:1 size after import, all seems to be OK.

Please see example below:
Xforms Not Working 2.jpg
Win7 | Geforce TitanX w/ 12Gb | Geforce GTX-560 w/ 2Gb | 6-Core 3.5GHz | 32Gb | Cinema4D w RipTide Importer and OctaneExporter Plugs.
Post Reply

Return to “General Discussion”