如果有这样的对象:WebGLCubeRenderTarget
其构造函数为:
constructor(size?: number, options?: WebGLRenderTargetOptions);
在选项中,我需要指定编码:
export interface WebGLRenderTargetOptions {
wrapS?: Wrapping | undefined;
wrapT?: Wrapping | undefined;
encoding?: TextureEncoding | undefined;
编码为枚举:
export enum TextureEncoding {}
export const LinearEncoding: TextureEncoding;
export const sRGBEncoding: TextureEncoding;
传递sRGBEncoding的正确语法应该是什么?
这一条行不通:
const formatted = new THREE.WebGLCubeRenderTarget(texture.image.height, "sRGBEncoding")
编辑:完整代码
const Background = props => {
const texture = useLoader(THREE.TextureLoader, "/03milkyway.jpg")
const { gl } = useThree();
const formatted = new THREE.WebGLCubeRenderTarget(texture.image.height, "sRGBEncoding").fromEquirectangularTexture(gl, texture)
return (
<primitive attach='background' object={formatted} />
)
}
2条答案
按热度按时间bjg7j2ky1#
您必须传递一个对象作为第二个参数:
fivyi3re2#
WebGLCubeRenderTarget的第二个参数应该是一个对象,您传递给它的是一个字符串。
我相信从文档中可以看出,“encoding”选项的值也不应该是字符串;请参阅此处的“编码”部分。
因此,请尝试以下操作: