关于使用WebGLRenderer
使用threejs自动调整纹理大小,我遇到了一个奇怪的问题。
我知道WebGL要求纹理*的大小为2的幂。
*-使用非LinearFilter的纹理,或没有将包裹作为钳位集的纹理
我的纹理的环绕设置为RepeatWrapping,纹理的sie为 65536 x 512 ,因此为 2 ^ 16 x 2 ^ 9
我假设纹理的大小正确。但是,控制台显示:
THREE.WebGLRenderer: Texture has been resized from (65536x512) to (16384x128)
缩小纹理的大小非常不好,因为在渲染纹理的质量上它非常明显。
我真的不知道我在做什么错。根据文档,一切设置正确。
是否可以防止缩小尺寸?
我认为这无济于事,但我还包含了加载纹理的代码
const texture = new TextureLoader().load(path);
texture.anisotropy = 2;
texture.magFilter = LinearFilter;
texture.minFilter = LinearFilter;
texture.wrapS = RepeatWrapping;
texture.wrapT = RepeatWrapping;
texture.repeat.set(1 / tilesAmountHorizontally, 1 / tilesAmountVertically);
答案 0 :(得分:0)
因此您可以找出设备支持的最大尺寸
var gl = document.getElementById(“ my-canvas”)。getContext( “ experimental-webgl”);警报(gl.getParameter(gl.MAX_TEXTURE_SIZE))
纹理可以分割并局部应用