PfmVizzer
from panda3d.core import PfmVizzer
- class PfmVizzer
Bases:
This class aids in the visualization and manipulation of
PfmFileobjects.Inheritance diagram
-
enum ColumnType
-
enumerator CT_texcoord2 = 0
-
enumerator CT_texcoord3 = 1
-
enumerator CT_vertex1 = 2
-
enumerator CT_vertex2 = 3
-
enumerator CT_vertex3 = 4
-
enumerator CT_normal3 = 5
-
enumerator CT_blend1 = 6
-
enumerator CT_aux_vertex1 = 7
-
enumerator CT_aux_vertex2 = 8
-
enumerator CT_aux_vertex3 = 9
-
enumerator CT_texcoord2 = 0
- __init__(pfm: PfmFile)
The
PfmVizzerconstructor receives a reference to aPfmFilewhich it will operate on. It does not keep ownership of this reference; it is your responsibility to ensure thePfmFiledoes not destruct during the lifetime of thePfmVizzer.
- __init__(param0: PfmVizzer)
- addVisColumn(source: ColumnType, target: ColumnType, name: InternalName, transform: TransformState, lens: Lens, undist_lut: PfmFile)
Adds a new vis column specification to the list of vertex data columns that will be generated at the next call to
generateVisPoints()orgenerateVisMesh(). This advanced interface supercedes the higher-levelsetVisInverse(),setFlatTexcoordName(), andsetVis2d().If you use this advanced interface, you must specify explicitly the complete list of data columns to be created in the resulting
GeomVertexData, by callingaddVisColumn()each time. For each column, you specify the source of the column in the PFMFile, the target column and name in theGeomVertexData, and an optional transform matrix and/or lens to transform and project the point before generating it.
- calcMaxUDisplacement() float
Computes the maximum amount of shift, in pixels either left or right, of any pixel in the distortion map. This can be passed to
makeDisplacement(); see that function for more information.
- calcMaxVDisplacement() float
Computes the maximum amount of shift, in pixels either up or down, of any pixel in the distortion map. This can be passed to
makeDisplacement(); see that function for more information.
- clearFlatTexcoordName()
Resets the flat_texcoord_name to empty, so that additional texture coordinates are not created.
This may be used in lieu of the lower-level
addVisColumn().
- clearVisBlend()
Removes the blending map set by a prior call to
setVisBlend().
- clearVisColumns()
Removes all of the previously-added vis columns in preparation for building a new list. See
addVisColumn().
- extrude(lens: Lens)
Converts each (u, v, depth) point of the Pfm file to an (x, y, z) point, by reversing
project(). If the original file is only a 1-d file, assumes that it is a depth map with implicit (u, v) coordinates.This method is only valid for a linear lens (e.g. a
PerspectiveLensorOrthographicLens). Non-linear lenses don’t necessarily compute a sensible depth coordinate.
- generateVisMesh(face: MeshFace) NodePath
Creates a triangle mesh with the points of the pfm as 3-d coordinates in space, and texture coordinates ranging from 0 .. 1 based on the position within the pfm grid.
- generateVisPoints() NodePath
Creates a point cloud with the points of the pfm as 3-d coordinates in space, and texture coordinates ranging from 0 .. 1 based on the position within the pfm grid.
- getAuxPfm() PfmFile
Returns the reference to the auxiliary
PfmFilequeried by thisPfmVizzer. This contains the values that will be reflected in CT_aux_vertex3 etc. SeesetAuxPfm().
- getFlatTexcoordName() InternalName
Returns the flat_texcoord_name. See
setFlatTexcoordName().
- getKeepBeyondLens() bool
Returns the keep_beyond_lens flag. See
setKeepBeyondLens().
- getVis2d() bool
Returns the vis_2d flag. See
setVis2d().
- getVisBlend() PNMImage
Returns the blending map set by the most recent call to
setVisBlend(), or NULL if there is no blending map in effect.
- getVisInverse() bool
Returns the vis_inverse flag. See
setVisInverse().
- makeDisplacement(result: PNMImage, max_u: float, max_v: float, for_32bit: bool)
Assuming the underlying
PfmFileis a 2-d distortion mesh, with the U and V in the first two components and the third component unused, this computes an AfterEffects-style displacement map that represents the same distortion. The indicatedPNMImagewill be filled in with a displacement map image, with horizontal shift in the red channel and vertical shift in the green channel, where a fully bright (or fully black) pixel indicates a shift of max_u or max_v pixels.Use
calcMaxUDisplacement()andcalcMaxVDisplacement()to compute suitable values for max_u and max_v.This generates an integer 16-bit displacement image. It is a good idea, though not necessarily essential, to check “Preserve RGB” in the interpret footage section for each displacement image. Set for_32bit true if this is meant to be used in a 32-bit project file, and false if it is meant to be used in a 16-bit project file.
- makeDisplacement(result: PfmFile, max_u: float, max_v: float, for_32bit: bool)
Assuming the underlying
PfmFileis a 2-d distortion mesh, with the U and V in the first two components and the third component unused, this computes an AfterEffects-style displacement map that represents the same distortion. The indicatedPNMImagewill be filled in with a displacement map image, with horizontal shift in the red channel and vertical shift in the green channel, where a fully bright (or fully black) pixel indicates a shift of max_u or max_v pixels.Use
calcMaxUDisplacement()andcalcMaxVDisplacement()to compute suitable values for max_u and max_v.This generates a 32-bit floating-point displacement image. It is essential to check “Preserve RGB” in the interpret footage section for each displacement image. Set for_32bit true if this is meant to be used in a 32-bit project file, and false if it is meant to be used in a 16-bit project file.
- project(lens: Lens, undist_lut: PfmFile)
Adjusts each (x, y, z) point of the Pfm file by projecting it through the indicated lens, converting each point to a (u, v, w) texture coordinate. The resulting file can be generated to a mesh (with set_vis_inverse(true) and
generateVisMesh()) that will apply the lens distortion to an arbitrary texture image.
- setAuxPfm(pfm: PfmFile)
Assigns an auxiliary
PfmFileto thisPfmVizzer. This file will be queried by column types CT_aux_vertex1/2/3, but has no other meaning to the vizzer. This size of thisPfmFileshould exactly match the basePfmFile. No reference count is held and no copy is made; the caller is responsible for ensuring that the auxiliaryPfmFilewill persist throughout the lifetime of thePfmVizzerit is assigned to.
- setFlatTexcoordName(flat_texcoord_name: InternalName)
If the flat_texcoord_name is specified, it is the name of an additional vertex column that will be created for the “flat” texture coordinates, i.e. the original 0..1 values that correspond to the 2-D index position of each point in the original pfm file.
These are the same values that will be assigned to the default texture coordinates if the vis_inverse flag is not true.
This may be used in lieu of the lower-level
addVisColumn().
- setKeepBeyondLens(keep_beyond_lens: bool)
Sets the keep_beyond_lens flag. When this flag is true, points that fall outside of the normal lens range in
project()or inaddVisColumn()will be retained anyway; when it is false, these points will be discarded.
- setVis2d(vis_2d: bool)
Sets the vis_2d flag. When this flag is true, only the first two (x, y) value of each depth point is considered meaningful; the z component is ignored. This is only relevant for generating visualizations.
This may be used in lieu of the lower-level
addVisColumn().
- setVisBlend(vis_blend: PNMImage)
Specifies a blending map–a grayscale image–that will be applied to the vertex color during
generateVisMesh()andgenerateVisPoints(). The image size must exactly match the mesh size of thePfmVizzer.Ownership of the pointer is not kept by the
PfmVizzer; it is your responsibility to ensure it does not destruct during the lifetime of thePfmVizzer(or at least not before your subsequent call togenerateVisMesh()).
- setVisInverse(vis_inverse: bool)
Sets the vis_inverse flag. When this flag is true, vis meshes and point clouds are generated with the 3-d depth value in the texture coordinates, and the 2-d index value in the vertex position. When it is false, meshes are generated normally, with the 3-d depth value in the vertex position and the 2-d index value in the texture coordinates.
This may be used in lieu of the lower-level
addVisColumn().
-
enum ColumnType
