Working with embedded textures and rendering plugins (like Octane)

Hi RMA team,

We are trying to share files with clients that they can open on their end and they are ready to render using Octane.

Our files have the Rhino Geometry, Octane materials assigned, and file textures linked to those Octane materials.

We want to share 1-file with all the necessary elements to replicate the renderings we are creating in our machines. We used the save-options ‘Save support files in 3dm file’. our intention is to embed those textures in the .3dm file.

If we open the files in a computer that has no access to our textures, Octane tells us that the textures are missing.

What we need to know is:

  1. Are the textures missing because Rhino never embedded them? How do we know if Rhino embeds textures that are only being used in Rhino materials? or also textures that are used in Octane materials?

  2. If Rhino does embed the textures used in Octane materials (please tell us how we find this out for sure), How do we unembed them? so on our client’s side they go back to a folder of physical texture files (with same name and file type as the original embeds)

We’d appreciate any feedback on this,

Gustavo

cc @andy @paulphysicalc

1 Like

Since Octane doesn’t use the standard Rhino texturing system, it has to register the embedded files in each material explicitly. I guess it’s not doing that.

So does that mean that the files ARE being embedded, but Octane is not reading them back? or Rhino is failing to embed the files because they don’t use the ‘standard Rhino texturing system’?

Is there a ‘de-embed textures’ command to use in a Rhino file with embedded textures?

They are not being embedded.

Thanks for the clarification Andy.

@paulphysicalc, any ideas of how to collect and or embed all linked textures of a Rhino file with Octane materials so we can be opened by a different computer/user/location and have all the linked textures?

1 Like

If there actually is a possibility , I would be also highly interested!

@paulphysicalc The virtual property getter to override in your custom material is RenderMaterial.FileToEmbed

The virtual property getter to override in your custom material is RenderMaterial.FileToEmbed

Thanks @andy, but I cannot see FileToEmbed in the RhinoCommon 5 or 6, and there is no mention of it at http://developer.rhino3d.com/wip/api/RhinoCommonWin/html/Methods_T_Rhino_Render_RenderMaterial.htm

http://developer.rhino3d.com/wip/api/RhinoCommonWin/search.html?SearchText=filetoembed also brings up nothing.

Paul

That’s a getter that is only available to long-term friends of Andy. :wink:

It’s “FilesToEmbed” - (sorry for the typo) and it’s definitely there:

///


/// A string array of full paths to files used by the content that may be
/// embedded in .3dm files and library files (.rmtl, .renv, .rtex). The
/// default implementation returns an empty string list. Override this to
/// return the file name or file names used by your content. This is
/// typically used by textures that reference files containing the texture
/// imagery.
///

public virtual IEnumerable FilesToEmbed { get { return new String[0]; } }

As for long term friends - Paul is one. Although obviously unless the Aussies throw a couple of Ashes tests in the next few days, that might all change.

@gustojunk - could you pls send me a Rhino scene file with embedded texturemaps - and I will test to above info provided by Andy.

Thanks

Paul

Hi Paul, I’m traveling with no PC. I’ll ask @IgorK to send you something. Thx.

Hi Paul, I’ve attached a rhino scene with a texture file embedded. When you first open it rhino will create a folder (at rhino file location) and will create a texture file that was embedded inside rhino file.
Also, I created a video showing how the textures are not getting embedded when Octane materials are used. Let me know if you need anything else.

Thx
Igor

example_scene.3dm (2.7 MB)

Hi Igor. Thank you for posting this video. I will try to build in support for embedded textures in the first Rhino6 release of the plugin (hopefully out in the next 2 weeks).

Paul

Hi Paul, thanks for the update. Igor and I have been playing a lot more with Rhino & Octane pipeline recently and we have a few other wishes we’d love to see if they are things you could help us resolve. The more important ones are:

  1. seeing Octane material’s appearance on Rendered GL viewport and in Rhino’s material editor thumbnails.

  2. support of a few things that V6’ Snapshot makes possible for us in Rhino:
    2A. Read the viewport backdrop (color, image, gradient…) from Rhino file’s properties. So we can change on the fly from various backdrop images with matched perspective views, to solid white, solid black, etc.
    2B. Auto-refresh the scene when changes on Rhino file require us to refresh the Octane Viewport manually. Like when object visibility states change, or we move an object, or we change material assignment.

We can post videos/examples of that makes it clearer.

Thanks,

Gustavo

Thank you, Paul!
The other issue we recently had is with animation workflow. Let me explain. So. we have a product assembly (about 900 parts) inside the rhino file. And we needed to create an animation showing disassembly of the product where all of the parts flying out and separate from each other. We did an animation with Bongo for rhino. And because there are so many parts we used rhino ‘blocks’ to group some of the parts together. That helped us to get better viewport responsiveness inside the rhino. But created a problem for us when we tried to export this to .orbx file for rendering in octane standalone. The problem is that we can’t use ‘live geometry’ feature for rhino ‘blocks’ (in the result parts inside those ‘blocks’ aren’t being exported with correct animation).Yes, we can animate every object and don’t use rhino ‘blocks’ but then viewport responsiveness is getting very bad and animation export to .orbx takes very long time (in our case it was like 10 min for each frame, 300x frames times 10min = 50hours just for the export and then render)

Any suggestion you have for this issue? Is it possible to create ‘live geometry’ feature for rhino ‘blocks’ ?

1 Like

Hi @andy and @Luc, maybe some of their performance issues in Bongo and export to octanenis sometiing can can also be optimized inside Bongo?

G

I think this is a case that could very elegantly solved through the changequeue. It allows a render engine to handle exactly what has changed, nothing more. Currently it is kinda tied to a visible viewport, but I imagine it wouldn’t be too hard to make it work even better with Bongo through some kind of virtual viewport. This would be especially useful when rendering to a different target resolution with a different sample count.

1 Like

I 100% agree IgorK, I have similar issues here… It would be great to have support for animated Rhino blocks in octane for Rhino…
I will post this in the octane forum, since it seems to be an octane4Rhino issue…

best

A few notes on this…

  1. The plugin will tell Rhino which texturemaps it is using in materials, and Rhino can then embed those files and later convert to physical files once the .3dm file is loaded. However, the plugin will still have links to the old texturemaps, so you will still need to search for missing texturemaps (pointing the search process to the embedded texturemap folder).
  2. The plugin will NOT tell Rhino which texturemaps it is using for non-Material purposes (ie. the IBL texturemap file).

seeing Octane material’s appearance on Rendered GL viewport and in Rhino’s material editor thumbnails.

The plugin should already do this. Is it not working? Can you provide a screenshot showing the issue pls?

support of a few things that V6’ Snapshot makes possible for us in Rhino:
2A. Read the viewport backdrop (color, image, gradient…) from Rhino file’s properties. So we can change on the fly from various backdrop images with matched perspective views, to solid white, solid black, etc.
2B. Auto-refresh the scene when changes on Rhino file require us to refresh the Octane Viewport manually. Like when object visibility states change, or we move an object, or we change material assignment.

These should be possible. HOWEVER, at this stage I cannot even get the plugin working in the latest version of Rhino6, so can I ask that you prod me about these FR’s in a month or two time?

Paul