Render Pick DAT
The Render Pick DAT allows you to do multi-touch on a 3D rendered scene. It samples a rendering (from a Render TOP or a Render Pass TOP) and returns 3D information from the geometry at the specified pick locations.
You feed it a DAT with minimum 3 columns:
v, with row 1+ being what you would get from a Panel CHOP's
A pick location is a uv coordinate specified in a Table DAT that you connect to the Render Pick DAT input. Each row of the input table represents one pick point to be sampled, except for the first row which contains column headings
v (plus any other unused columns you want). When
select > 0, that uv location is sampled and the results are displayed in the corresponding row in the Render Pick DAT output.
The uv value goes 0 to 1 left to right and bottom to top, no matter what the aspect ratio of the render is.
The output table will show the path of the geometry that was picked, its position (in a choice of reference frames), surface normal (excluding bump mapping), distance from camera, texture UV coordinate, color, alpha and instance id. It properly picks surfaces with deforming vertices.
There are some examples here:
See also the single-sample Render Pick CHOP.
Parameters - Render Pick Page
/strategy - Decides when to update values based on pick interactions.
- Continuous - Continuously updates values when being picked.
- Hold First Picked - Holds the values first returned when geometry picked.
- Hold Last Picked - Holds the values last returned when geometry picked. This differs from the Continuous strategy in that it will hold the last values picked on geometry if the pick starts sampling empty space (no geometry in that part of the scene). Alternatively, using the Continuous strategy the values will be cleared to zero if the pick starts sampling empty space.
Clear Previous Pick When Starting New Pick
/clearprev - This parameter is only enabled when the Strategy is set to Hold Last Picked. When this is on, starting a new pick on empty space will clear the values. When off, the last values will be held if the pick starts on empty space.
/responsetime - Determines when the values are updated.
- Next Cook (Faster) - The values are captured on the current frame and updated next frame. Results are from the previous frame, but much faster cook times.
- This Cook (Slower) - The values are captured and updated in the current frame.
/pickradius - Controls the radius of the search area for the pick. If nothing is found at the pick's center it will keep searching for geometry in the search area defined by the Pick Radius.
Pick Radial Step
/pickradstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'spokes' outwards from the center pick point.
Pick Circular Step
/pickcirstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'rings' outwards from the center pick point.
Render/Render Pass TOP
/rendertop - Specifies which render to sample.
Include Non-Pickable Objects
/includenonpick - Includes the non-pickable objects in the picking algorithm such that non-pickable objects may occlude pickable objects. For example, if there is only one pickable object in the scene with lots of additional non-pickable geometry is present, turning this parameter on will prevent the pickable object from being selected if it is behind a non-pickage object (occluded by the non-pickage object).
Merge Input DAT
/mergeinputdat - Appends input table to the Render Pick DATs columns.
Parameters - Options Page
/position - Returns the position of the point picked on the geometry. Channels tx, ty, tz.
- No - Do not return position values.
- In SOP Space - Return position of point picked in SOP transform space.
- In World Space - Return position of point picked in world transform space.
- In Camera Space - Return position of point picked in camera transform space.
- Relative to Object - Return position of point picked relative to object specified in Reference Object parameter.
/normal - Returns the normals of the point picked on the geometry. Channels nx, ny, nz.
- No - Do not return normal values.
- In SOP Space - Return normals of point picked in SOP transform space.
- In World Space - Return normals of point picked in world transform space.
- In Camera Space - Return normals of point picked in camera transform space.
- Relative to Object - Return normals of point picked relative to object specified in Reference Object parameter.
/referenceobj - Object used when fetching position or normals Relative to Object.
Fetch Point Color
/color - Returns the point color of the point picked on the geometry. Channels cr, cg, cb, ca.
/texture - Returns the texture coordinates of the point picked on the geometry. Channels mapu, mapv, mapw.
/depth - Returns the depth of the point picked on the geometry. This value a non-linear ratio of the point's position between the near and far planes of the Depth Buffer. Channel is depth.
Fetch Instance ID
/instanceid - Returns the Instance ID of the object. This will always be 0 if instancing is off. Channel is instanceid.