강의에서 나온 이미지 색상보다 더 밝게 나와요
378
작성한 질문수 1

위의 사진처럼 강의보다 훨씬 밝게 나오는데 문제가 무엇일까요..?
import * as THREE from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
// ----- 주제: 여러 이미지 텍스쳐가 적용된 큐브
export default function example() {
// 로딩 매니저
const loadingManager = new THREE.LoadingManager();
loadingManager.onStart = () => {
console.log("시작");
};
loadingManager.onLoad = () => {
console.log("로드 완료");
};
loadingManager.onProgress = (img) => {
console.log(img + "로드 중");
};
loadingManager.onError = () => {
console.log("로드 에러");
};
// 텍스쳐 이미지 로드
const textureLoader = new THREE.TextureLoader(loadingManager);
const rightTex = textureLoader.load("/textures/mcstyle/right.png");
const leftTex = textureLoader.load("/textures/mcstyle/left.png");
const topTex = textureLoader.load("/textures/mcstyle/top.png");
const bottomTex = textureLoader.load("/textures/mcstyle/bottom.png");
const frontTex = textureLoader.load("/textures/mcstyle/front.png");
const backTex = textureLoader.load("/textures/mcstyle/back.png");
const materials = [
new THREE.MeshBasicMaterial({ map: rightTex }),
new THREE.MeshBasicMaterial({ map: leftTex }),
new THREE.MeshBasicMaterial({ map: topTex }),
new THREE.MeshBasicMaterial({ map: bottomTex }),
new THREE.MeshBasicMaterial({ map: frontTex }),
new THREE.MeshBasicMaterial({ map: backTex }),
];
// 픽셀화
rightTex.magFilter = THREE.NearestFilter;
leftTex.magFilter = THREE.NearestFilter;
topTex.magFilter = THREE.NearestFilter;
bottomTex.magFilter = THREE.NearestFilter;
frontTex.magFilter = THREE.NearestFilter;
backTex.magFilter = THREE.NearestFilter;
// Renderer
const canvas = document.querySelector("#three-canvas");
const renderer = new THREE.WebGLRenderer({
canvas,
antialias: true,
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(window.devicePixelRatio > 1 ? 2 : 1);
// Scene
const scene = new THREE.Scene();
scene.background = new THREE.Color("white");
// Camera
const camera = new THREE.PerspectiveCamera(
75,
window.innerWidth / window.innerHeight,
0.1,
1000
);
camera.position.y = 1.5;
camera.position.z = 4;
scene.add(camera);
// Light
const ambientLight = new THREE.AmbientLight("white", 0.5);
scene.add(ambientLight);
const directionalLight = new THREE.DirectionalLight("white", 1);
directionalLight.position.set(1, 1, 2);
scene.add(directionalLight);
// Controls
const controls = new OrbitControls(camera, renderer.domElement);
// Mesh
const geometry = new THREE.BoxGeometry(2, 2, 2);
const mesh = new THREE.Mesh(geometry, materials);
scene.add(mesh);
// 그리기
const clock = new THREE.Clock();
function draw() {
const delta = clock.getDelta();
renderer.render(scene, camera);
renderer.setAnimationLoop(draw);
}
function setSize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.render(scene, camera);
}
// 이벤트
window.addEventListener("resize", setSize);
draw();
}
답변 2
0
일단 코드가 같다면 당연히 문제가 있는 것은 아니고요, 간혹 브라우저나 하드웨어에 따라 WebGL 구현이나 최적화 방식이 다를 수도 있다고 하네요. 다른 기기에서도 한번 확인해보시고, 프로젝트에 두루 적절한 조명 강도를 설정해주시면 될 것 같습니다!
0
안녕하세요, 인프런 AI 인턴이에요.
강의에서 보여주는 이미지와 실제로 보이는 이미지가 다른 문제일 가능성이 있어요. 이런 경우 대부분의 경우 이미지 파일 자체의 문제이거나 이미지를 불러올 때 설정에 문제가 있는 경우입니다.
먼저, 이미지 파일 자체의 문제인지 확인해보세요. 강의에서 사용하는 이미지 파일과 실제 사용하고 있는 이미지 파일을 비교해보세요. 강의에서 사용하는 이미지 파일이 정상적으로 다운로드되었는지 확인할 필요가 있습니다.
또한, 이미지를 불러올 때 설정에 문제가 있는지 확인해보세요. 코드에서 사용하는 TextureLoader 객체의 load 메서드를 호출할 때 이미지 파일의 경로를 제대로 지정했는지 확인해보세요. 오타나 잘못된 경로를 입력한 경우 이미지가 정상적으로 불러와지지 않을 수 있습니다.
이 외에도, 실제로 사용하고 있는 이미지의 밝기 조정이 필요할 수도 있습니다. 이미지 파일이 너무 밝은 경우 이미지 편집 프로그램을 사용하여 조정해보세요.
이미지가 정상적으로 불러와지지 않거나 밝기 조정 등의 작업으로 해결되지 않는다면, 추가 정보가 필요할 수 있으므로 좀 더 구체적으로 문제 상황을 설명해주시면 더 정확한 답변을 드릴 수 있어요.
box3.position.x 위치
0
38
1
리액트/next.js와 같이 사용하는 강의 계획은 없으신가요?
0
80
1
소스코드 파일이 강의랑 같나요?
0
118
2
materials 배열에 있는 top, bottom ... 들에 대해서
0
118
0
gltf 포맷 사용
0
243
1
점프 애니메이션 stop
0
127
2
사양에 따른 다른 결과
0
112
1
중복 질문 삭제
0
160
1
혹시 이 빛의 범위를 조절할 수 있는 방법이 있나요?
0
124
1
gltf.scene.children 이 없는데도 모델이 화면에 떠요
0
101
2
GLF파일 export한 후에 three.js에서 렌더링 된 모델에는 텍스처 적용이 안되어있습니다..!
0
160
1
일반 유리, 강화 유리 강의에서 Glass 객체의 position X를 -1, 1로 설정한 이유를 모르겠어요
0
76
0
그림자가 다르게 표현됩니다
0
138
1
setAnimationLoop 위치가...
0
99
1
얼굴 그릴 때 붓이 깔끔하게 칠해지지 않고 얼룩덜룩해요
0
135
1
블렌더 texture paint 시 미러모드
0
163
0
DragControls의 인자값을 바꾸지 않았는데 에러가 안떠요!
0
104
1
blender 에서 색칠하기 편 Texter paint slot추가없음
0
965
2
fin 버전도 그냥 실행이 안돼요
0
289
2
자바스크립트 실행이 안되는 것 같아요
0
379
1
모니터 해상도에 따라 mesh의 크기가 변할 수 있나요?
0
238
1
live server와 localhost:8080
0
345
1
material에 canvas 를 texture 로 넣는방법이 궁금해요
0
270
1
모바일 조이스틱은 어떻게 만들 수 있을까요?
0
208
1





