{TIL} Unity 3D 조명 시스템 이론

Kwaksang·2024년 5월 28일

TIL

목록 보기
30/37
post-thumbnail

Unity 3D 조명 시스템 이론

Chapter .1 Light

Content .1 라이트 소스

  • 게임 또는 3D 랜더링에 광원을 추가하는데 사용

Content .2 유형

  1. 점 광원(Point Light)

    모든 방향으로 균등하게 빛을 발산하는 광원
    전구, 라이터, 가로등 등

  1. 방향성 라이트(Directional Light)

    무한히 멀리 위치하여 한 방향으로만 빛을 발산하는 광원
    햇빛 등

  1. 스포트라이트(Spot Light)

    씬의 한 점에 위치하여 원뿔 모양으로 빛을 발산하는 광원
    손전등, 무대 위 특정 캐릭터 등

  1. 면 광원(Area Light)

    표면 영역 전체에 걸쳐 균등하게 모든 방향으로 빛을 방출
    사각형의 한쪽 면에서만 빛을 방출하는 광원
    인테리어 조명, 천장과 벽의 접점 효과 등

Content .3 속성

  1. 위치
  2. 방향
  3. 강도(intensity) : 빛의 세기 변화, 랜더링 부하(최적화 필요)
  4. 색상
  5. 범위
  6. 각도

Content .4 그림자

  • 라이트와 객체 사이의 관계에 따라 그림자는 라이트가 부딪히는 객체 뒤에 생성
  • 강도와 동일하게 최적화에 신경써야 함

Content .5 성능

  • 라이트는 랜더링 성능에 큰 영향을 미침
  • 그림자가 포함된 경우 랜더링 성능에 부정적인 영향을 미칠 수 있음
  • 최적화에 신경써야 함
  1. Lighting Intensity Multiplier : 실제 환경의 빛을 조절
  2. Reflecting Intensity Multiplier : 실제 오브젝트에 반사되는 정도를 조절

Chapter .2 AnimationCurve

Content .1 AnimationCurve의 정의

  • Unity에서 애니메이션의 키프레임(Keyframe)을 사용하여 값을 보간하는데 사용되는 클래스
  • 시간에 따라 값을 부드럽게 변화시키는 커브를 정의
  • 이를 기반으로 애니메이션 제작 가능

Content .2 구성 요소

  1. 키프레임(Keyframe)

    시간에 따른 값을 정의하는 점을 의미
    시간(t)과 해당 시간에 대응하는 값(Value)으로 이루어짐

  2. 보간 방식(Interpolation Mode)

    인접한 키프레임 사이의 값을 보간하는 방법을 지정
    기본적으로 Cubic Bezier 보간이 사용됨
    선형, 스텝, 등 다양한 보간 방식을 선택할 수 있음

Content .3 사용 예제

using UnityEngine;

public class Test : MonoBehaviour
{
    private AnimationCurve curve;

    private void Start()
    {
        // 새로운 AnimationCurve 생성
        curve = new AnimationCurve();

        // 키프레임 추가 (시간, 값)
        curve.AddKey(0f, 0f);
        curve.AddKey(1f, 1f);
    }

    private void Update()
    {
        // 시간에 따라 값을 보간하여 출력
        float time = Time.time;
        float value = curve.Evaluate(time);
        Debug.Log("Time: " + time + ", Value: " + value);
    }
}
  1. AddKey

    새로운 키프레임을 추가

  2. Evaluate

    특정 시간에 해당하는 값을 보간하여 반환

  3. keys

    키프레임의 배열 가져옴
    키프레임들을 추가, 수정, 삭제할 수 있음

profile
게임은 재미와 기능!

0개의 댓글