Custom nodes for the Octane Render node graph

A public forum for discussing and asking questions about the demo version of Octane Render.
Forum rules
For new users: this forum is moderated. Your first post will appear only after it has been reviewed by a moderator, so it will not show up immediately.
This is necessary to avoid this forum being flooded by spam.
Post Reply
chyman
Posts: 5
Joined: Sat Jun 26, 2010 12:27 pm

Hi,

I have a question about materials, I really like the power of node-based material composition.

I have developed a number of shader nodes (mainly procedural textures) for Mental Ray to use as Phenomena in the XSI's Render Tree, I would really like to be able to port these to Octane Render.

Will there be a possibility to program custom nodes as plug-ins for use in the Octane Render node graph, e. g. via some kind of SDK?

Thanks a lot for the great work!
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

Hi,

not yet, in 2.3 you'll be able to create macro nodes with input/output terminals that can contain a network of nodes.
but remember that octane runs on a GPU, and we can't atmo embed a scripting language runtime interpreter on the gpu easily.
We'r focussing on practical solutions, i'd like to stay away from C like shading languages and develop a visual programming paradihm with nodes instead,
it allows all users to make complex procedurals, instead of only a hand few of coders that can write C like shaders....

Radiance
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
chyman
Posts: 5
Joined: Sat Jun 26, 2010 12:27 pm

Dear Radiance,

thank you for sharing your thoughts on this. I know that programing GPUs comes with many restrictions (I'm from the HPC corner, where GPUs are also a topic). The nodes I coded are actually more general building blocks for the creation of complex procedurals. These are Agate, Boxed, Brick, Checker, ColorMap, Crackle, Cylindrical, Dents, Gradient, Granite, Hexagon, Leopard, Marble, Modifier, Noise, Onion, Planar, Polar, Radial, Ripples, Spherical, Spiral, Transform, Turbulence, Voronoi, Waves, Wire, Wood and Wrinkles.
Since refractive software is a young startup and I'd love to see octanerender grow, I'd be glad to contribute to it. Perhaps I can help by recoding them for octanerender... How does that sound? :D

Chyman
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

chyman wrote:Dear Radiance,

thank you for sharing your thoughts on this. I know that programing GPUs comes with many restrictions (I'm from the HPC corner, where GPUs are also a topic). The nodes I coded are actually more general building blocks for the creation of complex procedurals. These are Agate, Boxed, Brick, Checker, ColorMap, Crackle, Cylindrical, Dents, Gradient, Granite, Hexagon, Leopard, Marble, Modifier, Noise, Onion, Planar, Polar, Radial, Ripples, Spherical, Spiral, Transform, Turbulence, Voronoi, Waves, Wire, Wood and Wrinkles.
Since refractive software is a young startup and I'd love to see octanerender grow, I'd be glad to contribute to it. Perhaps I can help by recoding them for octanerender... How does that sound? :D

Chyman
Well,

as said, there is currently no scripting language or shading language for octane, so basically you can't...
we can add some but the point is to develop our visual programing concept (eg the base nodes) to an extent where you have enough freedom to do this, but this will take time to develop and will grow in flexibility with every new release.

Radiance
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
chyman
Posts: 5
Joined: Sat Jun 26, 2010 12:27 pm

Sorry for not being precise in my previous post, putting scripting/shading languages aside, I actually more meant to help writing base nodes in the octanerender's native language to extend the build-in library of nodes within octanerender. It would be an honor to contribute my experience. If this probably goes beyond this forum, perhaps we shall switch to email... ;)

Chyman
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

Hi,

There is currently no API or native shading language to write shaders in,
and also, we need to be a bit carefull what we put into the kernel as there is limited space,
you can't just start racking up hundreds of nodes.

I think it's best to give us some time to develop the base nodes required to implement combinations that give the required patterns/textures.

Radiance
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
chyman
Posts: 5
Joined: Sat Jun 26, 2010 12:27 pm

Thank you for your time and commitment to talk about this topic, I can understand your points.
Perhaps I will give some more feedback about the nodes available in octanerender later.

Chyman
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

chyman wrote:Thank you for your time and commitment to talk about this topic, I can understand your points.
Perhaps I will give some more feedback about the nodes available in octanerender later.

Chyman
you could contact me via email at the adres on our 'about us' page.
we can talk further then.

Terrence
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
chyman
Posts: 5
Joined: Sat Jun 26, 2010 12:27 pm

Dear Terrence,

here comes my promised feedback, after having a close look at the available nodes and their structure, I feel it looks quite promising so far. I have been working with and examined a number of procedural texturing systems over time, such as Pov-Ray's procedural structure, Darktree (by Darksim), XSI Render Tree, mental mill to name some. And I found that they can be very powerful if they are modular enough. Often times functions are "bundled" in nodes, like transforms in pattern generators or color options in pattern generators. This may limit the freedom to have maximum control over all aspects. I find the same in some octanerender nodes, like some pattern generator nodes come with scaling parameters. But overall it looks clearly modular separated already.
From this experience I learned to put nodes in 3 major categories following their input-output characteristics: transform nodes, pattern generator nodes and color mapping nodes (excluding basic math operator and mixers), this allows for very flexible flows:

* Transform nodes are nodes that take a vector and return a vector
* Pattern generator nodes are nodes that take a vector and return a scalar
* Color mapping nodes take a scalar and return a color

Please have a look at my attached picture.

I think the key node is the colormap (or gradient) node, it turns scalar or gray scale information into color information in a very powerful way. I have build the most advanced procedural textures with the help of colormaps. Many imaging software systems make use of colormaps, e. g. Photoshop or Gimp, but the full power is unlocked in 3D procedurals.
I'd guess that many users would appreciate such a powerful node in octanerender, at least I do... :)

I will provide you my implementation of the colormap node I did for mental ray in a email to the infoAT address soon.

I hope my comments are helpful. Please don't hesitate to ask if you have any questions.

Best wishes,
Stefan
Attachments
NodeConcept.jpg
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

Hey,

I've had some similar ideas.
I'll contact you via email about this.

Radiance
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
Post Reply

Return to “Demo Version Questions & Discussion”