|
| void | Initialize (FImageDimensions DimensionsIn, int32 SamplesPerPixel=1) |
| |
| void | Initialize (FImageDimensions DimensionsIn, const FImageTile &TileIn, int32 SamplesPerPixel=1) |
| |
| bool | IsInterior (int64 LinearIndex) const |
| |
| int32 | TexelNumSamples (int64 LinearIndex) const |
| |
| template<typename MeshType , typename GetTriangleIDFuncType > |
| bool | ClassifySamplesFromUVSpaceMesh (const MeshType &UVSpaceMesh, GetTriangleIDFuncType GetTriangleIDFunc=[](int32 TriangleID) { return TriangleID;}, const TArray< int32 > *UVSpaceMeshTriCharts=nullptr) |
| |
| template<typename MeshType , typename GetTriangleIDFuncType > |
| bool | ClassifySamplesFromUVSpaceMesh (const MeshType &UVSpaceMesh, const TMeshAABBTree3< MeshType > &UVSpaceMeshSpatial, GetTriangleIDFuncType GetTriangleIDFunc=[](int32 TriangleID) { return TriangleID;}, const TArray< int32 > *UVSpaceMeshTriCharts=nullptr) |
| |
| bool | ComputeGutterTexelsFromGutterSamples () |
| |
| template<typename MeshType , typename GetTriangleIDFuncType > |
| bool | ComputeFromUVSpaceMesh (const MeshType &UVSpaceMesh, GetTriangleIDFuncType GetTriangleIDFunc=[](int32 TriangleID) { return TriangleID;}, const TArray< int32 > *UVSpaceMeshTriCharts=nullptr) |
| |
| template<typename TexelValueType > |
| void | ParallelProcessingPass (TFunctionRef< TexelValueType(int64 LinearIdx)> BeginTexel, TFunctionRef< void(int64 LinearIdx, float Weight, TexelValueType &)> AccumulateTexel, TFunctionRef< void(int64 LinearIdx, float Weight, TexelValueType &)> CompleteTexel, TFunctionRef< void(int64 LinearIdx, TexelValueType &)> WriteTexel, TFunctionRef< float(const FVector2i &TexelOffset)> WeightFunction, int32 FilterWidth, TArray< TexelValueType > &PassBuffer) const |
| |
ImageOccupancyMap calculates and stores coverage information for a 2D image/texture, for example coverage derived from UV islands of a mesh, 2D polygons, etc.
An optional set of gutter texels can be calculated, and correspondence between gutter texels and the nearest interior texel is stored.
In addition, a 2D coordinate (eg UV) and integer ID (eg Triangle ID) of each texel can be calculated/stored. This is not just a cache. For 'border' texels where the texel center is technically outside the mesh/polygon, but the texel rectangle may still overlap the shape, the nearest UV/Triangle is stored. This simplifies computing samples around the borders such that the shape is covered under linear interpolatione/etc.
TODO Some of the names in this class are misleading because the name mentions "Texel" but should actually say "Sample" this is because the class initially supported only one sample per texel but later multi-sampling was added