如何使用Three.js获取纹理尺寸

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Three.js获取纹理尺寸相关的知识,希望对你有一定的参考价值。

我想知道是否有可能获得纹理的尺寸?我用这行来设置我的纹理:

const texture = THREE.ImageUtils.loadTexture(src)

也许有必要加载图像来获得它的尺寸(但是只有javascript,而不是html和它的div?)?

我想我之后创建的材质适合纹理尺寸。

答案

首先,THREE.ImageUtils.loadTexture在最新的THREE.js(r90)中被弃用。请看看THREE.TextureLoader

也就是说,您可以从加载的纹理中获取图像及其属性。

texture.image

根据图像格式,您应该能够访问width / height属性,这将是纹理的尺寸。

请注意:加载纹理是异步的,因此您需要定义onLoad回调。

var loader = new THREE.TextureLoader();
var texture = loader.load( "./img.png", function ( tex ) {
    // tex and texture are the same in this example, but that might not always be the case
    console.log( tex.image.width, tex.image.height );
    console.log( texture.image.width, texture.image.height );
} );

以上是关于如何使用Three.js获取纹理尺寸的主要内容,如果未能解决你的问题,请参考以下文章

THREE.js - 大型int作为Uniform

如何使用 THREE.js 向 collada 文件 (.dae) 添加纹理?

three.js如何使纹理“生成”纹理坐标,就像搅拌器循环一样

如何在three.js中使用mtlLoader和objLoader中的多个纹理?

更改 Three.js collada 对象的纹理和颜色

深入理解Three.js(WebGL)贴图(纹理映射)和UV映射