与建议的here相反,在相应的three.js示例中,我正在研究如何应用实际的自定义mipmap,即针对不同的mipmap大小使用不同的自定义图像,而不仅仅是指导three.js自动生成贴图这可能吗?我根本找不到任何示例代码。原因是文本。正确创建的文本优于任何自动抗锯齿功能,尤其是在小字体上使用不同大小的字体时。我想知道这在实践中是否最终会成为更好的解决方案。 最佳答案 您需要创建尺寸为例如[64 x 64、32 x 32、16 x 16、8 x 8、4 x 4、2 x 2、1 x 1]的image数组,并将其分配给纹理的属性。所使用的图像应始终为正方形,其尺寸应为2的幂。数组中的每个后续图像的尺寸应减半,直到达到尺寸1 x 1。对于您的情况,您可以编写函数mipmaps,该函数可以按所需的尺寸和字体绘制相同的文本。说textImage,其中(text, dimension, font) => canvas是canvas。那你可以写texture.mipmaps[0] = textImage('sampleText', 64, 'font0');texture.mipmaps[1] = textImage('sampleText', 32, 'font1');...texture.mipmaps[6] = textImage('sampleText', 1, 'font6');而且,如果您不想在采样时混合两个mipmap(例如,对于不同级别使用不同的字体),则需要将HTMLCanvasElement设置为minFilter或NearestMipMapNearestFilter。(我还没有弄清楚如何使用不完整的mipmap链,因此我总是提供一个完整的链,该链的大小应小于1 x1。另外,据我所知,我上面提到的LinearMipMapNearestFilter不必是。它可以是WebGLRenderingContext.texImage2D()接受为其image参数的任何类型:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D)
08-15 16:00