com.jme3.texture.Image.getColorSpace()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(10.1k)|赞(0)|评价(0)|浏览(91)

本文整理了Java中com.jme3.texture.Image.getColorSpace()方法的一些代码示例,展示了Image.getColorSpace()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Image.getColorSpace()方法的具体详情如下:
包路径:com.jme3.texture.Image
类名称:Image
方法名:getColorSpace

Image.getColorSpace介绍

[英]Specifies that this image is an SRGB image and therefore must undergo an sRGB -> linear RGB color conversion prior to being read by a shader and with the Renderer#setLinearizeSrgbImages(boolean) option is enabled. This option is only supported for the 8-bit color and grayscale image formats. Determines if the image is in SRGB color space or not.
[中]指定此图像是SRGB图像,因此在被着色器读取之前必须进行SRGB->linear RGB颜色转换,并启用渲染器#setLinearizeSrgbImages(布尔)选项。此选项仅适用于8位彩色和灰度图像格式。确定图像是否在SRGB颜色空间中。

代码示例

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

boolean getSrgbFormat = image.getColorSpace() == ColorSpace.sRGB && linearizeSrgb;
GLImageFormat oglFormat = getImageFormatWithError(jmeFormat, getSrgbFormat);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

int height = images.get(0).getHeight();
Format format = images.get(0).getFormat();
ColorSpace colorSpace = images.get(0).getColorSpace();
int[] mipMapSizes = images.get(0).getMipMapSizes();
Image arrayImage = new Image(format, width, height, null, colorSpace);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

private void checkTextureParamColorSpace(String name, Texture value) {
  MatParamTexture paramDef = (MatParamTexture) def.getMaterialParam(name);
  if (paramDef.getColorSpace() != null && paramDef.getColorSpace() != value.getImage().getColorSpace()) {
    value.getImage().setColorSpace(paramDef.getColorSpace());
    logger.log(Level.FINE, "Material parameter {0} needs a {1} texture, "
            + "texture {2} was switched to {3} color space.",
        new Object[]{name, paramDef.getColorSpace().toString(),
            value.getName(),
            value.getImage().getColorSpace().name()});
  } else if (paramDef.getColorSpace() == null && value.getName() != null && value.getImage().getColorSpace() == ColorSpace.Linear) {
    logger.log(Level.WARNING,
        "The texture {0} has linear color space, but the material "
            + "parameter {2} specifies no color space requirement, this may "
            + "lead to unexpected behavior.\nCheck if the image "
            + "was not set to another material parameter with a linear "
            + "color space, or that you did not set the ColorSpace to "
            + "Linear using texture.getImage.setColorSpace().",
        new Object[]{value.getName(), value.getImage().getColorSpace().name(), name});
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

this.convertToLinear = convertToLinear && image.getColorSpace() == ColorSpace.sRGB;

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

boolean linearizeSrgb) {
boolean getSrgbFormat = image.getColorSpace() == ColorSpace.sRGB && linearizeSrgb;
Image.Format jmeFormat = image.getFormat();
GLImageFormat oglFormat = getImageFormatWithError(jmeFormat, getSrgbFormat);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

private Image convertImage(Image image, Format newFormat) {
  int width = image.getWidth();
  int height = image.getHeight();
  ByteBuffer data = BufferUtils.createByteBuffer( (int)Math.ceil(newFormat.getBitsPerPixel() / 8.0) * width * height);
  Image convertedImage = new Image(newFormat, width, height, data,null, image.getColorSpace());
  
  ImageRaster sourceReader = ImageRaster.create(image);
  ImageRaster targetWriter = ImageRaster.create(convertedImage);
  for (int x = 0; x < width; x++) {
    for (int y = 0; y < height; y++) {
      ColorRGBA color = sourceReader.getPixel(x, y);
      targetWriter.setPixel(x, y, color);
    }
  }
  
  return convertedImage;
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

GL gl = GLContext.getCurrentGL();
Image.Format fmt = image.getFormat();
GLImageFormat glFmt = getImageFormatWithError(fmt, image.getColorSpace() == ColorSpace.sRGB  && linearizeSrgb);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

logger.severe("          Image depth: "+leftEyeTexture.getImage().getDepth());
logger.severe("         Image format: "+leftEyeTexture.getImage().getFormat());
logger.severe("    Image color space: "+leftEyeTexture.getImage().getColorSpace());
logger.severe("          Image depth: "+rightEyeTexture.getImage().getDepth());
logger.severe("         Image format: "+rightEyeTexture.getImage().getFormat());
logger.severe("    Image color space: "+rightEyeTexture.getImage().getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

logger.config("        Image depth: "+dualEyeTex.getImage().getDepth());
logger.config("       Image format: "+dualEyeTex.getImage().getFormat());
logger.config("  Image color space: "+dualEyeTex.getImage().getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

logger.config("        Image depth: "+dualEyeTex.getImage().getDepth());
logger.config("       Image format: "+dualEyeTex.getImage().getFormat());
logger.config("  Image color space: "+dualEyeTex.getImage().getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

private void setupFinalFullTexture(Camera cam) {
  if (environment != null) {
    if (environment.getApplication() != null) {
      // create offscreen framebuffer
      FrameBuffer out = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1);
      //offBuffer.setSrgb(true);
      //setup framebuffer's texture
      dualEyeTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8);
      dualEyeTex.setMinFilter(Texture2D.MinFilter.BilinearNoMipMaps);
      dualEyeTex.setMagFilter(Texture2D.MagFilter.Bilinear);
      logger.config("Dual eye texture " + dualEyeTex.getName() + " (" + dualEyeTex.getImage().getId() + ")");
      logger.config("               Type: " + dualEyeTex.getType());
      logger.config("               Size: " + dualEyeTex.getImage().getWidth() + "x" + dualEyeTex.getImage().getHeight());
      logger.config("        Image depth: " + dualEyeTex.getImage().getDepth());
      logger.config("       Image format: " + dualEyeTex.getImage().getFormat());
      logger.config("  Image color space: " + dualEyeTex.getImage().getColorSpace());
      //setup framebuffer to use texture
      out.setDepthBuffer(Image.Format.Depth);
      out.setColorTexture(dualEyeTex);
      ViewPort viewPort = environment.getApplication().getViewPort();
      viewPort.setClearFlags(true, true, true);
      viewPort.setBackgroundColor(ColorRGBA.Black);
      viewPort.setOutputFrameBuffer(out);
    } else {
      throw new IllegalStateException("This VR environment is not attached to any application.");
    }
  } else {
    throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

logger.severe("          Image depth: "+leftEyeTexture.getImage().getDepth());
logger.severe("         Image format: "+leftEyeTexture.getImage().getFormat());
logger.severe("    Image color space: "+leftEyeTexture.getImage().getColorSpace());
logger.severe("          Image depth: "+rightEyeTexture.getImage().getDepth());
logger.severe("         Image format: "+rightEyeTexture.getImage().getFormat());
logger.severe("    Image color space: "+rightEyeTexture.getImage().getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

logger.severe("          Image depth: " + leftEyeTexture.getImage().getDepth());
logger.severe("         Image format: " + leftEyeTexture.getImage().getFormat());
logger.severe("    Image color space: " + leftEyeTexture.getImage().getColorSpace());
logger.severe("          Image depth: " + rightEyeTexture.getImage().getDepth());
logger.severe("         Image format: " + rightEyeTexture.getImage().getFormat());
logger.severe("    Image color space: " + rightEyeTexture.getImage().getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

GL gl = GLContext.getCurrentGL();
Image.Format fmt = image.getFormat();
GLImageFormat glFmt = getImageFormatWithError(fmt, image.getColorSpace() == ColorSpace.sRGB  && linearizeSrgb);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

/**
 * Make a duplicate of this cube Map. That means that it's another instant
 * od TextureCubeMap, but the underlying buffers are duplicates of the
 * original ones. see {@link ByteBuffer#duplicate()}
 *
 * Use this if you need to read from the map from multiple threads, it
 * should garanty the thread safety. Note that if you want to write to the
 * cube map you have to make sure that the different thread do not write to
 * the same area of the buffer. The position, limit and mark are not an
 * issue.
 *
 * @param sourceMap
 * @return
 */
public static TextureCubeMap duplicateCubeMap(TextureCubeMap sourceMap) {
  Image srcImg = sourceMap.getImage();
  Image cubeImage = new Image(srcImg.getFormat(), srcImg.getWidth(), srcImg.getHeight(), null, srcImg.getColorSpace());
  for (ByteBuffer d : srcImg.getData()) {
    cubeImage.addData(d.duplicate());
  }
  cubeImage.setMipMapSizes(srcImg.getMipMapSizes());
  TextureCubeMap cubeMap = new TextureCubeMap(cubeImage);
  cubeMap.setAnisotropicFilter(sourceMap.getAnisotropicFilter());
  cubeMap.setMagFilter(sourceMap.getMagFilter());
  cubeMap.setMinFilter(sourceMap.getMinFilter());
  cubeMap.setWrap(sourceMap.getWrap(Texture.WrapAxis.S));
  return cubeMap;
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

Texture2D tex = new Texture2D(new Image(cubeMap.getImage().getFormat(), size, size, data, cubeMap.getImage().getColorSpace()));

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

outputHeight, 
buffer, 
inputImage.getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

Image cubeImage = new Image(westImg.getFormat(), westImg.getWidth(), westImg.getHeight(), null, westImg.getColorSpace());

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

Texture2D tex = new Texture2D(new Image(cubeMap.getImage().getFormat(), size, size, cubeMap.getImage().getData(i), cubeMap.getImage().getColorSpace()));

代码示例来源:origin: org.jmonkeyengine/jme3-core

private void checkTextureParamColorSpace(String name, Texture value) {
  MatParamTexture paramDef = (MatParamTexture) def.getMaterialParam(name);
  if (paramDef.getColorSpace() != null && paramDef.getColorSpace() != value.getImage().getColorSpace()) {
    value.getImage().setColorSpace(paramDef.getColorSpace());
    logger.log(Level.FINE, "Material parameter {0} needs a {1} texture, "
            + "texture {2} was switched to {3} color space.",
        new Object[]{name, paramDef.getColorSpace().toString(),
            value.getName(),
            value.getImage().getColorSpace().name()});
  } else if (paramDef.getColorSpace() == null && value.getName() != null && value.getImage().getColorSpace() == ColorSpace.Linear) {
    logger.log(Level.WARNING,
        "The texture {0} has linear color space, but the material "
            + "parameter {2} specifies no color space requirement, this may "
            + "lead to unexpected behavior.\nCheck if the image "
            + "was not set to another material parameter with a linear "
            + "color space, or that you did not set the ColorSpace to "
            + "Linear using texture.getImage.setColorSpace().",
        new Object[]{value.getName(), value.getImage().getColorSpace().name(), name});
  }
}

相关文章