New nodes feature discussion towards v1.0 final

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

Hi all,

We have only a few more major features/changes to implement and we will publish v1.0 final. (new render kernel, etc...)

Next week we also have a new developer starting and one of his first tasks will be adding several new nodes to complete the node collection for our first final release.

I would like to use this thread to discuss them and get feedback / ideas from the user community on what the best / most useful nodes would be to add.

Note that any possible nodes presented here or discussed are not guaranteed to appear in v1.0 final, we might cancel some or move some to the roadmap for subsequent releases after the first final version, based on complexity and requirements.

Here is an overview of the nodes that we have assembled:


DYNAMIC OPERATORS & FUNCTIONS

Dynamic nodes are nodes that have no default type. They have grey input and output pins for the actual data type they manipulate (eg float, int, texture, material), and they automatically change to a type when they are first connected to another typed node (currently all nodes in 2.44 are typed)
This makes them generic, eg the same multiply operator can be used for int, float and texture values for example.
Since most of these are simple functions, they are very easy and quick to implement so we can add heaps.

Math Operators:

* add (+) [int, float, texture]
* subtract (-) [int, float, texture]
* multiply (*) [int, float, texture]
* divide (/) [int, float, texture]

* invert [float, bool, texture]

* power (pow) [int, float, texture]
* square root (sqrt) [int, float, texture]
* modulo (mod) [int, float, texture]
* exponent (exp) [float, texture]
* logarithm (log) [float, texture]

* sine (sin) [float, texture]
* cosine (cos) [float, texture]
* tangent (tan) [float, texture]
* arc sine (asin) [float, texture]
* arc cosine (acos) [float, texture]
* arc tangent (atan2) [float, texture]
* arc tangent w 2 params (atan2) [float, texture]


CONTROL FLOW SWITCHES (can switch connection between nodes based on an input value)

* switch (simple switch between two dynamic inputs, controlled by bool or int) [accepts any type for switching]
* multiswitch (switch with dynamic number of inputs, minimum 2, inputs can be added and removed, controlled by int, eg 0, 1, 2, etc...) [accepts ant type for switching]


TESTS (test value of inputs, and returns bool true or false, can be combined with switch above for elaborate testing)

* equals (==) [bool, int, float, texture]
* not equal (!=) [bool, int, float, texture]
* greater (>) [bool, int, float, texture]
* smaller (<) [bool, int, float, texture]
* greater or equal (>=) [int, float, texture]
* smaller or equal (<=) [int, float, texture]



STATIC OPERATORS AND FUNCTIONS

These are remaining node, which have a statically defined type, eg they are not dynamic and must be used with the right types.

Math Functions:

* ceiling [float]
* floor [float]
* absolute [float]


Boolean Logic & Operators:

* AND
* OR
* NOT
* XOR


List And translation of Values:

* listint (Combobox, strings can be added to list, outputs selected string as int index value, can drive a switch or multiswitch for presets. Being able to drag these combo boxes and dock them into menu bars should create very useful UI customisation for presets by users.) [int]
* unitsystem (a float value textfield input with small combo box at the right to select unit type, eg, cm, m, km, foot, mile, outputs converted float value in octane meter format) [float]
* lumensystem (node with watt and efficiency inputs for determining correct area light power) [float]
* floattotexture (converts float node value into texture) [texture]
* inttotexture (converted int node value to texture, uses extra scale parameter to define integer range) [texture]

Procedurals and Noises:

* rand (returns random float value in range [0-1], always same seed/sequence) [float]
* perlin3D (3d low level perlin noise texture) [texture]
* noise3D (3d low level noise with no interpolation, eg cell based noise) [texture]


Colours and spectra:

* hsvspectrum (HSV control colour spectrum, similar to current RGBSpectrum) [texture]
* dataspectrum (spectral distribution that can be edited / loaded from file, enables use of measured spectra) [texture]



That is it, it's a large list, and for me the ultimate node collection for low level development.

The point would be to supply a large amount of low level nodes, which then can be used by power users to develop more complex high level macros as prototypes. If those prototypes turn out to be useful, we can add them hardcoded as native nodes in subsequent releases, to make them faster.

This list is not definitive, we would appreciate your feedback about the list, and your ideas and suggestions.

PLEASE, before you post your requests, don't start suggesting any high level nodes if they can be built with the low level nodes above. We will definitely add more high level nodes, if they are essential and will be used often, and if they cannot be built with the above nodes in macros, or would be too complex and slow to use for practical purposes.

We will be adding / removing and merging some of these on the list during the weeks to come as we go along.
We are also not making any promises regarding when and how much of the above nodes will be I plemented, as it's a big list. :)

Note that this list is not definitive, it does not reflect all new nodes to come, we will be adding other nodes to support the features we will implement for v1.0 final, for example transforms and scene/mesh groups.

Looking forward to your feedback,

Yours,
Radiance
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
User avatar
grimm
Licensed Customer
Posts: 1332
Joined: Wed Jan 27, 2010 8:11 pm
Location: Spokane, Washington, USA

That's a great starting list! I don't know if these would be considered high level or not, but the ones I would like most to see are:

1) Linear Algebra nodes, for cross and dot products, etc.
2) Access to the geometry, at the very least access to the surface normal and the x, y, z coordinates of the ray/object intersection.
3) Vector node/object.

With these and the others you have listed, we could do some very amazing procedural textures. Thanks. :)


oops edited: I forgot to add that it would be nice to have a vector object as well.

Grimm
Linux Mint 21.3 x64 | Nvidia GTX 980 4GB (displays) RTX 2070 8GB| Intel I7 5820K 3.8 Ghz | 32Gb Memory | Nvidia Driver 535.171
User avatar
radiance
Posts: 7633
Joined: Wed Oct 21, 2009 2:33 pm

Hey Grimm,

We currently have float, float2 and float3, and the last one is a 3 component vector.
Dot, cross and other stuff would be handy too, just need to figure out how to integrate them in the shading system of the renderer. I will have a think about it.

Radiance
Win 7 x64 & ubuntu | 2x GTX480 | Quad 2.66GHz | 8GB
User avatar
grimm
Licensed Customer
Posts: 1332
Joined: Wed Jan 27, 2010 8:11 pm
Location: Spokane, Washington, USA

Excellent, that's perfect, I forgot about the float objects. :oops: Thanks Radiance. :)

Grimm
Linux Mint 21.3 x64 | Nvidia GTX 980 4GB (displays) RTX 2070 8GB| Intel I7 5820K 3.8 Ghz | 32Gb Memory | Nvidia Driver 535.171
User avatar
yoyoz
Licensed Customer
Posts: 451
Joined: Sat Dec 25, 2010 9:59 am
Location: Belgium

I suggest adding a Voronoï procedural node.

Cheers,
Yoyoz
Desktop: Ubuntu 13.04 x64 - i7-3770K @ 3.5GHz - 32GB DDR3 - GTX670 2048MB
Laptop: Linux Mint 11 x64 - i7-2860QM @ 2.5GHz - 16GB DDR3 - Quadro 3000M 2GB
Software: NVidia 319.12 - Cuda 4.2.9 - Blender 2.66a
tungerz
Licensed Customer
Posts: 69
Joined: Mon Dec 06, 2010 6:14 am

Object mesh node to bring in different obj's into the scene? ex:add in extrs props to a scene
Win7 64bit...Q6600 Quad core...8Gig Mem...9600 geforce...Daily Build Blender2.5x...Lionel's(Yoyoz)1.10 Blender Exporter... 0 Skill=Priceless
User avatar
matej
Licensed Customer
Posts: 2083
Joined: Fri Jun 25, 2010 7:54 pm
Location: Slovenia

Wow, that's a great list of features - more than I have hoped for :)
* listint (Combobox, strings can be added to list, outputs selected string as int index value, can drive a switch or multiswitch for presets. Being able to drag these combo boxes and dock them into menu bars should create very useful UI customisation for presets by users.) [int]
Will this be useful to create material pre-sets = sets of input parameters for some macro?

I give my vote for Voronoi noise (great for organic, cellular stuff) and of course a tiling procedural (for square or rectangular grids, with grid width control) is a must.

Additional stuff:

* more texture blending modes
Apart from mix & multiply, other blending modes should be added: subtract, add, overlay, divide, difference... These could probably be constructed with all that low-level controls, but for flexibility should be hardcoded

* Transform UV
A transform node that would work on UV coordinates per texture, with the following operations: ScaleX, ScaleY, TranslateX, TranslateY, MirrorX, MirrorY

So, with all that controls, I take it that we'll have also some generic node container, that would allow arbitrary (type and number of) inputs, as well as arbitrary output?
SW: Octane 3.05 | Linux Mint 18.1 64bit | Blender 2.78 HW: EVGA GTX 1070 | i5 2500K | 16GB RAM Drivers: 375.26
cgmo.net
User avatar
Elvissuperstar007
Licensed Customer
Posts: 2506
Joined: Thu May 20, 2010 8:20 am
Location: Ukraine/Russia
Contact:

make a normal rotation of the texture
win 7 /64x C2Quad 6600 2.4/ Nvidia 9800 GX2 1gb 512 bit + Asus 480 GTX/ DDR2 8Gb / NVIDIA 460 GTX 2GB/2x NVIDIA 580 GTX 3GB
Page octane render " В Контакте " http://vkontakte.ru/club17913093
Ice_Juice
Licensed Customer
Posts: 48
Joined: Thu May 27, 2010 6:17 pm
Location: Russia, Voronezh

And what about the promise of a new engine?
It is expected in version 2?
Win 8 x64 | GTX590 | i7 920 | 6GB
User avatar
face
Octane Plugin Developer
Posts: 3204
Joined: Sat Mar 06, 2010 2:10 pm
Location: Germany

It would be nice if we have new commandline options, maybe i1-i10, f1-f10 and b1-b10 for int,float and bool.
And a node that can read it. So we can change some things from extern.
One possible use is to switch lights on/off and change the power...
Or blend between two textures...

Maybe it´s better to have an -f option that reads a xml-like file with the variables, that the node can use.

face
Win10 Pro, Driver 378.78, Softimage 2015SP2 & Octane 3.05 RC1,
64GB Ram, i7-6950X, GTX1080TI 11GB
http://vimeo.com/user2509578
Post Reply

Return to “General Discussion”