SLProject
4.2.000
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
|
SLTexColorLUT defines a lookup table as an 1D texture of (256) RGBA values. More...
#include <SLTexColorLUT.h>
Public Member Functions | |
SLTexColorLUT (SLAssetManager *assetMgr, SLColorLUTType lutType, SLuint length=256) | |
Default ctor color LUT of a specific SLColorLUTType. More... | |
SLTexColorLUT (SLAssetManager *assetMgr, SLVAlphaLUTPoint alphaVec, SLColorLUTType lutType=CLUT_RYGCB, SLuint length=256) | |
ctor with vector of alpha values and a predefined color LUT scheme More... | |
SLTexColorLUT (SLAssetManager *assetMgr, SLVAlphaLUTPoint alphaValues, SLVColorLUTPoint colorValues, SLuint length=256) | |
ctor with vector of alpha and color values More... | |
virtual | ~SLTexColorLUT () |
void | generateTexture () |
Generates the full 256 value LUT as 1x256 RGBA texture. More... | |
void | colors (SLColorLUTType lut) |
Colors setter function by predefined color LUT. More... | |
SLuint | length () |
SLVColorLUTPoint & | colors () |
SLVAlphaLUTPoint & | alphas () |
SLVfloat | allAlphas () |
Returns all alpha values of the transfer function as a float vector. More... | |
SLVCol3f | allColors () |
Returns all alpha values of the transfer function as a float vector. More... | |
Public Member Functions inherited from SLGLTexture | |
SLGLTexture () | |
Default ctor for all stack instances (not created with new) More... | |
SLGLTexture (SLAssetManager *assetMgr, const SLVCol4f &colors, SLint min_filter=GL_LINEAR, SLint mag_filter=GL_LINEAR, SLint wrapS=GL_REPEAT, const SLstring &name="2D-Texture") | |
ctor for 1D texture with internal image allocation More... | |
SLGLTexture (SLAssetManager *assetMgr, SLint min_filter, SLint mag_filter, SLint wrapS, SLint wrapT, SLenum target=GL_TEXTURE_2D) | |
ctor for empty 2D textures More... | |
SLGLTexture (SLAssetManager *assetMgr, unsigned char *data, int width, int height, int cvtype, SLint min_filter, SLint mag_filter, SLTextureType type, SLint wrapS, SLint wrapT) | |
ctor for 2D textures from byte pointer More... | |
SLGLTexture (SLAssetManager *assetMgr, const SLstring &imageFilename, SLint min_filter=GL_LINEAR_MIPMAP_LINEAR, SLint mag_filter=GL_LINEAR, SLTextureType type=TT_unknown, SLint wrapS=GL_REPEAT, SLint wrapT=GL_REPEAT) | |
ctor for 2D textures with internal image allocation More... | |
SLGLTexture (SLAssetManager *assetMgr, const SLVstring &imageFilenames, SLint min_filter=GL_LINEAR, SLint mag_filter=GL_LINEAR, SLint wrapS=GL_REPEAT, SLint wrapT=GL_REPEAT, const SLstring &name="3D-Texture", SLbool loadGrayscaleIntoAlpha=false) | |
ctor for 3D texture with internal image allocation More... | |
SLGLTexture (SLAssetManager *assetMgr, SLint depth, const SLstring &imageFilename, SLint min_filter=GL_LINEAR, SLint mag_filter=GL_LINEAR, SLint wrapS=GL_REPEAT, SLint wrapT=GL_REPEAT, const SLstring &name="3D-Texture", SLbool loadGrayscaleIntoAlpha=false) | |
ctor for 3D texture from a single file with depth as 3rd dimension More... | |
SLGLTexture (SLAssetManager *assetMgr, const SLstring &imageFilenameXPos, const SLstring &imageFilenameXNeg, const SLstring &imageFilenameYPos, const SLstring &imageFilenameYNeg, const SLstring &imageFilenameZPos, const SLstring &imageFilenameZNeg, SLint min_filter=GL_LINEAR, SLint mag_filter=GL_LINEAR, SLTextureType type=TT_unknown) | |
ctor for cube mapping with internal image allocation More... | |
~SLGLTexture () override | |
virtual void | build (SLint texUnit) |
void | deleteData (SLbool deleteAlsoOnGPU) |
Delete all data (CVImages and GPU textures) More... | |
void | deleteDataGpu () |
Deletes the OpenGL texture objects and releases the memory on the GPU. More... | |
void | deleteImages () |
Deletes the CVImages in _images. No more texture mapping in ray tracing. More... | |
void | bindActive (SLuint texUnit=0) |
void | fullUpdate () |
void | drawSprite (SLbool doUpdate, SLfloat x, SLfloat y, SLfloat w, SLfloat h) |
Draws the texture as 2D sprite with OpenGL buffers. More... | |
void | cubeUV2XYZ (SLint index, SLfloat u, SLfloat v, SLfloat &x, SLfloat &y, SLfloat &z) |
Computes the unnormalised vector x,y,z from tex. coords. uv with cubemap index. More... | |
void | cubeXYZ2UV (SLfloat x, SLfloat y, SLfloat z, SLint &index, SLfloat &u, SLfloat &v) |
Computes the uv and cubemap image index from a unnormalised vector x,y,z. More... | |
SLstring | filterString (SLint glFilter) |
Returns OpenGL texture filter as string. More... | |
void | texType (SLTextureType bt) |
void | uvIndex (SLbyte i) |
void | bumpScale (SLfloat bs) |
void | minFiler (SLint minF) |
void | magFiler (SLint magF) |
void | needsUpdate (SLbool update) |
void | textureSize (int width, int height) |
void | deleteImageAfterBuild (SLbool delImg) |
If deleteImageAfterBuild is set to true you won't be able to ray trace the scene. More... | |
SLuint | width () |
SLuint | height () |
SLuint | depth () |
SLbyte | uvIndex () |
SLint | bytesPerPixel () |
SLint | bytesOnGPU () |
SLint | bytesInFile () |
CVVImage & | images () |
SLenum | target () const |
SLuint | texID () const |
SLTextureType | texType () |
SLfloat | bumpScale () const |
SLCol4f | getTexelf (SLfloat u, SLfloat v, SLuint imgIndex=0) |
SLGLTexture::getTexelf returns a pixel color from u & v texture coordinates. More... | |
SLCol4f | getTexelf (const SLVec3f &cubemapDir) |
SLGLTexture::getTexelf returns a pixel color at the specified cubemap direction. More... | |
SLbool | hasAlpha () |
SLMat4f | tm () |
SLbool | autoCalcTM3D () const |
SLbool | needsUpdate () |
SLstring | typeName () |
Returns the texture type as string. More... | |
SLstring | typeShortName () |
Returns the texture type short. More... | |
bool | isTexture () |
SLstring | minificationFilterName () |
SLstring | magnificationFilterName () |
void | build2DMipmaps (SLint target, SLuint index) |
SLbool | copyVideoImage (SLint camWidth, SLint camHeight, CVPixelFormatGL glFormat, SLuchar *data, SLbool isContinuous, SLbool isTopLeft) |
Copies the image data from a video camera into the current video image. More... | |
SLbool | copyVideoImage (SLint camWidth, SLint camHeight, CVPixelFormatGL srcFormat, CVPixelFormatGL dstFormat, SLuchar *data, SLbool isContinuous, SLbool isTopLeft) |
void | calc3DGradients (SLint sampleRadius, const function< void(int)> &onUpdateProgress=nullptr) |
void | smooth3DGradients (SLint smoothRadius, function< void(int)> onUpdateProgress=nullptr) |
SLVec2f | dudv (SLfloat u, SLfloat v) |
Public Member Functions inherited from SLObject | |
SLObject (const SLstring &Name="", const SLstring &url="") | |
virtual | ~SLObject () |
void | name (const SLstring &Name) |
void | url (const SLstring &url) |
const SLstring & | name () const |
const SLstring & | url () const |
Public Member Functions inherited from SLEventHandler | |
SLEventHandler () | |
virtual | ~SLEventHandler () |
virtual SLbool | onMouseDown (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onMouseUp (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onMouseMove (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onDoubleClick (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onMouseWheel (const SLint delta, const SLKey mod) |
virtual SLbool | onTouch2Down (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
virtual SLbool | onTouch2Move (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
virtual SLbool | onTouch2Up (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
virtual SLbool | onTouch3Down (const SLint x1, const SLint y1) |
virtual SLbool | onTouch3Move (const SLint x1, const SLint y1) |
virtual SLbool | onTouch3Up (const SLint x1, const SLint y1) |
virtual SLbool | onKeyPress (const SLKey key, const SLKey mod) |
virtual SLbool | onKeyRelease (const SLKey key, const SLKey mod) |
virtual SLbool | onRotationPYR (const SLfloat pitchRAD, const SLfloat yawRAD, const SLfloat rollRAD) |
void | mouseRotationFactor (SLfloat rf) |
SLfloat | mouseRotationFactor () |
Protected Attributes | |
SLuint | _length |
SLColorLUTType | _colorLUT |
Length of transfer function (default 256) More... | |
SLVColorLUTPoint | _colors |
Color LUT identifier. More... | |
SLVAlphaLUTPoint | _alphas |
vector of colors in TF More... | |
Protected Attributes inherited from SLGLTexture | |
CVVImage | _images |
Vector of CVImage pointers. More... | |
SLuint | _texID |
OpenGL texture ID. More... | |
SLTextureType | _texType |
See SLTextureType. More... | |
SLint | _width |
Texture image width in pixels (images exist either in _images or on the GPU or on both) More... | |
SLint | _height |
Texture image height in pixels (images exist either in _images or on the GPU or on both) More... | |
SLint | _depth |
3D Texture image depth (images exist either in _images or on the GPU or on both) More... | |
SLbyte | _uvIndex |
Texture coordinate index in SLMesh (0 = default) More... | |
SLint | _internalFormat |
Internal OpenGL format. More... | |
SLint | _bytesPerPixel |
Bytes per texture image pixel (images exist either in _images or on the GPU or on both) More... | |
SLint | _min_filter |
Minification filter. More... | |
SLint | _mag_filter |
Magnification filter. More... | |
SLint | _wrap_s |
Wrapping in s direction. More... | |
SLint | _wrap_t |
Wrapping in t direction. More... | |
SLenum | _target |
texture target More... | |
SLMat4f | _tm |
texture matrix More... | |
SLuint | _bytesOnGPU |
NO. of bytes on GPU. More... | |
SLuint | _bytesInFile |
NO. of bytes in file. More... | |
SLbool | _autoCalcTM3D |
Flag if texture matrix should be calculated from AABB for 3D mapping. More... | |
SLfloat | _bumpScale |
Bump mapping scale factor. More... | |
SLbool | _resizeToPow2 |
Flag if image should be resized to n^2. More... | |
SLGLVertexArray | _vaoSprite |
Vertex array object for sprite rendering. More... | |
std::atomic< bool > | _needsUpdate {} |
Flag if image needs an single update. More... | |
std::mutex | _mutex |
Mutex to protect parallel access (used in ray tracing) More... | |
SLbool | _deleteImageAfterBuild |
Flag if images should be deleted after build on GPU. More... | |
SLbool | _compressedTexture = false |
True for compressed texture format on GPU. More... | |
Protected Attributes inherited from SLObject | |
SLstring | _name |
name of an object More... | |
SLstring | _url |
uniform resource locator More... | |
Protected Attributes inherited from SLEventHandler | |
SLfloat | _mouseRotationFactor |
Mouse rotation sensibility. More... | |
SLfloat | _keyboardDeltaPos |
Delta dist. for keyboard translation. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from SLGLTexture | |
static SLTextureType | detectType (const SLstring &filename) |
Detects the texture type from the filename appendix (See SLTexType def.) More... | |
static string | internalFormatStr (int internalFormat) |
Returns the internal pixel format from OpenGL. More... | |
Static Public Attributes inherited from SLGLTexture | |
static SLfloat | maxAnisotropy = -1.0f |
Returns the derivation as [s,t]. More... | |
static SLuint | totalNumBytesOnGPU = 0 |
Total NO. of bytes used for textures on GPU. More... | |
Protected Member Functions inherited from SLGLTexture | |
void | load (const SLstring &filename, SLbool flipVertical=true, SLbool loadGrayscaleIntoAlpha=false) |
Loads the texture, converts color depth & applies vertical mirroring. More... | |
void | load (const SLVCol4f &colors) |
Loads the 1D color data into an image of height 1. More... | |
SLTexColorLUT defines a lookup table as an 1D texture of (256) RGBA values.
SLTexColorLUT defines an RGBA color lookup table (LUT). It can be used to define a transfer function that are generated from a set of color and alpha points where all in-between points are linearly interpolated. Such a color/alpha lookup table is used as a transfer function e.g. in volume rendering (see the shader VolumeRenderingRayCast). All values (RGB color, alpha and position) are values between 0-1 and are mapped to 0-255 when the texture image of size 1x256 is generated.
Definition at line 68 of file SLTexColorLUT.h.
SLTexColorLUT::SLTexColorLUT | ( | SLAssetManager * | assetMgr, |
SLColorLUTType | lutType, | ||
SLuint | length = 256 |
||
) |
Default ctor color LUT of a specific SLColorLUTType.
Definition at line 16 of file SLTexColorLUT.cpp.
SLTexColorLUT::SLTexColorLUT | ( | SLAssetManager * | assetMgr, |
SLVAlphaLUTPoint | alphaVec, | ||
SLColorLUTType | lutType = CLUT_RYGCB , |
||
SLuint | length = 256 |
||
) |
ctor with vector of alpha values and a predefined color LUT scheme
Definition at line 38 of file SLTexColorLUT.cpp.
SLTexColorLUT::SLTexColorLUT | ( | SLAssetManager * | assetMgr, |
SLVAlphaLUTPoint | alphaValues, | ||
SLVColorLUTPoint | colorValues, | ||
SLuint | length = 256 |
||
) |
ctor with vector of alpha and color values
Definition at line 64 of file SLTexColorLUT.cpp.
|
virtual |
Definition at line 90 of file SLTexColorLUT.cpp.
SLVfloat SLTexColorLUT::allAlphas | ( | ) |
Returns all alpha values of the transfer function as a float vector.
Definition at line 315 of file SLTexColorLUT.cpp.
SLVCol3f SLTexColorLUT::allColors | ( | ) |
Returns all alpha values of the transfer function as a float vector.
Definition at line 330 of file SLTexColorLUT.cpp.
|
inline |
Definition at line 95 of file SLTexColorLUT.h.
|
inline |
Definition at line 94 of file SLTexColorLUT.h.
void SLTexColorLUT::colors | ( | SLColorLUTType | lut | ) |
Colors setter function by predefined color LUT.
Definition at line 97 of file SLTexColorLUT.cpp.
void SLTexColorLUT::generateTexture | ( | ) |
Generates the full 256 value LUT as 1x256 RGBA texture.
Definition at line 190 of file SLTexColorLUT.cpp.
|
inline |
Definition at line 93 of file SLTexColorLUT.h.
|
protected |
vector of colors in TF
Definition at line 103 of file SLTexColorLUT.h.
|
protected |
Length of transfer function (default 256)
Definition at line 101 of file SLTexColorLUT.h.
|
protected |
Color LUT identifier.
Definition at line 102 of file SLTexColorLUT.h.
|
protected |
Definition at line 100 of file SLTexColorLUT.h.