Community
Arnold for Houdini Forum
Rendering with Arnold in Houdini and Solaris using the HtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Correct workflow for using Field Shader in Arnold Implicit Surface

2 REPLIES 2
Reply
Message 1 of 3
seals77
322 Views, 2 Replies

Correct workflow for using Field Shader in Arnold Implicit Surface

Hello,
I am working on a project which could take great advantage of specifying levelset surfaces in Field Shader, preferably with OSL.

I tested it by creating a Arnold Implicit Surface node and setting Field Shader parameter pointing to a shader network which is outputting value calculated like this: length(P_world) - 0.5, which should result in a sphere of radius 0.5 units.

I tried outputting value directly into volume input of Material Output node, or to Standard Volume node, but I did not get any results.

How can I correctly create Field Shader?

I also noticed those warnings in console:

00:00:00   711MB WARNING | [htoa::arnold::Implicit::Implicit] Field mode is not supported
00:00:00   711MB WARNING | [virtual void htoa::arnold::Implicit::build] Skipping invalid volume generation

Any ideas?

Thanks,
Juraj

2 REPLIES 2
Message 2 of 3
madsd
in reply to: seals77

I have this working for some year or so in 3ds max.
I can try look up the pseudo code on Monday, and forward.
You should be able to derive a small tool that calls the Arnold Implicit in Houdini based on the tool I got.

btw, Implicits are awesome, I have so much OSL code that supports this domain.
Love it.

Message 3 of 3
baltou1703
in reply to: seals77

implicite_surface_workflow_001.PNGimplicite_surface_workflow_002.PNGimplicite_surface_workflow_003.PNGimplicite_surface_workflow_004.PNG

Field mode is not implemented yet, however in custom mode you can build something:

First you have to make an arnold material builder, inside you create an OSL node, write your code outputing a float type value (density per example).

you plug the output directly inside the shader input of the arnold material builder.

you insert the path of your material in the material path of the implicit

in /out/ :

you create an arnold render node and a set_parameter atop of it and link them both

inside the set_parameter node you write the settings of you implicite surface:

assigment 1 = min = [-1,-1,-1]

assigment 2 = max = [1,1,1]
assigment 3 = threshold = 0.1
assigment 4 = field = 'the/path/of/your/osl/field/'

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report