GithubHelp home page GithubHelp logo

Comments (9)

Vochsel avatar Vochsel commented on July 19, 2024

This stems from Cycles coordinate system being based around Blender which is Z up compared to Houdini which is Y up. Our use cases is to treat Z up as the ground truth when rendering USD data.

As it stands currently, our Z up Blender exports (with dome lights) are rendered correctly.

We have found no elegant solution to handle this situation as the stage up axis is not respected in Houdini properly (Treated more as a suggestion).

A compromise might be to have dome lights treated as Z up, enabled via environment variable. Whether or not it is the default is another question. I lean towards keeping it disabled by default and treating Houdini and other Y up DCCs as the exception.

Technically this issue is larger than dome lights. I suspect coordinate based materials in general will be the wrong axis when authored in Houdini.

from hdblackbird.

trebconnell avatar trebconnell commented on July 19, 2024

I repro'd this in usdview with a Y-Up usda (below for reference).

The issue in usdview seems to be that the changing upAxis results in a different camera transform being given to hdCycles. This works for mesh. But causes issues for Skydome, which should have the inverse transform applied so they're 'Always Up'.

I'll see if I can determine how/if Storm and hdPrman handle this. Is there a way to get Storm to visualize HDRI?

#usda 1.0 
( upAxis = "Y" )
def DomeLight "domeLight"
{
    asset texture:file = @StinsonBeach.exr@
    token texture:format = "latlong"
}

from hdblackbird.

varomix avatar varomix commented on July 19, 2024

yeah this is a tricky situation, had to hardcode transforms when I was trying to integrate Cycles into Houdini a while ago

from hdblackbird.

trebconnell avatar trebconnell commented on July 19, 2024

Hmm this issue has been brought to Renderman: PixarAnimationStudios/OpenUSD#938

The 'fix' seems to be that stages with z-up should apply a transform to their HDRI to accommodate. So Blender would call the function added here when it exports a dome light.
PixarAnimationStudios/OpenUSD@d26a8e4

Imo would be preferable to have Hydra adjust the transform of dome lights, like it does the camera... I will raise that on Usd itself and see what Pixar's thoughts are on this,

from hdblackbird.

trebconnell avatar trebconnell commented on July 19, 2024

Raised in PixarAnimationStudios/OpenUSD#1298

@Vochsel , We'll see if that issue gets any traction. Currently it seems that blender should adjust the transform of it's dome lights on export, but idk if you want to actually start baking that into your scenes...
I'll see if I can detect what the scene up is and modify the transform myself to mitigate....

from hdblackbird.

trebconnell avatar trebconnell commented on July 19, 2024

I can't detect automatically in render delegate... This information is not exposed. Could do via environment variable as suggested...

from hdblackbird.

Vochsel avatar Vochsel commented on July 19, 2024

Thanks @trebconnell
Yep that was basically the conclusion we came to here. Will wait to hear from Pixar.

Going with the OpenEXR spec for environment maps does makes some sense.

Our previous versions of Blender were on USD-19.11 so they didn't have that function, but we have recently moved to 20.08 so we can make use of that. I think if we can make the default usage of HdCycles match 1 to 1 with what cycles expects then its preferable at the moment.

from hdblackbird.

c1112 avatar c1112 commented on July 19, 2024

this may be a stupid question but is there any particular reason to not just switch Houdini to z up in the prefs?

from hdblackbird.

boberfly avatar boberfly commented on July 19, 2024

#49 fixed here as well

from hdblackbird.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.