为什么 WebGL 的MAX_TEXTURE_SIZE属性限制图像的最大尺寸而不是其原始大小(以像素为单位)?
var canvas = document.getElementById("webgl-canvas")
gl = canvas.getContext("experimental-webgl");
var maxTextureSize = gl.getParameter( gl.MAX_TEXTURE_SIZE );
console.log("Max texture size: ", maxTextureSize)
<canvas id="webgl-canvas" width="1" height="1"></canvas>
因此,当MAX_TEXTURE_SIZE为N时,这意味着可能的最大纹理是均匀的(宽度 = N和高度 = N)。为什么不能使用像素大小为N^2的任意比例的纹理。
Three.js优雅地处理了这个问题,但我对理论背景很感兴趣。
我的猜测:它会使一些纹理操作变得不可能。但是我希望这里有人有一个具体的答案。
更新:
正如 tkausl 指出的那样,这个限制不是 WebGL 标准的新特性,而是一些底层抽象,如驱动程序或显卡的架构。