기본 콘텐츠로 건너뛰기

[Unity] Mesh (작성중)

    목차

아직 작성중

1. GameObject 컴포넌트에 필요한 것

필수

  • MeshRenderer
  • MeshFilter

선택

  • MeshCollider
  • Material, Texture : 생성은 된다. 다만, 눈에 보이지 않거나 분홍색으로 보이거나...

기타 옵션

  • Layer

2. Mesh를 구성하는 요소

  • Vertex (Vertices)
  • UV
  • Normal : 이 녀석이 없어서 생성은 가능
  • Triangles (삼각형) : Vertex를 이용하여 계산해도 된다.
  • Bounds : Mesh 렌더링 범위

3. Mesh 만들기

직접 만들기

각 요소들을 직접 계산.

외부 파일 이용

OBJ 파일 이용

  1. MTL 파일 읽기
  • mtllib
  1. vertex, texture coordinate, normal 정보 읽기
  • v : vertex
  • vt : texture coordinate
  • vn : normal
  1. object 분할 결정
  • material에 따라 (usemtl) 또는 "o","g" 항목에 따라 object를 분할 할지 그냥 통합할지 결정.
  • Unity의 경우 GameObject 하나에 여러개의 Material 또는 여러개의 GameObject에 Mesh 일부분이 배정되도록 생성할 수 있다.
  1. face 정보를 조립
  • v/vt/vn (vertex, texture, normal) 인덱스가 정의되어 있음 (1부터 시작)
  1. face와 material 매칭
  • obj파일의 "usemtl"에 정의된 변수명과 동일한 변수명을 mtl파일의 "newmtl" 부분에서 찾아서 material의 속성을 가져와서 생성한 face에 매칭

4. Mesh 배치

유니티에서 배경을 오브젝트 보다 항상 뒤로 배치.
Mesh 2개가 겹칠 때, 하나의 Mesh를 다른 Mesh 보다 항상 뒤에 배치 시키도록 설정하기.

  • (Mesh, Sprite) Renderer에서 Sorting Layer 변경
    • Sorting Layer는 “Project Settings” → “Tags and Layers” 에서 편집 가능하다.
  • Mesh에서 사용하는 Material을 Sprite-Default 기반으로 바꾸거나 Shader에 "ZWrite Off"로 변경하거나 추가

참고

https://m.blog.naver.com/ysgy1121/221180511533
https://uheeworld.tistory.com/28
https://philip1994.tistory.com/72
https://throwbug.com/552/unity3d-skinnedmeshrenderer-%EB%8A%94-sorting-layer-%EA%B0%80-%EB%8F%99%EC%9E%91%ED%95%98%EC%A7%80%EC%95%8A%EB%82%98%EC%9A%94


변수명 Unity에서 사용하는 자료 유형
Vertices List 또는 Vector3 배열 한 정점당 float 3개씩 (x,y,z)
UVS List 또는 Vector2 배열 한 정점당 float 2개씩 (x,y)
Triangle Index int 배열 (Vertices에 있는 정점 3개씩을 묶어서 만든) 삼각형의 인덱스
Normal List 또는 Vector3 배열 float 자료 유형 3개씩 (x,y,z)
Material jpg 개수//각 가로, 세로, 포맷, byte 데이터, mat 이름

댓글