본문 바로가기
제출용/TIL

내일배움캠프 37일차 TIL + 라이팅

by 유린테 2024. 6. 7.

라이팅!!

가장 재미있지만 정말 어려운 라이팅!!!!

난 라이팅이 참 좋다

라이팅 어떻게 하느냐에 따라 같은 공간도 분위기가 확 바뀌기 때문 ㅎㅎㅎㅎㅎㅎㅎ

하지만 잘 못한다. 어렵기 때문

 


 

 

 

Light

라이트 소스 : 게임 또는 3D 렌더링에 광원을 추가하는데 사용됨

                      특정 위치 또는 방향에서 발생하는 빛을 나타냄

 

 

유형

 

점 광원 ( Point Light )

모든 방향으로 방향으로 균등하게 빛을 발산하는 광원

어떤 지점에서 360도 방향으로 균일하게 발산됨

멀어질수록 서서히 옅어지는 효과도 있다.

ex. 전구, 가로등 등에서 사용

 

방향성 라이트 (Directional Light) 

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

방향성을 가진 조명

 

스포트 라이트 (Spot Light)

씬의 한 점에 위치해 원뿔 모양으로 발산하는 광원

손전등, 무대조명 등으로 주로 사용

땅을 비추는 가로등은 스포트라이트!

 

면 광원 (Area Light)

표면 영역 전체에 걸쳐 균등하게 모든 방향으로 빛을 방출

사각형의 한쪽 면에서만 빛을 방출하는 광원

 

속성

위치, 방향, 강도(intensity), 색상(color), 범위(range), 각도(angle) 등이 있음

 

그림자

라이트와 객체사이의 관계에 따라 그림자는 라이트가 부딪히는 객체 뒤에 생성

 

성능

라이트는 렌더링 성능에 큰 영향을 미친다

특히 그림자가 포함된 경우 렌더링 성능에 부정적 영향을 미칠 수 있으니 최적화에 신경써야함

 

Lighting Intensity Multiplier : 실제 환경의 빛을 조절한다.

Reflecting Intensity Multiplier : 실제 오브젝트에 반사되는 정도를 조절한다.

 

 

애니메이션 커브 AnimationCurve

 

키프레임(Keyframe) 시간에 따른 값을 정의하는 점

                                  키프레임은 시간(t)과 해당 시간에 대응하는 값(value)으로 이루어짐

 

보간 방식(Interpolation Mode) 인접한 키프레임 사이의 값을 보간하는 방법을 지정

                                                   기본적으로는 Cubic Bezier 보간 사용, 선형, 스텝, 등 다양한 보간 방식을 선택할 수 있음

 

AnimationCurve 는 애니메이션의 키프레임(Keyframe)을 사용하여 값을 보간(interpolate)하는데 사용되는 클래스

시간에 따라 값을 부드럽게 변화시키는 커브를 정의하고, 이를 기반으로 애니메이션을 만들 수 있다

 

애니메이션 커브 사용법

using UnityEngine;

public class ExampleScript : 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);
    }
}

AddKey : 새로운 키프레임 추가

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

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

 

AnimationCurve는 주로 애니메이션 시간에 따른 값을 정의하는데 사용

특히 더 복잡한 애니메이션을 제어하기 위해 사용

ex. 오브젝트의 움직임, 크기 조정, 회전 등에 대한 애니메이션을 정의, 재미있는 게임 요소들에 활용