Blender 2.82 will have USD Support!

Optix is a raytracing engine!

Hello again Brecht, and thanks for the concise response, that’s all I was asking for!

I was told that Hydra will be implemented in Houdini 18 as a stage for their main viewpoort, not only for previewing, but general work, like modeling, and that you will be able to render final output with it, but I haven’t seen it in action, I would need to ask on SideFX forum for more information, thanks again!

I never knew that thanks!

You are quite welcome, Optix is bad ass, but Nvidia only, unlike AMD ProRender, which can use AMD and Nvidia cards!

Why do you want Hydra when we get/have Eevee? Hydra is a tool for fast visualization, so that Animators can see their animation as close to the final rendering with all kinds of effects like AO, DoF, MotionBlur etc.
I quite don’t see why that is necessary when we do have a solution which already does that.

Now USD is a different animal, i think this is quite helpful for bigger (commercial) projects, to integrate Blender into a multi-program pipeline using all kinds of Software. This is IMHO much more useful.
But i admit i don’t know too much about technical specifications on how that would
a) benefit Blender as a whole not just big companies
b) how difficult it is to integrate and support further down the line

But i kinda see massive benefits (even for hobbyists and freelancers) when taking into account that the whole industry movies in the direction of having software bridges and export formats which allows to transport whole scenes with lighting, shaders and all kinds of stuff from one application into another without much further work.

PS: i found this:

Very cool video, thanks!

Like I said, Hydra is way faster than Eevee, at least the demo I saw was, and it looks as ggod as Eevee IMHO, and it is developed by a large team with almost limitless ressources, and its open source, seems to me like its a perfect match for Blender, and yes, USD is impressive, blazing fast too, it would probably solve Blender problems with large data-set!

I always had the impression that Hydra was mostly specialized for usage in production environment, meaning explicitly aimed at professional cards like Quadros.
I doubt that the amount of speed you see is something you can replicate with an consumer card, taking into consideration that Nvidia gimps their consumer cards so that pro’s are kinda forced to buy these SUPERF#*&%NG expensive cards in their exclusive monopoly-market-segment.
People like me never can afford such cards, like the majority of Blender users i guess, so that makes the whole endeavor kinda pointless.

1 Like

The minimum requirement for Hydra is OGL 4.0, which is 8 years old, Hydra backend is Optix 5.x, which runs well on GTX 600 and up, but the minimum is GTX 400, which are also 8 years old!

Being an ex gamer i remain doubtful even if my card easily exceeds the minimum requirement. But that doesn’t mean much, right? IDK to be honest, its just a feeling. (I don’t trust minimum requirements!)
Somebody should do an benchmark with Katana 3, since that is the only openly available platform where Hydra is implemented ( i might be wrong again).

I would be surprised if Pixar made sure that Hydro is performing decently on those lower end cards. They are using high end hardware and that’s why they most likely focus their efforts there as well.
Focusing on a specific user group is very different from supporting a broad range from low to high end.

1 Like

I would also like to see how Katana performs on a game card, there is also Embree, an Hydra based final quality ray-tracing engine, although I am not sure if Embree is CPU or GPU based, still, I would love to see how Hydra performs on these cards!

Hydra is based on Nvidia Optix, and Optix runs on pretty much any modern Nvidia cards!

That’s not what I meant.
If it was based on Optix, it wouldn’t be an option for Blender anyways, because Blender could only be run with Nvidia cards. Optix is just one of the backends.
The question is not whether it runs, the question is whether it works well enough to be usable. If it is developed for high end hardware, it will perform well on it. Usually, that’s not going to be the case for low end hardware. It is not worth very much that it should theoretically work.

I installed the Katana trial and loaded one of my scenes, first time using Katana, so I am learning as I go along, I installed a GT 730 card on the system, which is a 50$ card, my scene is 850K polys, but Katana only seems to support Alembic, and Alembic does not support textures, so its only polygons so far, but it runs very smoothly in the Hydra viewport, will need to load in a heavier scene to see the benefits!

To be honest, this discussion is pretty pointless.

When Eevee was started, Hydra didn’t exist and wasn’t considered.
Now we have Eevee and switching to Hydra would be a huge waste of resources.

No discussions are pointless IMHO, as for Eevee, the roadmap was set in march 2017 as I recall, Hydra became open source in March 2016, and I never said that Eevee should be put aside for Hydra, I was merely interested in knowing why Hydra/USD was not considered at the time, many of which were answered here!

Hydra, and especially USD, would be an awesome addition to Blender, again, IMHO, to call pointless a discussion about open source technologies that could better Blender is, well, kinda pointless! :wink:

I though the development of Eevee started before 2017, but it was named differently at that point.

However, with Eevee in place, what would the benefit be in having Hydra?

There’s a lot of incorrect information in this thread unfortunately. (full disclaimer, I used to work at Pixar and now at AMD we’ve done a bunch of work adapting Radeon ProRender to Hydra, full story on that from the USD siggraph BOF here is my talk from there: https://www.dropbox.com/s/lonbditn9o47ow4/ProRenderUSD.pptx?dl=0)

So couple definitions first: USD is the file interchange format, and tools around describing a scene. Think of it like FBX on steroids, and also meant to be more of a “live” system rather than import/export.

Hydra is a middle layer between scene data and renderer. Hydra, like in mythology is meant to have “many heads”, both on the input and output side. These are called Scene Delegates on the input side and Render delegates on the render side. So for example the default “renderer” USD comes with is a GL renderer, if you use USD view (a file viewer for usd files) it would look like this:
USD scene delegate -> Hydra -> GL render delegate.

However you could download the aforementioned Radeon ProRender delegate to output a higher quality render instead of GL. Or USD also comes with an Embree CPU raytracing renderer.

Also on the input side you can make an input scene delegate to read in from Blender rather than USD data. Note that all these pieces are designed around high performance and only updating things through the hydra pipeline that are changed. It’s quite impressive actually of a design.

So the point here is that there could still be EEVEE used as a render delegate to Hydra or a scene delegate that reads from Blender data. What would that gain?

  1. A well designed middle layer that is robust and blender doesn’t need to maintain
  2. Ability for other renderers that have hydra render delegates to just plug in (Arnold 3delight, Renderman, ProRender).
  3. A data abstraction and adoption of open source projects the industry is embracing

Couple other points I noticed that were incorrect in this thread:

  • Hydra wasn’t around when eevee was started. - Not going to debate timelines but I has been there for a bit. The part for custom render delegates is less mature and really only usable in the last year.
  • Applications using Hydra currently - Aforementioned Katana 3.0, SideFX upcoming, Gaffer, plugins to Houdini, Maya, mayber others I don’t know?
  • Those applications using Hydra only use it to visualize USD data. - Not correct. Katana basically has a “Katana -> Hydra” Scene delegate which passes all the katana data to hydra for viewing. The older Maya plugin for USD does do what Brecht described, but newer ones pass all the Maya data to Hydra via a custom scene delegate.
  • Hydra is based on optix - Not at all, Hydra is the middle layer. Pixar has an internal Optix render delegate they have shown in one of the videos above and at siggraph.
  • Hydra is OpenGL 4. - Again not true. Hydra is the abstracting middle layer There is a GL render delegate to hydra, but that could be replaced with eevee or whatever you want.

Frankly I’m a bit surprised Blender hasn’t jumped on this a bit stronger. Industry standard open source projects. Isn’t that what Blender should be all about?

24 Likes

Thanks for all the great info, as for OGL 4.0, I only mentioned what is said on Pixar’s site, but I might not get the whole picture here, and I agree, the BI should have a closer look at this, as we all know that Blender struggles with large data-set, USD might be a good and viable solution to that problem!

The name Eevee was cornered in December 2016 I think, and yes, the developer has started working on it quite a bit ago, before Hydra was released, but still, USD/Hydra has been released in march 2016, IMHO there should be more talk about it in the community!

Regarding terminology, I guess the USD API docs are a little outdated because the name “Hydra” is still used to refer to the OpenGL backend there too, not just for the middle layer.

The question I was responding to is why EEVEE was developed, and as far as I can tell there did not exist a comparable open source rendering backend for Hydra. Integrating Hydra would have many benefits, but adding a middle layer wouldn’t have made it easier for us to get an EEVEE-like viewport into Blender 2.8.

If people consider USD/Hydra support a priority feature, make yourself heard. Blender development should be about the the features that the Blender community wants.

8 Likes