OctaneRender® 2022.1 (updated 11/28)

VIP Information, news and announcements regarding new Octane Render commercial products and releases.
Post Reply
User avatar
spartan00j
Licensed Customer
Posts: 345
Joined: Fri Sep 27, 2013 1:27 am
Location: Memphis TN
Contact:

I was told this would be the best place to ask.
I would like to add multiple nodes at the same time. Instead of opening up the nodegraph canvas each time to add one node.
For example, right-click to open up the node graph canvas, and hover over the Material category. Hold down the control or shift key to click multiple nodes(Mix, Portal, Glossy and Diffuse) and then click and drag them into the scene.
Can you implement this?
Thanks
Win 11
Ryzen Threadripper 2950X
128GB RAM
RTX 3060 TI
john_otoy
OctaneRender Team
Posts: 245
Joined: Tue Aug 10, 2021 9:38 pm

SSmolak wrote:Overlapped polygons which use opacity map ( doesn't matter in what position ) cause errors - transparent holes
Have you tried reducing ray epsilon? If that's not the issue, please PM me a simplified scene.
User avatar
SSmolak
Licensed Customer
Posts: 1157
Joined: Sat Feb 07, 2015 5:41 pm
Location: Poland
Contact:

john_otoy wrote:
SSmolak wrote:Overlapped polygons which use opacity map ( doesn't matter in what position ) cause errors - transparent holes
Have you tried reducing ray epsilon? If that's not the issue, please PM me a simplified scene.
Yes it was caused by Ray Epsilon - small plant close up.
Architectural Visualizations http://www.archviz-4d.studio
User avatar
PolderAnimation
Licensed Customer
Posts: 373
Joined: Mon Oct 10, 2011 10:23 am
Location: Netherlands
Contact:

When setting an attribute animator on a placement node, the motionblur behavior differs between animating the A_ROTATION and A_TRANSFORM attribute.
The A_ROTATION does get interpolated in between keyframes, but the A_TRANSFORM does not.
I suggest using a matrix slerp to calculate in-between motion blur transformations.
Below images showcase the issue:
No motionBlur:
noMotionBlur.PNG
animated A_ROTATION:
motionBlur_AT_ROTATION.PNG
animated A_TRANSFORM:
motionBlur_AT_TRANSFORM.PNG
You do not have the required permissions to view the files attached to this post.
Win 10 64bit | RTX 3090 | i9 7960X | 64GB
User avatar
abstrax
OctaneRender Team
Posts: 5506
Joined: Tue May 18, 2010 11:01 am
Location: Auckland, New Zealand

PolderAnimation wrote:When setting an attribute animator on a placement node, the motionblur behavior differs between animating the A_ROTATION and A_TRANSFORM attribute.
The A_ROTATION does get interpolated in between keyframes, but the A_TRANSFORM does not.
I suggest using a matrix slerp to calculate in-between motion blur transformations.
Below images showcase the issue:
No motionBlur:
noMotionBlur.PNG
animated A_ROTATION:
motionBlur_AT_ROTATION.PNG
animated A_TRANSFORM:
motionBlur_AT_TRANSFORM.PNG
In a nutshell: If you want to resolve non-linear transformations in the shutter time interval you have to provide more than only the two time steps at the start and at the end. We do some special handling for animated rotation inputs/attributes but in general it's best to provide the intermediate transformations yourself.
In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
User avatar
PolderAnimation
Licensed Customer
Posts: 373
Joined: Mon Oct 10, 2011 10:23 am
Location: Netherlands
Contact:

abstrax wrote:In a nutshell: If you want to resolve non-linear transformations in the shutter time interval you have to provide more than only the two time steps at the start and at the end. We do some special handling for animated rotation inputs/attributes but in general it's best to provide the intermediate transformations yourself.
But is this something that is going to be fixed in a future update? Its rather cumbersome to set all the extra in between keys (and export these values from other DCC's to get them there).
All DCC's we work with interpolate keyframe values to get the in between values.

I undestand the "lack" of correct inbetween frames when using point cache driven alembics, where no rotation data exists. But for matrices, like rotation attributes in placement nodes or keyframed alembics, it does have the capability to nicely generate these inbetweens.

For now we can crack the matrices in their t, r and s components and set these on the placement nodes, but the matrix (or quaternion) slerping could as well be applied to scatterNodes, where the movement of items could be tracked and interpolated over multiple frames by matching them by the ID value. (off course it is then up to the user to set the ID's correct)
Win 10 64bit | RTX 3090 | i9 7960X | 64GB
User avatar
PolderAnimation
Licensed Customer
Posts: 373
Joined: Mon Oct 10, 2011 10:23 am
Location: Netherlands
Contact:

We have another issue as well:
When rendering production shots, we start octane (via python with subprocess.Popen) with a lua script passed in as argument (--script) as well as the --stop-after-script argument.
This works fine, and octane nicely exits after script completion, thereby ending the subprocess.
Only octane does not return the license this way, it stays locked to the machine.
Octane can be opened on that machine and the same license is picked up. But when starting octane on another machine, we get the error that all licenses are in use. It is only after starting and closing octane manually on the machine where the subprocess with --stop-after-script argument has run, that the license is returned.
Win 10 64bit | RTX 3090 | i9 7960X | 64GB
User avatar
abstrax
OctaneRender Team
Posts: 5506
Joined: Tue May 18, 2010 11:01 am
Location: Auckland, New Zealand

PolderAnimation wrote:
abstrax wrote:In a nutshell: If you want to resolve non-linear transformations in the shutter time interval you have to provide more than only the two time steps at the start and at the end. We do some special handling for animated rotation inputs/attributes but in general it's best to provide the intermediate transformations yourself.
But is this something that is going to be fixed in a future update? Its rather cumbersome to set all the extra in between keys (and export these values from other DCC's to get them there).
All DCC's we work with interpolate keyframe values to get the in between values.

I undestand the "lack" of correct inbetween frames when using point cache driven alembics, where no rotation data exists. But for matrices, like rotation attributes in placement nodes or keyframed alembics, it does have the capability to nicely generate these inbetweens.

For now we can crack the matrices in their t, r and s components and set these on the placement nodes, but the matrix (or quaternion) slerping could as well be applied to scatterNodes, where the movement of items could be tracked and interpolated over multiple frames by matching them by the ID value. (off course it is then up to the user to set the ID's correct)
Again, the problem is not the interpolation itself but determining the number of intermediate steps. At the moment Octane pretty much relies on the plugins or the input data for those since the plugin usually know best. I don't know exactly why we make an exception for animated rotation inputs, but I think it was done because it's a fairly low-hanging fruit.
In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
john_otoy
OctaneRender Team
Posts: 245
Joined: Tue Aug 10, 2021 9:38 pm

PolderAnimation wrote:We have another issue as well:
When rendering production shots, we start octane (via python with subprocess.Popen) with a lua script passed in as argument (--script) as well as the --stop-after-script argument.
This works fine, and octane nicely exits after script completion, thereby ending the subprocess.
Only octane does not return the license this way, it stays locked to the machine.
Octane can be opened on that machine and the same license is picked up. But when starting octane on another machine, we get the error that all licenses are in use. It is only after starting and closing octane manually on the machine where the subprocess with --stop-after-script argument has run, that the license is returned.
I have not been able to reproduce this. Can you PM me and provide more detail?

I've tried launching Octane 2022.1 using Python's subprocess.Popen. I'm using --stop-after-script, --script and --script-arg arguments to run a lua script which renders an orbx.

Once Octane closes on the first machine, I can start it again using the same subscription on a second machine.
User avatar
PolderAnimation
Licensed Customer
Posts: 373
Joined: Mon Oct 10, 2011 10:23 am
Location: Netherlands
Contact:

abstrax wrote:
Again, the problem is not the interpolation itself but determining the number of intermediate steps. At the moment Octane pretty much relies on the plugins or the input data for those since the plugin usually know best. I don't know exactly why we make an exception for animated rotation inputs, but I think it was done because it's a fairly low-hanging fruit.
I have a follow up question about the current motionblur implementation. You mention that octane currently relies on the plugin or input data to get the substeps needed for motionblur. We do not use a plugin, but octaneRender standalone, so we adjust the input data. We use alembic caches for rendering, some have animated transforms, which work as expected as octane does provides the rotation interpolation. But others use point caches inside the alembic (for deforming objects), with no substeps octane fails to calculate correct motionblur, but this is to be expected, however, I tried exporting alembics with 5, 25 and 100 substeps, but they all have the same wrong motionblur calculation.
The setup is as follows, I moved a cube a few unit of the origin, then rotated around the origin by 90 degrees per frame.
I created the following versions:
red cube: alembic with animated rotation
pink cube: static cube with attribute animator created in octane, the transformValue node of the placement node has animated matrices with 10 substeps
yellow cube: alembic with point cache with 100 substeps
green cube: alembic with point cache with 25 substeps
light blue cube: alembic with point cache with 5 substeps
dark blue cube: alembic with point cache with no substeps
In octane I shifted every cube down, so they do not overlap.
With no motionBlur frames 0, 1 and 2 look as follows:
no_motionBlur.png
With motionblur set to 100% and symmetric shutter alignment frame 1 looks like this:
motionBlur.png
As you can see, the animated rotation alembic and the transformValue attribute animated cubes give the desired result, however none of the point cache cubes seem to use any of the substep information available.
I attached an orbx file that I used to generate these images and includes all alembics.
Am I doing something wrong here or is this an issue in the current motionblur implementation?

Jean-Paul Tossings
You do not have the required permissions to view the files attached to this post.
Win 10 64bit | RTX 3090 | i9 7960X | 64GB
Post Reply

Return to “Commercial Product News & Releases (Download here)”