Ptex
|
Point-sampling filter for rectangular textures. More...
Public Member Functions | |
PtexPointFilter (PtexTexture *tx) | |
virtual void | release () |
Release resources held by this pointer (pointer becomes invalid). | |
virtual void | eval (float *result, int firstchan, int nchannels, int faceid, float u, float v, float, float, float, float, float, float) |
Apply filter to a ptex data file. | |
virtual void | release ()=0 |
Release resources held by this pointer (pointer becomes invalid). | |
virtual void | eval (float *result, int firstchan, int nchannels, int faceid, float u, float v, float uw1, float vw1, float uw2, float vw2, float width=1, float blur=0)=0 |
Apply filter to a ptex data file. | |
Private Attributes | |
PtexTexture * | _tx |
Additional Inherited Members | |
Public Types inherited from PtexFilter | |
enum | FilterType { f_point , f_bilinear , f_box , f_gaussian , f_bicubic , f_bspline , f_catmullrom , f_mitchell } |
Filter types. More... | |
Static Public Member Functions inherited from PtexFilter | |
static PtexFilter * | getFilter (PtexTexture *tx, const Options &opts) |
Protected Member Functions inherited from PtexFilter | |
virtual | ~PtexFilter () |
Destructor not for public use. Use release() instead. | |
Point-sampling filter for rectangular textures.
Definition at line 45 of file PtexFilters.cpp.
|
inline |
Definition at line 48 of file PtexFilters.cpp.
|
inlinevirtual |
Apply filter to a ptex data file.
The filter region is a parallelogram centered at the given (u,v) coordinate with sides defined by two vectors [uw1, vw1] and [uw2, vw2]. For an axis-aligned rectangle, the vectors are [uw, 0] and [0, vw]. See Filter Footprint for details.
result | Buffer to hold filter result. Must be large enough to hold nchannels worth of data. |
firstchan | First channel to evaluate [0..tx->numChannels()-1] |
nchannels | Number of channels to evaluate |
faceid | Face index [0..tx->numFaces()-1] |
u | U coordinate, normalized [0..1] |
v | V coordinate, normalized [0..1] |
uw1 | U filter width 1, normalized [0..1] |
vw1 | V filter width 1, normalized [0..1] |
uw2 | U filter width 2, normalized [0..1] |
vw2 | V filter width 2, normalized [0..1] |
width | scale factor for filter width |
blur | amount to add to filter width [0..1] |
Implements PtexFilter.
Definition at line 50 of file PtexFilters.cpp.
References _tx, PtexUtils::clamp(), PtexTexture::getFaceInfo(), PtexTexture::getPixel(), PtexTexture::numFaces(), Ptex::FaceInfo::res, and Ptex::Res::u().
|
inlinevirtual |
Release resources held by this pointer (pointer becomes invalid).
Implements PtexFilter.
Definition at line 49 of file PtexFilters.cpp.
|
private |
Definition at line 65 of file PtexFilters.cpp.
Referenced by eval().