[Request] OpenSubdiv

An option in the materials for applying Pixar’s OpenSubdiv would be nice to have!

not feasible, we already have tesellation for that, and also, openSubdiv is meant for animation preview, adding it would cost waaaay too much power, wich could be used in other parts of the engine. You can get similar looks with normal tesellation if you use it properly, and even that is quite a bit resource consuming.

In a presentation Pixar mentioned they’re in talks with folks at Crytek and Call of Duty has it already implemented, so it should very well be feasible.

checked out the main site

the license is quite encouraging, friendly even!

OpenSubdiv is covered by a modified Apache 2.0 license (included below), and is free to use for commercial or non-commercial use.  All Pixar patents in the area of subdivision surface algorithms have also been released for public use.  We welcome any involvement in the development or extension of this code; in fact, we’d love it. Please contact us if you’re interested.

#Video

This video is amazing!

It’s the folks at Pixar explaining corroboration with Maya and Autodesk to make this new world standard for adding detail to only certain parts of a mesh when it is actually needed rather than raising poly count on entire mesh

http://www.cgmeetup.net/home/the-opensubdiv-project-pixar-animation-studios-autodesk/

#Wow

wow

this is like DX11 tessellation to the next level AND the guys at pixar are providing all the code and apparently some sort of free software build and the license to use all this to everyone

It wouldnt be too hard to add a new mesh component that uses opensubdiv, but it still has the problems ive said, that its way too resource intensive for a game, it could work fine for cinematics, and it would look awesome, but imagine a game with 50 npcs, each with open subdiv, the framerate would probably be abysmal

Since it scales the level of tessellation over distance it should scale pretty good performance wise. In general it may not be suited well for MP but in a SP situation you would rarely have have more than 5-10 enemies on screen at the same time. And again CoD:Ghost already uses it on a variety of objects, so it must be feasible for in-game use. It’s a subtle effect and surely not suited for everything but for rounding off mechanical parts or static architectural objects it’s a great solution and with it’s selective tessellation and crease support as Rama said superior to methods like PN Triangles.

the overhead is not in the teselation part itself, the overheard is the open subdiv library part, wich has to do some calculations while just using pn triangles dont need anything. With pn triangles you upload the mesh to the GPU and then it subdivides there with the teselation shaders. With opensubdiv, it has to pass throgh all the systems in the library to calculate the patches and then upload tho the GPU, where it does(most likely) a much more complex shader than simple pn triangles. Of course, if used sparingly, in a very few objects, it can work, but not as whole scene teselation as you can do with normal teselation

We would like to support opensubdiv in some form in the future. Subdividing arbitrary triangle meshes with Catmull-Clark subdivision isn’t useful. Really, a subd surface should be treated like a different input data type, a quad mesh with edge weights specifically built in a modelling package as a subd cage.

Once this data can be imported in the engine, Pixar’s runtime library to dynamically tessellate is definitely cool but is poorly suited to the strengths of hardware given game performance demands. HW tessellation in general is poor for performance per poly. It is also a pretty complex system which would be a lot of work to integrate.

My expectation is that the best bang per buck for game performance is to import subd data, tessellate and mesh simplify as a preprocess to generate optimal LOD meshes.

All that said, this isn’t on our schedule at the moment.