Matching a Houdini ENV IBL

Forums: Matching a Houdini ENV IBL
Houdini Integrated Plugin

Moderator: juanjgon

Matching a Houdini ENV IBL

Postby allenh » Thu Jan 05, 2017 5:40 am

allenh Thu Jan 05, 2017 5:40 am
Hi there! I'm just beginning to learn Octane, and am doing so by using the Houdini plugin version of it. I'm trying to understand some fundamental concepts, one of which is creating an image-based light. The process is confusing me, and I'm hoping someone might be able to offer me advice.

To isolate my testing, I've set up an extremely simple scene in Houdini: I have a single sphere with a chrome shader on it, and a single Environment Light. The texture of the Environment Light is a High-Dynamic Range, scene-referred linear image (i.e. an image-based light), in EXR format. I leave all light parameters on the Environment light set to their default. When I poke render in Houdini, I see this image, which is exactly what I expect:

Image

I'm having a very difficult time replicating this in Octane. Here's what I've done (with questions included along the way)

--I create a new, empty Octane network, and create a very simple renderTarget setup consisting of the thinLens camera and the Pathtracing kernel. I *think* that by not including a camera imager node, I'm bypassing any postprocessing/LUT/molesting of final rendered pixel values:

Image

--I create a second, empty Octane network, and create (what I think should be) a constant-shaded material:

Image

--On the TEX_IMAGE node, I have Power and Gamma both set to 1 (QUESTION: why is the default 2.2 if we're working in linear color space?)
--On the EMIS_TEXTURE node, I have "SurfaceBrightness" ticked on, power set to 1, which I *think* should basically mean "just give me the raw pixel values of this image".
--On the MAT_DIFFUSE node, I have diffuse set to 0, which I *think* should render this a completely constant-shaded material, correct?

--I have a chrome Octane shader assigned to my chrome sphere, and I create a second sphere, 100x larger than the first, to which I assign this simple constant-shaded material. I *think* this is how the docs describe setting up an image-based light in Octane (I understand it's effectively emissive geometry).

This produces this image. You can see the Octane render (on the right) is notably darker than the Mantra render on the left. The harsh colors imply, to me, a gamma issue:

Image

--I found an option in the Octane Options dialog to set a custom IPR gamma. I tick this on, and set the gamma to 2.2. When I rerender, I see this:

Image

The Octane render now looks overbright (and desaturated).
Can anyone either explicitly explain how I should be going about setting this up, or point me to docs that thoroughly explain this?

Thanks so very much!
allenh
Licensed Customer
Licensed Customer
 
Posts: 13
Joined: Tue Jan 03, 2017 2:19 am

Re: Matching a Houdini ENV IBL

Postby juanjgon » Thu Jan 05, 2017 9:17 am

juanjgon Thu Jan 05, 2017 9:17 am
Hi,

You don't need an environment sphere object at all to render IBL scenes in Octane. You only need to add the Render Target HDA, set the environment to "Texture" in the main tab, and select the HDR image in the TEXT Environment tab. Done!

If you want to build your own render target node graph, you must use the texture environment node. Be aware that you should set the texture environment gamma parameter to 1.0 for any HDR image.

Thanks,
-Juanjo
Attachments
image002155.jpg
Computer Graphics Software Developer
Octane plugin development and support: LightWave and Houdini
User avatar
juanjgon
Octane Plugin Developer
Octane Plugin Developer
 
Posts: 7358
Joined: Tue Jan 19, 2010 12:01 pm
Location: Spain

Re: Matching a Houdini ENV IBL

Postby allenh » Thu Jan 05, 2017 2:02 pm

allenh Thu Jan 05, 2017 2:02 pm
Hi Juanjo;

Thanks for responding! I indeed have found the docs outlining this process (though, I'm a bit of a purist, and so I kinda like building stuff up from scratch to make sure I understand things well, hence using the env sphere. Also, positioning the env sphere is, I find, more intuitive in terms of rotating/adjusting my light).

However, when I do what you mention, I have the same issue as I noted above with regards to brightness differences relative to Houdini.

octaneEnV.PNG


What I'm trying to understand is why this discrepancy is arising. Given that an image-based light is meant to represent the total light emitted into a scene, I'm having a hard time understanding how this relates to Octane's notions of "wattage" for lights.

Ultimately, to word this a different way: I'm interested in establishing a ground truth between Houdini and Octane. I'm assuming, of course, that Houdini's ground truth is the correct one, and am interested in parity on the Octane side of things.
allenh
Licensed Customer
Licensed Customer
 
Posts: 13
Joined: Tue Jan 03, 2017 2:19 am

Re: Matching a Houdini ENV IBL

Postby juanjgon » Thu Jan 05, 2017 6:50 pm

juanjgon Thu Jan 05, 2017 6:50 pm
The brightness difference can be related to the Octane tone mapping options. With the default Imager settings, the Octane render is not going to match the Mantra render due to parameters like the film response or the vignetting effect.

If you want to match the Mantra rendering, your probably should set the Response to "Linear/Off", the Gamma to 2.2 and the Vignetting to 0.

Thanks,
-Juanjo
Attachments
image-001330.jpg
Computer Graphics Software Developer
Octane plugin development and support: LightWave and Houdini
User avatar
juanjgon
Octane Plugin Developer
Octane Plugin Developer
 
Posts: 7358
Joined: Tue Jan 19, 2010 12:01 pm
Location: Spain

Re: Matching a Houdini ENV IBL

Postby allenh » Fri Jan 06, 2017 3:35 am

allenh Fri Jan 06, 2017 3:35 am
Hi Juanjo;

Thanks so much for the reply!

Unfortunately, I'm afraid that, even by following this advice, I still see a discrepancy between Mantra and Octane:
imagerBypass.png


To double-check myself, I've even tried a few other HDR images; again I see discrepancies:
papermill.png


Further: My instinct to try to achieve parity is to raise my Octane TEXT ENVIRONMENT by a half stop or so. But, I notice that when I adjust the Power slider on the TEXT ENVIRONMENT tab, it seems to have no effect on the render, and doesn't go above 1.

Might you have any further advice (or perhaps an example hip file which demonstrates parity between Mantra/Octane to which I might refer)? Or, have I stumbled across a bug?
allenh
Licensed Customer
Licensed Customer
 
Posts: 13
Joined: Tue Jan 03, 2017 2:19 am

Re: Matching a Houdini ENV IBL

Postby juanjgon » Fri Jan 06, 2017 7:35 pm

juanjgon Fri Jan 06, 2017 7:35 pm
Hmm, it is hard to say. Let me build a sample scene here to see if I can find the source of these rendering differences. In theory, while working in linear space the render should be the same, but it seems that at some point there is some kind of gamma or tonemapping correction.

Thanks,
-Juanjo
Computer Graphics Software Developer
Octane plugin development and support: LightWave and Houdini
User avatar
juanjgon
Octane Plugin Developer
Octane Plugin Developer
 
Posts: 7358
Joined: Tue Jan 19, 2010 12:01 pm
Location: Spain

Re: Matching a Houdini ENV IBL

Postby allenh » Thu Jan 19, 2017 3:13 am

allenh Thu Jan 19, 2017 3:13 am
Hi;

Have you perchance found some clues about this?

I'm running into another issue that I think could be related. I have a plate I shot with a DSLR; the plate currently exists as 16-bit integer scene-referred linear images. In Octane, I create what I *think* should be a "Constant" shader. I do this in the following way

--I create an Octane network in SHOPS
--I create a Diffuse material. I set Diffuse to 0.
--I create a Texture Emission node, and wire that into the Emission input of the Diffuse material
--On the Texture Emission node, I wire in a Texture Image RGB input. The Texture Image RGB node points to my plate.

I map this shader onto a simple grid in my scene, and render it. Theoretically, this image should match EXACTLY my input plate. Yet, it does not:
constant.PNG


You can see the left side of the image here is darker than the right; the left side is the Octane render, the right is the raw plate.

I find this issue of trying to establish parity between live action plates or HDR images to be, frankly, extremely frustrating. At this point I doubt I'm doing something wrong (I habitually reduce scenes to their simplest possible state to troubleshoot, and I've not yet managed to create a scene that allows for a completely plumbed-through workflow for visual effects). Either I'm consistently doing something wrong (in which case, Octane obfuscates what should be a super-critical Fundamental Truth for visual effects) or there's a bug here somewhere.
allenh
Licensed Customer
Licensed Customer
 
Posts: 13
Joined: Tue Jan 03, 2017 2:19 am

Re: Matching a Houdini ENV IBL

Postby juanjgon » Thu Jan 19, 2017 5:57 pm

juanjgon Thu Jan 19, 2017 5:57 pm
I'll take a look at it as soon as possible. I've made some tests, but I don't have a definitive answer yet.

Thanks for your patience,
-Juanjo
Computer Graphics Software Developer
Octane plugin development and support: LightWave and Houdini
User avatar
juanjgon
Octane Plugin Developer
Octane Plugin Developer
 
Posts: 7358
Joined: Tue Jan 19, 2010 12:01 pm
Location: Spain

Re: Matching a Houdini ENV IBL

Postby juanjgon » Thu Jan 19, 2017 10:50 pm

juanjgon Thu Jan 19, 2017 10:50 pm
I am testing a scene here with an HDRI environment and with the correct settings, working always in the linear space, the Mantra and Octane renders looks near the same. Attached you have the scene file. You can set any HDR file in the environment light (for Mantra) and the same image in the Render Target texture environment (for Octane).

Hope this helps,
-Juanjo
Attachments
hdrEnvironment.rar
(44.12 KiB) Downloaded 103 times
image-001339.jpg
Computer Graphics Software Developer
Octane plugin development and support: LightWave and Houdini
User avatar
juanjgon
Octane Plugin Developer
Octane Plugin Developer
 
Posts: 7358
Joined: Tue Jan 19, 2010 12:01 pm
Location: Spain

Re: Matching a Houdini ENV IBL

Postby juanjgon » Thu Jan 19, 2017 11:03 pm

juanjgon Thu Jan 19, 2017 11:03 pm
About your second question, the problem can be that you don't have the option "Surface brightness" enabled in the emission node. You should enable this option and set the power to 1 to match the input plate. Also as always be aware of the Octane tone mapping settings, film response, vignetting effect, etc.

Thanks,
-Juanjo
Attachments
image-001340.jpg
Computer Graphics Software Developer
Octane plugin development and support: LightWave and Houdini
User avatar
juanjgon
Octane Plugin Developer
Octane Plugin Developer
 
Posts: 7358
Joined: Tue Jan 19, 2010 12:01 pm
Location: Spain

Return to Houdini


Who is online

Users browsing this forum: No registered users and 3 guests

Fri Apr 03, 2020 7:52 am [ UTC ]