Unity 3D 모델 가져오기 및 셰이더

2024. 12. 10. 17:40Unity

Unity 3D 모델 가져오기 및 셰이더 이해하기

3D 게임 개발에서 3D 모델셰이더(Shader)는 그래픽 표현의 핵심입니다.
Unity에서는 다양한 파일 형식의 3D 모델을 가져올 수 있으며, 셰이더를 통해 독특한 비주얼 효과를 구현할 수 있습니다.

이번 포스팅에서는 Unity에서 3D 모델을 가져오고 셰이더를 이해하는 기초를 다뤄보겠습니다.


1. Unity로 3D 모델 가져오기

Unity는 FBX, OBJ, STL, GLTF 등 다양한 3D 파일 형식을 지원합니다.

1) 파일 가져오기

  1. 3D 모델 파일을 프로젝트 폴더의 Assets에 드래그 앤 드롭합니다.
  2. Unity가 자동으로 모델을 임포트하며, Inspector 창에서 모델의 속성을 확인할 수 있습니다.

2) 모델 설정

  • Scale Factor: 모델 크기를 조정합니다. (기본값은 1)
  • Mesh Compression: 메쉬 데이터를 압축하여 성능을 최적화합니다.
  • Generate Colliders: 모델에 충돌 감지용 콜라이더를 자동 생성합니다.

3) 재질(Material) 적용

모델에는 기본적으로 Default-Material이 적용됩니다.

  1. Material 폴더를 생성하고 새 재질을 추가합니다.
  2. 생성한 재질을 모델에 드래그하여 적용합니다.

2. 셰이더(Shader)란?

셰이더는 모델의 표면을 렌더링하는 방식을 정의합니다.
Unity에서는 다음과 같은 주요 셰이더 종류를 제공합니다:

  • Standard Shader: 일반적인 표면 렌더링.
  • URP/Lit Shader: Unity의 Universal Render Pipeline에서 사용.
  • Custom Shader: 사용자 정의 셰이더로 특별한 비주얼 효과를 구현.

3. 기본 셰이더 사용

1) Standard Shader 설정

  1. 새로운 Material을 생성합니다.
  2. Shader 드롭다운에서 Standard를 선택합니다.

2) 속성 설명

  • Albedo: 기본 색상 및 텍스처.
  • Metallic: 표면의 금속성 정도.
  • Smoothness: 표면의 반사율.
  • Normal Map: 표면의 디테일(굴곡)을 표현.
  • Emission: 자체 발광 효과.

3) 텍스처 추가

  1. 텍스처 파일을 드래그하여 Material의 Albedo 슬롯에 추가합니다.
  2. Normal Map 텍스처를 추가하면 표면이 더욱 입체적으로 보입니다.

4. 고급 셰이더 활용

1) URP 셰이더

Unity의 Universal Render Pipeline (URP)를 사용하면 최적화된 셰이더를 활용할 수 있습니다.

  • Lit Shader: URP에서 기본으로 제공하는 셰이더로, Standard Shader와 유사한 설정을 제공합니다.
  • Unlit Shader: 조명에 영향을 받지 않는 단순한 셰이더.

2) 셰이더 그래프(Shader Graph)

Shader Graph는 비주얼 노드 기반으로 셰이더를 제작할 수 있는 도구입니다.

  1. Shader Graph 패키지를 설치합니다.
  2. Shader Graph 파일을 생성하고 노드를 연결하여 셰이더를 디자인합니다.
  3. 완성된 셰이더를 Material에 연결합니다.

3) 커스텀 셰이더 작성

HLSL 또는 GLSL로 셰이더 코드를 작성하여 고유한 효과를 구현할 수 있습니다.


5. 3D 모델과 셰이더 통합

1) 조명과 셰이더의 상호작용

  • Directional Light를 사용하여 모델의 조명을 설정합니다.
  • 셰이더의 SmoothnessMetallic 값을 조정하여 빛 반사를 표현합니다.

2) 애니메이션 연동

3D 모델에 애니메이션이 포함된 경우, 애니메이터(Animator)를 활용하여 셰이더와 애니메이션을 함께 구현할 수 있습니다.

3) 실시간 효과 추가

  • Post-Processing을 사용하여 Bloom, Ambient Occlusion 등의 효과를 추가하면 셰이더와 조화로운 비주얼을 완성할 수 있습니다.

6. 실습: 빛나는 오브젝트 만들기

1) 발광하는 구체 생성

  1. Unity에서 Sphere를 생성합니다.
  2. 새로운 Material을 생성하고 Emission 속성을 활성화합니다.
  3. 원하는 색상과 텍스처를 설정한 후, 구체에 적용합니다.

2) 실시간 애니메이션 추가

using UnityEngine;

public class GlowEffect : MonoBehaviour
{
    private Material material;

    void Start()
    {
        material = GetComponent<Renderer>().material;
    }

    void Update()
    {
        float intensity = Mathf.PingPong(Time.time, 1);
        material.SetColor("_EmissionColor", Color.yellow * intensity);
    }
}

 


7. 요약

Unity에서 3D 모델 가져오기와 셰이더는 그래픽 품질을 높이는 핵심 도구입니다.

  • 모델 임포트: 다양한 포맷 지원 및 Unity 설정 최적화.
  • 셰이더: 표면의 렌더링 방식 정의 및 Material을 통해 조정.
  • Shader Graph: 시각적 셰이더 제작 도구.