WebGLCubeRenderTarget constructor

WebGLCubeRenderTarget(
  1. int size,
  2. dynamic options,
  3. dynamic dummy
)

Implementation

WebGLCubeRenderTarget(int size, options, dummy)
    : super(size, size, options) {
  isWebGLCubeRenderTarget = true;
  // By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)
  // in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,
  // in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.

  // three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped
  // and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture
  // as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).
  var image = ImageElement(width: size, height: size, depth: 1);
  var images = [image, image, image, image, image, image];

  options = options ?? WebGLRenderTargetOptions({});
  texture = CubeTexture(
      images,
      options.mapping,
      options.wrapS,
      options.wrapT,
      options.magFilter,
      options.minFilter,
      options.format,
      options.type,
      options.anisotropy,
      options.encoding);
  texture.isRenderTargetTexture = true;

  texture.generateMipmaps = options.generateMipmaps ?? false;
  texture.minFilter = options.minFilter ?? LinearFilter;
}