首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >THREE.JS OBJLoader在加载图像时给出“意外行”

THREE.JS OBJLoader在加载图像时给出“意外行”
EN

Stack Overflow用户
提问于 2022-05-12 19:09:37
回答 1查看 51关注 0票数 1

我不能用OBJLoader加载图像(JPG、PNG或BMP)。

下面是一些代码:

代码语言:javascript
运行
复制
function init() {
  ...
  loader = new THREE.OBJLoader();
  loadOBJ();
}

function createLeeMaterial() {
    let leeTexture = new THREE.Texture();
    
    loader.load('lee/lee_diffuse.jpg', (image) => {
        leeTexture.image = image;
        leeTexture.needsUpdate = true;
    });
    
    let leeMaterial = new THREE.MeshPhongMaterial();
    leeMaterial.map = leeTexture;
    
    return leeMaterial;
}

function loadOBJ() {
    loader.load('lee/lee.obj', (object) => {
        object.traverse((child) => {
            if (child instanceof THREE.Mesh) {
                child.material = createLeeMaterial();
                child.receiveShadow = true;
                child.castShadow = true;
            }
        });
        
        object.position.y = -2;
        object.position.z = 10;
        scene.add(object);
    });
}

我可以加载.obj,但不能加载.jpg (而且它存在于文件夹中)。

我曾经遇到过与我使用的主机有关的问题:该网站似乎删除了特殊字符(比如非ASCII字符)。也许这会破坏图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-13 10:33:02

I不能用OBJLoader加载图像(JPG、PNG或BMP)。

OBJLoader只能处理OBJ资产。如果您想加载纹理,请这样做:

代码语言:javascript
运行
复制
const textureLoader = new THREE.TextureLoader();
const leeTexture = textureLoader.load( 'lee/lee_diffuse.jpg' );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72220947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档