54std::unique_ptr<GlLookUpTable3D> 
GlLookUpTable3D::create(
const std::function<QVector3D(
size_t x, 
size_t y, 
size_t z)> &mapping, 
size_t xSize, 
size_t ySize, 
size_t zSize)
 
   61    glBindTexture(GL_TEXTURE_3D, 
handle);
 
   62    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAX_LEVEL, 0);
 
   63    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_LOD, 0);
 
   64    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAX_LOD, 0);
 
   65    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 
   66    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 
   67    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
 
   68    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
 
   69    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
 
   72    for (
size_t z = 0; z < 
zSize; z++) {
 
   73        for (
size_t y = 0; y < 
ySize; y++) {
 
   74            for (
size_t x = 0; x < 
xSize; x++) {
 
   75                const auto color = mapping(x, y, z);
 
   76                data.push_back(color.x());
 
   77                data.push_back(color.y());
 
   78                data.push_back(color.z());
 
   83    glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA16F, 
xSize, 
ySize, 
zSize, 0, GL_RGBA, GL_FLOAT, data.data());
 
   84    glBindTexture(GL_TEXTURE_3D, 0);
 
 
static std::unique_ptr< GlLookUpTable3D > create(const std::function< QVector3D(size_t x, size_t y, size_t z)> &mapping, size_t xSize, size_t ySize, size_t zSize)