Page 1 of 2

Material pipeline feature requests

Posted: Mon Oct 18, 2010 10:43 am
by matej
Hi.

I've been playing with the Octane material pipeline during the weekend, and have noted down some things that I think would be useful to have, and the reasoning behind them. Some of them are strictly needed, some of them are little enhancements and some are just ideas to debate on. Any feedback (support, resent, additions, comments) from the developers and users would be appreciated. Ofcourse users are invited to write down their own wishes concerning the material pipeline in this thread (as we don't have a proper feature request tracking tool). I opted to group all this requests into a single thread also because I don't like to flood the forums with new threads for every little issue that I have.

Bear in mind that this is a feature request thread, not bug report (ie. bugfix requests should be posted in the current version testing thread).


1.) Tidying up GE

The Graph Editor becomes a Flying Spaghetti Monster three nanoseconds after you start working with nodes. :) Being able to pan the GE is a matter of life and death. Some other ways of keeping nodes more organized is also needed - like grouping or hiding. Blender Nodes editor is very well organized, for example.

2.) More procedural noises & blending modes

I'm sure the devs are aware of this and working on, but anyway. There is the need for more noise generators (voronoi, tiling patterns...). Blender procedurals system come into mind, where every noise has also a basis noise (seed?) which permits to create a plethora of diverse patterns. More texture blending modes are also needed. Currently Octane has mix and multiply, but to really take advantage of procedurals and nodes in general, there need to be support for all the typical blending modes you can find in image editing software like Photoshop or Gimp: add, divide, subtract, screen, overlay, saturation...

3.) RGB only preview for textures

When working with texture nodes there is no need for a lighted preview - frequent render re-starts slow down the workflow and sometimes cause hangups (atleast on my machine). All you really need is to see the RGB result of your node system.

4.) Arbitrary material preview model

The material ball is nice and enough for generic previews, but sometimes when creating materials you would like to have for preview the model on which the material will actually be applied. The ball is small and procedural scale is almost always off when you later apply the material to the actual object. Also its texture coordinates are distorted spherically, so it's not an ideal preview of exact uv mapped textures. The ideal solution would be if we could use an arbitrary model from the active scene instead of the material ball - say that when you are creating a macro, you could apply a piece of the scene (only those objects that share the materials ID) for that macro preview. Looking at the actual object when creating nodes for it would speedup workflow.

5.) Basic math nodes

Say you created a material comprised of image textures and procedurals. To look right, like you want it, the procedurals must have a different scale than image textures (usually they have). You want also to assign a "global scale" input pin, so that you or users of LiveDB will be able to control the scale of the material. You would need a node that multiplies the float input of the user by a factor, for every different scale you have in your textures, if you want to be able to scale all textures with one input parameter.

Basically in this case a math node with a multiplying factor, that takes user inputed value from the input pin node, and passes on the multiplied value to texture node scale input.

6.) Ability to link images to macro nodes

I think this one has already been acknowledged by the dev team, but I'll mention it anyway (with a minor addition).
Presently imported images in macro are embedded into the .ocm file, which creates a lot of unnecessary duplication and is heavy on disk usage (images are saved uncompressed). A more flexible way for local material database would be to just save the path to an image in macros. The program should write down both the absolute path and relative path and on import check the other, if the image is not found on the first. This will make the system a little more robust and will permit users to move project folders around, without fear to break links to images. My personal organization is that I have texture images in a global repository that doesn't change (absolute path), but also texture images created specifically for the project (relative path) which are not usable in other projects. This is a minor feature, but can make life easier.

7.) Multiple mapping coordinates & UV's

Support for mapping textures in different ways not just UV would be appreciated. The texture and mapping nodes could have an additional parameter - a dropdown list of standard intrinsic coordinates to choose from: global, object, cube, sphere, tube... Also a very useful thing sometimes is being able to use multiple UV coordinates for the same mesh. I'm sure that most 3D packages support multiple unwrapping of the same mesh, the thing is that .obj file format doesn't seem to support it (another reason to dump it).


That's it for now. I'm sure more things will pop up eventually. Octane is awesome, wanting it to be even more awesome is just natural :D

Re: Material pipeline feature requests

Posted: Mon Oct 18, 2010 11:19 am
by jakchit
these are all great suggestions!

Re: Material pipeline feature requests

Posted: Mon Oct 18, 2010 11:23 am
by colin
very nice inputs. i agree with them 100%.
though - "When working with texture" - what do you mean by that? i'm not quite sure what your working routine is that you'd be slowed down by a lit preview rather than just an rgb-one. textures are pretty straight forward in my workflow. its the normal maps, glossiness and such that need tweaking.
please elaborate?

colin

Re: Material pipeline feature requests

Posted: Mon Oct 18, 2010 11:42 am
by matej
colin wrote:very nice inputs. i agree with them 100%.
though - "When working with texture" - what do you mean by that? i'm not quite sure what your working routine is that you'd be slowed down by a lit preview rather than just an rgb-one. textures are pretty straight forward in my workflow. its the normal maps, glossiness and such that need tweaking.
please elaborate?

colin
I meant when working with texture nodes in Octane - creating procedural patterns, applying tone colouring to images created outside Octane... - I like to optimize stuff... :D
With (broader) support for texture manipulating operations (nodes) in Octane, you could create realistic materials with limited need to load externally created images - ie. saving on VRAM.

I'm slowed down by lit preview because I constantly click on nodes and tweak texture node parameters :) Having a lit preview in this case is unnecessary (every click on node starts re-draw). It's strictly need only when working on material node parameters.

Example: a leather-like material that is seamlessly tile-able, users can change it's color at will, and uses very few vram resources (1 grayscale 2048 image = 4 megabytes). It probably could be optimized even further.
leather.jpg

Re: Material pipeline feature requests

Posted: Mon Oct 18, 2010 4:56 pm
by Jaberwocky
Two ideas from me
1) Tool tips that you can enable and disable on the sliders for new users
2) IOR presets for popular items like glass & water etc next to the IOR Slider.

Re: Material pipeline feature requests

Posted: Tue Oct 19, 2010 5:30 am
by bepeg4d
good suggestions matej ;)
I have another one, on right-click on a node it would be very useful if we have also "Duplicate node" for fast variation of nodes and materials.
ciao beppe

Re: Material pipeline feature requests

Posted: Tue Oct 19, 2010 7:58 am
by matej
Jaberwocky wrote:Two ideas from me
1) Tool tips that you can enable and disable on the sliders for new users
2) IOR presets for popular items like glass & water etc next to the IOR Slider.
Hi, Jaberwocky, thanks for your input. If I understand correctly 1.) you want tooltips about material parameters when hovering on the respective slider?

I fully agree with your second request - we need material presets. But there are more ways of implementing this, though. One would be to have an IOR dropdown for the specular shader parameter, the other (more Octanish, I think) is to actually create separate glass materials for the LiveDB that incorporate IOR presets. note: by shader I mean the mathematical algorithm (glossy, diffuse, specular) and by material I mean everything that we create by tweaking the parameters of those algorithms.

I think that your second request will materialize as soon as the material creation system is 'finalized' for the LiveDB. (developers are invited to correct my assumptions, if that is the case ;) )

Re: Material pipeline feature requests

Posted: Tue Oct 19, 2010 8:04 am
by tungee
I agree to 100% of the suggestions.. :P

Re: Material pipeline feature requests

Posted: Tue Oct 19, 2010 8:09 am
by matej
bepeg4d wrote:I have another one, on right-click on a node it would be very useful if we have also "Duplicate node" for fast variation of nodes and materials.
Hi, Beppe. Fully agree. I'll 'embed' it, with your permission ;)

8.) Drag & drop node duplication

We need a way to duplicate macro nodes (or any node), so that created macros can be used multiple times in the same scene, with different input parameters, without the need to saving it into .ocs and re-importing. The best way of implementing this would be a drag & drop from the Outliner (so that you could drop a macro on any open tab in GE). As an addition it could also be implemented as a right click on the node or as a menu; right click -> add -> material -> created -> a list of all material macros created in this scene (respective for texture and emission macros).

EDIT: I have some additional thoughts on this one:
The default behavior of a macro "copy" should be "linked copy" - ie. the "copy" and the original macro should share their internal structure, so that you only need to edit one and the changes would reflect in all linked copies. But there will probably be the need also for a real copy - ie. to expand the original macro with new internal nodes, thus making an evolution of the original macro. This could be achieved with a right-click "make standalone" on a linked copy that has been previously dragged&dropped from the Outliner. This my sound difficult, but it's not. For those who know Blender - think about linked mesh object duplication: Alt+D

Re: Material pipeline feature requests

Posted: Tue Oct 19, 2010 8:30 am
by bepeg4d
Hi, Beppe. Fully agree. I'll 'embed' it, with your permission
yes surely, you are doing a very good job ;)

ciao beppe