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!
Custom nodes for the Octane Render node graph
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.
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.
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
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
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?
Chyman
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?
Chyman
Well,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?![]()
Chyman
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
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
Chyman
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
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
you could contact me via email at the adres on our 'about us' page.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
we can talk further then.
Terrence
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
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
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