Version: 2020.2
언어: 한국어
카메라에서 나오는 레이
오클루전 컬링

사선 절두체 사용하기

기본적으로 뷰 절두체는 카메라의 중심선을 중심으로 대칭으로 배열되지만, 반드시 그럴 필요는 없습니다. 절두체를 사선으로 만들 수도 있습니다. 즉 중심선을 기준으로 한쪽이 반대쪽보다 각도가 더 작다는 의미입니다.

이렇게 하면 이미지 한쪽의 원근감이 압축되어, 보는 사람이 해당 에지에 표시된 오브젝트에 더 가까이 있다고 느낍니다. 이와 관련된 적용 사례로는 자동차 경주 게임을 들 수 있습니다. 절두체가 하단 에지에서 평탄화되면 도로와 더 가까이 있는 것처럼 보이므로 속도감이 한층 강조됩니다.

빌트인 렌더 파이프라인에서 사선 절두체를 사용하는 카메라는 포워드 렌더링 경로만 사용할 수 있습니다. 카메라가 디퍼드 셰이딩 렌더링 경로를 사용하도록 설정하고 해당 절두체를 사선으로 만들면 Unity는 해당 카메라가 포워드 렌더링 경로를 사용하도록 강제로 설정합니다.

절두체 경사 설정

Camera 컴포넌트에는 절두체의 경사를 설정하는 기능이 없지만, 카메라의 Physical Camera 프로퍼티를 활성화하고 렌즈 시프트를 적용하거나 카메라의 투사 매트릭스를 변경하는 스크립트를 추가하여 설정할 수 있습니다.

렌즈 시프트로 절두체의 경사 설정

카메라의 Physical Camera 프로퍼티를 활성화하여 Lens Shift 옵션을 노출합니다. 이러한 프로퍼티를 사용하여 X축과 Y축을 따라 카메라의 초점의 중심을 오프셋하여 렌더링된 이미지의 왜곡을 최소화할 수 있습니다.

렌즈를 시프팅하면 시프트 방향 반대쪽의 절두체 각도가 작아집니다. 예를 들어 렌즈를 위쪽으로 시프팅하면 절두체 하단과 카메라의 중심선 사이의 각도가 작아집니다.

보통 카메라의 절두체는 대칭(왼쪽)입니다. 즉, 중심선 양쪽의 각도가 동일합니다. 렌즈를 시프팅하면(오른쪽) 절두체가 사선이 됩니다. 즉, 한쪽의 각도가 다른 쪽보다 작아집니다.
보통 카메라의 절두체는 대칭(왼쪽)입니다. 즉, 중심선 양쪽의 각도가 동일합니다. 렌즈를 시프팅하면(오른쪽) 절두체가 사선이 됩니다. 즉, 한쪽의 각도가 다른 쪽보다 작아집니다.

물리적 카메라 옵션에 대한 자세한 내용은 물리적 카메라에 관한 문서를 참조하십시오.

개별 Physical Camera 프로퍼티를 설정하는 자세한 방법은 Camera 컴포넌트 레퍼런스를 참조하십시오.

스크립트로 절두체 경사 설정

다음 스크립트는 카메라의 투사 매트릭스를 변경하여 사선 절두체를 빠르게 구현하는 방법을 나타냅니다. 게임이 Play 모드에서 실행 중인 경우에만 스크립트의 효과가 나타납니다.

using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
    void SetObliqueness(float horizObl, float vertObl) {
        Matrix4x4 mat  = Camera.main.projectionMatrix;
        mat[0, 2] = horizObl;
        mat[1, 2] = vertObl;
        Camera.main.projectionMatrix = mat;
    }
}

C# 스크립트 예제

프로젝션 매트릭스의 작동 원리를 몰라도 이 기능을 사용할 수 있습니다. horizObl과 vertObl 값에 따라 가로 및 세로 경사도가 설정됩니다. 값이 영(0)이면 경사가 없습니다. 값이 양수면 절두체가 오른쪽이나 위쪽으로 이동하여 왼쪽이나 아래쪽이 평평해집니다. 값이 음수면 절두체가 왼쪽 또는 아래쪽으로 이동하여 오른쪽이나 위쪽이 평평해집니다. 스크립트를 카메라에 추가하고 게임 실행 중에 씬 뷰로 게임을 전환하면 효과를 바로 확인할 수 있습니다. 카메라 절두체의 와이어프레임 묘사는 인스펙터에서 horizObl 및 vertObl의 값을 바꾸면 변합니다. 변수 하나의 값이 1 또는 –1이면 절두체의 한 쪽이 중심선을 기준으로 완전히 평평함을 나타냅니다. 범위를 벗어난 값을 사용할 수 있지만, 이렇게 해야 하는 경우는 드뭅니다.


카메라에서 나오는 레이
오클루전 컬링