강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

jsgat824님의 프로필 이미지
jsgat824

작성한 질문수

threejs 질문이요

작성

·

369

0

결과물을 보니 텍스처가 적용이 안되어서 검은색으로만 보이더라고요. 텍스처경로도 맞고 오탈자도 없는데 텍스처 적용이 안 되네요.

    // Planet
    const texturePlanet = textureLoader.load('/public/jupiter2_1k.jpg');
    texturePlanet.anisotropy = 16;
    const planetGeometry = new THREE.SphereGeometry(10, 50, 50);
    const planetMaterial = new THREE.MeshPhongMaterial({
        map: texturePlanet,
        fog: false
    });
    planet = new THREE.Mesh(planetGeometry, planetMaterial);
    console.log(planetMaterial);
    planet.position.set(0, 8, -30);
    scene.add(planet);

    //Moon
    const textureMoon = textureLoader.load('/texture/moon.jpg');
    textureMoon.anisotropy = 16;
    let moonGeometry = new THREE.SphereGeometry(2, 32, 32);
    let moonMaterial = new THREE.MeshPhongMaterial({
        map: textureMoon,
        fog: false
    });
    moon = new THREE.Mesh(moonGeometry, moonMaterial);
    moon.position.set(0, 8, 0);
    scene.add(moon);


    // Sphere Background 
    const textureSphereBg = textureLoader.load('/texture/starlight.jpg');
    textureSphereBg.anisotropy = 16;
    const geometrySphereBg = new THREE.SphereGeometry(150, 32, 32);
    const materialSphereBg = new THREE.MeshBasicMaterial({
        side: THREE.BackSide,
        map: textureSphereBg,
        fog: false
    });
    sphereBg = new THREE.Mesh(geometrySphereBg, materialSphereBg);
    sphereBg.position.set(0, 50, 0);
    scene.add(sphereBg);

스크린샷 2023-08-28 020738.png

 

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

텍스처가 적용되지 않아 검은색으로만 보인다는 문제가 발생하고 있는 것 같네요. 몇 가지 가능한 원인을 알려드릴게요.

  1. 텍스처 경로 확인: 코드에 작성된 텍스처 경로(‘/public/jupiter2_1k.jpg’, ‘/texture/moon.jpg’, ‘/texture/starlight.jpg’)가 실제 해당 텍스처 파일이 있는 경로와 일치하는지 확인해주세요. 오타나 경로 문제가 있는 경우 텍스처가 로딩되지 않을 수 있어요.

  2. CORS 정책 확인: 다른 도메인에 위치한 텍스처 파일을 로딩하는 경우, 동일 출처 정책(CORS) 문제가 발생할 수 있어요. 이 문제를 해결하기 위해서는 서버 측에서 CORS 정책을 설정해야 합니다. 로컬 디렉토리에서 텍스처를 로딩하는 경우에도 동일한 문제가 발생할 수 있으니, 이 부분도 확인해보세요.

  3. 텍스처 로딩 문제: THREE.TextureLoader를 사용하여 텍스처를 로딩하고 있지만, 텍스처 로딩 도중 오류가 발생하는 경우도 있을 수 있어요. textureLoader.load() 메서드를 사용하여 텍스처를 로딩하기 전에, 텍스처 로딩이 완료될 때까지 기다려야 할 수도 있습니다.

이러한 원인을 확인하고, 문제를 해결해보세요. 만약 더 자세한 정보가 필요하다면, 콘솔로 출력된 에러 메시지를 확인해보시는 것도 도움이 될 수 있어요. 문제가 해결되지 않으면, 좀 더 자세한 정보를 제공해주시면 도움을 드릴 수 있을 것 같아요.

jsgat824님의 프로필 이미지
jsgat824

작성한 질문수

질문하기