wam
w__am 개발노트
wam
  • 분류 전체보기 (165)
    • CS 지식 (10)
      • 자료구조 (0)
      • 알고리즘 (0)
      • 컴퓨터 구조 (0)
      • 운영체제 (0)
      • 네트워크 (7)
      • 데이터베이스 (0)
      • 디자인 패턴 (3)
    • Frontend (131)
      • Three.js (64)
      • NPM (1)
      • Nest.js (19)
      • React (10)
      • Apollo (7)
      • TypeScript (2)
      • JavaScript (12)
      • HTML, CSS (1)
      • Jest (3)
      • E2E (5)
      • Cypress (7)
    • Database (12)
      • TypeORM (12)
    • IT 지식 (8)
      • 클라우드 서비스 (3)
      • 네트워크 (1)
      • 데이터 포맷 (2)
      • 기타 (2)
    • IT Book (2)
    • 유용한 사이트 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 🐱 Github

인기 글

태그

  • 렌더링 성능 최적화
  • Interface
  • 오프-프레미스(off-premise) 방식
  • 원형적인 움직임
  • 초기 환경설정
  • 함수 선언문
  • mapped types
  • e.preventdefault()
  • reactive variables
  • 삼각함수
  • 함수 표현식
  • 디자인 패턴
  • math.sin()
  • gridhelper
  • 함수 리터럴
  • math.cos()
  • joi 에러
  • getdelta()
  • type-graphql
  • getelapsedtime()
  • axeshelper
  • Decorators
  • 스코프
  • threejs 개발 할 때 도움을 줄 수 있는 유틸리티
  • 함수의 범위
  • API
  • react 성능 최적화
  • three.js 구성 요소
  • isabstract
  • 데이터 포맷

최근 글

관리자

글쓰기 / 스킨편집 / 관리자페이지
hELLO · Designed By 정상우.
wam

w__am 개발노트

재질, 여러 이미지 텍스쳐가 적용된 큐브
Frontend/Three.js

재질, 여러 이미지 텍스쳐가 적용된 큐브

2024. 10. 22. 23:15

 

각 면에 다른 텍스쳐 넣기

  /* 6개의 텍스쳐 이미지 로드 */
  // 주의 : webpack.config.js파일 CopyWebpackPlugin에서 textures의 경로 설정이 되었는지 체크하기
  const textureLoader = new THREE.TextureLoader(loadingManager);
  const rightTexture = textureLoader.load("/textures/mcstyle/right.png");
  const leftTexture = textureLoader.load("/textures/mcstyle/left.png");
  const topTexture = textureLoader.load("/textures/mcstyle/top.png");
  const bottomTexture = textureLoader.load("/textures/mcstyle/bottom.png");
  const frontTexture = textureLoader.load("/textures/mcstyle/front.png");
  const backTexture = textureLoader.load("/textures/mcstyle/back.png");

  /* 여러 이미지 텍스쳐가 적용된 큐브 */
  const materials = [
    new THREE.MeshBasicMaterial({ map: rightTexture }),
    new THREE.MeshBasicMaterial({ map: leftTexture }),
    new THREE.MeshBasicMaterial({ map: topTexture }),
    new THREE.MeshBasicMaterial({ map: bottomTexture }),
    new THREE.MeshBasicMaterial({ map: frontTexture }),
    new THREE.MeshBasicMaterial({ map: backTexture })
  ];

 

 

magFilter란?

  • magFilter는 텍스처가 확대될 때 어떤 방식으로 보간(Interpolation)할지를 결정하는 속성이다.
  • 즉, 텍스처가 확대될 때 텍스처의 픽셀이 어떻게 화면에 표시될지를 제어한다.

 

 

THREE.NearestFilter란?

  • NearestFilter는 가장 가까운 텍셀(texel, 텍스처의 픽셀)을 선택하는 방식으로 확대를 처리한다.
  • 이 필터를 사용하면 텍스처가 확대될 때 부드러운 보간 없이 픽셀이 그대로 보이게 되어, 블록 모양의 픽셀화된 느낌을 준다.
  • 고해상도보다는 저해상도나 픽셀 아트 스타일의 그래픽을 구현할 때 유용하다.

 

 

  // magFilter - 텍스처가 확대될 때 텍스처의 픽셀이 어떻게 화면에 표시될지를 제어
  // THREE.NearestFilter - 부드러운 보간 없이 픽셀이 그대로 보이게 되어, 블록 모양의 픽셀화된 느낌을 준다.
  rightTexture.magFilter = THREE.NearestFilter;
  leftTexture.magFilter = THREE.NearestFilter;
  topTexture.magFilter = THREE.NearestFilter;
  bottomTexture.magFilter = THREE.NearestFilter;
  frontTexture.magFilter = THREE.NearestFilter;
  backTexture.magFilter = THREE.NearestFilter;

 

 

 

저작자표시 변경금지 (새창열림)

'Frontend > Three.js' 카테고리의 다른 글

재질, MeshNormalMaterial_각 법선의 방향에 따라 다른 색상을 부여  (0) 2024.10.27
재질, MeshToonMaterial(만화 느낌)  (0) 2024.10.27
재질, 텍스쳐 변환  (0) 2024.10.22
재질, 로딩 매니저(여러개의 텍스쳐 이미지)  (0) 2024.10.16
재질, 텍스쳐 이미지 로드하기  (0) 2024.10.16
    'Frontend/Three.js' 카테고리의 다른 글
    • 재질, MeshNormalMaterial_각 법선의 방향에 따라 다른 색상을 부여
    • 재질, MeshToonMaterial(만화 느낌)
    • 재질, 텍스쳐 변환
    • 재질, 로딩 매니저(여러개의 텍스쳐 이미지)
    wam
    wam

    티스토리툴바