Question: Enable rman style tesselation? (Karma)

   1826   11   1
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
Hi,

with 3delight and rman you can get automatic subdivs from poly (i.e. PolyAsSubdiv attribute, my pseudo label). It will make proper rounding of a mesh no matter how much you zoom in on a detail.

This feature is beneficial for several problems, like setting subdivide too low or with special cases with displacement.

With Karma we can use the subdivide node, but it is not adaptive it seems.

Is it possible to enable the same with Karma? If so, how?

If not this is maybe something to RFE, or what do you think?
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Staff
2593 posts
Joined: July 2005
Offline
Karma also does adaptive screen space tesselation.

For interactivity, continuous dicing is disabled in the IPR viewport. You can turn this on to get Karma to redice geometry while adjusting the camera in the viewport (open the display options for the viewport - the 'd' key).
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
Edit: RMan call this feature ”limit surface”

So the automatic dicing I've noticed, however to get rounding on the mesh it seems necessary to add a subdivision node to it. This seems to be limited to the set number. Just take a look at the profile of the mesh curve (top left) that has sharp edges. Here this mesh has no subdivision node applied.

Is there a way to get adaptive tesselation (subdivs) on the profile without setting subdivs to let's say, 10?

Edit: To compare with RMan. If I set a poly as subdiv it get perfectly smooth profiles. Then, to make anything have sharp edges you can add creases or multiple edges where it is desired.

See: Two images comparing with and without subdivision [rmanwiki.pixar.com]

More information, see also: creases and watertight dicing [rmanwiki.pixar.com]

Edit 2: Added an example render with OpenSubdiv Catmull-Clark set to level 3. I guess this will subdivide every polygon three times no matter if they need it or not. However, if it looks good it probably is so. (this technique remind me of good old Maya Mental Ray in 2007, however after using RMans flexible subdivisions it is just a feature I wish to have).
Edited by SWest - Nov. 16, 2022 11:11:00

Attachments:
karma_mesh_profile.png (316.2 KB)
karma_mesh_profile_2.png (1.3 MB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Staff
2593 posts
Joined: July 2005
Offline
USD has a subdivision surface primitive type. Are you rendering Subdivision Surfaces or Polygon Meshes?
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
Here's a video of "continuous dicing in the IPR viewport".

If I could just find the Python for restarting the Karma IPR render this would not be needed.

Scaling displacement will usually trigger an update to the dicing (CPU mode).

Attachments:
swest_screen_capture_20221116_2302.mp4 (14.0 MB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
mark
USD has a subdivision surface primitive type. Are you rendering Subdivision Surfaces or Polygon Meshes?

Oh, it's just a base mesh from ZBrush (polygon). I'll have to look this up tomorrow.

Edit: I'd prefer to use more subdiv features if possible, however I'm looking for a fast efficient ZBrush to Houdini workflow.
Edited by SWest - Nov. 16, 2022 17:23:32
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
7801 posts
Joined: Sept. 2011
Online
SWest
Is there a way to get adaptive tesselation (subdivs) on the profile without setting subdivs to let's say, 10?

right click mesh-> edit primitive-> new node to edit primitive

On the created mesh node, set subdivision scheme to Catmull Clark
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
jsmack
SWest
Is there a way to get adaptive tesselation (subdivs) on the profile without setting subdivs to let's say, 10?

right click mesh-> edit primitive-> new node to edit primitive

On the created mesh node, set subdivision scheme to Catmull Clark

Hi, thanks for your reply. I'd love to do this, however the options are locked. Any clue how to solve this?

Edit: Never mind this one, see the next post.
Edited by SWest - Nov. 17, 2022 10:23:46

Attachments:
karma_subdiv_edit_mesh1.jpg (73.1 KB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
mark
USD has a subdivision surface primitive type. Are you rendering Subdivision Surfaces or Polygon Meshes?

This seems to be it. Looking good (now my 4K texture needs to be replaced, LOL). Woot! Thank you Mark, Jsmack, and every helpful soul on this forum.
Edited by SWest - Nov. 17, 2022 10:33:31

Attachments:
karma_subdiv_USD_as_subdiv.jpg (1.1 MB)
karma_subdiv_USD_as_subdiv2.jpg (1.2 MB)

Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
7801 posts
Joined: Sept. 2011
Online
SWest
Hi, thanks for your reply. I'd love to do this, however the options are locked. Any clue how to solve this?

It's not locked, it's disabled. Set the mode to 'set or create' instead of 'do nothing' with the button to the left of the parm name. The ui doesn't yet support parameters that are disabled, that enable when changed.
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
jsmack
It's not locked, it's disabled. Set the mode to 'set or create' instead of 'do nothing' with the button to the left of the parm name.


Oh yes! This is also the solution. Both methods work fine, however, this technique uses one less node so I'd expect it to be faster to render.

Thank you 1000-times Jsmack! This is great stuff.
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
7801 posts
Joined: Sept. 2011
Online
SWest
Oh yes! This is also the solution. Both methods work fine, however, this technique uses one less node so I'd expect it to be faster to render.

Thank you 1000-times Jsmack! This is great stuff.

setting on import is also my preference, but sometimes geo comes in already as USD, so it helps to know both ways.
  • Quick Links