1. 개요
물리 기반 렌더링(Physically Based Rendering, PBR) 또는 물리 기반 셰이딩(Physically Based Shading, PBS)은 표면의 재질에 따른 빛의 반사가 물리적으로 어떻게 이루어지는지를 시뮬레이션해서 그래픽을 표현하는 기법이다.2. 특징
현실에서는 기본적으로 물체는 고유의 색을 가지고 있다. 그리고 특수한 경우를 제외하고는 대부분 빛에 의하여 난반사광(Diffuse Reflection or Light)와 정반사광(Specular Reflection or Light)라는 현상이 일어난다.난반사광은 빛을 받은 표면에서 물체 고유의 색을 다수의 방향들로 반사(난사)가 되는 것이고, 정반사광은 비춰진 빛 자체를 표면의 각도에 의해 정해진 방향으로만 반사되는 현상을 의미한다.
난반사라는 단어 뜻 그대로 받아들이면 빛이 난잡하게 여기저기로 퍼지는 듯한 오해를 받을 수 있으나, 난반사광은 빛을 받는 표면이 가진 고유의 색상을 보여주기 위해 물체가 빛을 흡수하고 고유 색상에 따른 파장을 내보내는 것이다. 즉, 우리가 눈으로 물체를 볼 수 있는 것이 바로 난반사광 덕분인 것이다. 난반사광은 그냥 물체의 색상만 보여주는 것이 아니라, 그 물체의 고유 색상을 주변 전체에 희미하게 반사시키는데 이것을 간접광(Indirect Lighting)이라고 부르며, 그것을 응용한 것이 바로 전역 조명(Global Illumination)이다. 하지만 물리 기반 렌더링(PBR)에서는 거기까지 다루지 않으며 전역 조명은 별개의 영역으로 구분된다. 어디까지나 현실의 빛이 움직이는 물리적 현상을 비슷하게 흉내내는 것일뿐이지 현실의 모든 물리적 현상 그대로를 구현하는 게 아니기 때문이다.
정반사는 입사광(표면에 직접 비춰지는 빛)의 색상 그대로를 한방향(입시광이 비춰지는 각도 정방향)으로 반사한다. 정반사광은 물체의 고유색상과는 전혀 관계없이 입사광의 색상 그대로를 반사[1]하지만, 물체가 금속일 경우에는 예외적으로 금속 자체의 색상을 머금고 반사된다.
그리고 물체 표면의 거칠기(Roughness) 정도에 따라서 전반사(Total Reflection) 성질의 정도가 달라진다. 표면이 매끈할수록(Glossiness) 거울과 같은 전반사 성질을 띄며, 거칠수록(Roughness) 거울처럼 반사되는 이미지의 선명함이 흐릿하게 뭉게지게 된다.
여기까지가 사실상 PBR의 원리이자 핵심이다.[2] 즉 정반사와 난반사를 구체적으로 어떻게 계산하느냐에 따라 표면의 특성이 정해진다는 것을 이용한 재질 렌더링 방식을 PBR이라고 부른다.
여기서 이 정반사와 난반사를 표현하는 방식에 따라 여러 방식의 워크플로우가 존재하는데 보통은 Metallic/Roughness와 Specular/Glossiness라는 2가지 방식을 따른다.
Metallic/Roughness 등장 초창기인 2010년대 초반에는 Metallic/Roughness을 물리 기반 렌더링/셰이딩(Physically Based Rendering/Shading)이라고 부르며, 기존에 먼저 존재하던 개염인 Specular/Glossiness 방식을 고전적 렌더링(Lagacy Rendering)이라고 구분했었다.
그러나 원래부터 Specular/Glossiness 방식도 난반사와 정반사를 표현하는 물리적 현상에 기반하고 있었고, Metallic/Roughness 방식이 "조금 더" 물리적 현상에 기반한 연산을 수행하지만 그렇다고 정말로 현실의 물리 현상을 그대로 따르는 것도 아니었기 때문에 나중에는 Specular/Glossiness 방식과 Metallic/Roughness 방식 두 가지 모두 물리 기반 렌더링으로 부르게 되었다.
2020년대 이후 시점에서 고전적 렌더링(레거시 렌더링)이라고 부르는 것은 빛의 물리적 현상을 전혀 고려하지 않고, 텍스처에 음영과 반사광을 직접 그려 넣은 것을 의미한다.
그리고 Specular/Glossiness 방식은 비실사 지향 물리 기반 렌더링(Non-Photorealistic orient PBR)이라고 부르며, Metallic/Roughness 방식은 실사 물리 기반 렌더링(Photorealistic orient PBR)이라고 부르게 된다.
기존의 Specular/Glossiness 방식만 지원하는 엔진에 Metallic/Roughness 방식 지원을 추가하는 일은 셰이더 효과 하나 추가하는 정도로 간단히 이루어진다.
2010년대 초중반 이후로 언리얼 엔진과 유니티 엔진를 비롯한 주요 게임 엔진들은 모두 Metallic/Roughness 방식 지원을 추가했으며, 게임들의 그래픽 역시 Metallic/Roughness 방식을 활용하는 추세로 넘어갔다.
Metallic/Roughness 방식이 기존의 Specular/Glossiness 방식으로 작업하던 그래픽 디자이너들에게는 생소하게 낯선 개념일 뿐 익숙해지면 오히려 Specular/Glossiness 방식보다 간결하며 그래픽 리소스를 줄이면서도 Specular/Glossiness 방식보다 더욱 사실적인 그래픽 구현이 가능하고 최적화에도 더 용이한 편이다.
3. 두 가지 PBR 방식의 워크플로우 비교
두 가지의 PBR 워크플로우를 간단히 비교하자면 다음과 같다.구분 | Specular/Glossiness (Non-Photorealistic PBR, 비실사 지향 PBR) | Metallic/Roughness (Photo Realistic PBR, 실사 지향 PBR) |
재질의 기본색 | 난반사(Diffuse) 텍스처 (또는 값)[3] | 기본색(Base Color) 텍스처[4] (또는 값)[5] |
재질의 반사광 | 정반사(Specular) 텍스처 (또는 값)[6] | 정반사(Specular) 세기의 정도 값[7] |
재질의 금속성 | 없음 | 금속성(Metallic) 텍스처 (또는 값) |
재질의 거칠기 | 광택(Glossiness) 텍스처 (또는 값) | 거칠기(Roughness) 텍스처 (또는 값) |
1. 빛은 재질의 표면에 흡수되어 해당 표면이 가진 색의 파장만을 다시 반사 시키는 데 이것을 난반사(광)(Diffuse Reflection or Lighting)이라고 한다.
- 비실사 지향 PBR에서는 디퓨즈라고 부른다. 직접 보여지는 물체의 고유 색상과 무늬를 담고 있는 텍스처인데, 한가지 유의해야할 점은 금속 재질의 색상은 검은색으로 통일해야 한다.
- 실사 지향 PBR에서는 베이스 컬러라고 부른다. 직접적으로 보여지는 물체의 고유 색상과 무늬를 담고 있는 텍스처로, 디퓨즈 텍스처와 완전히 동일한 기능을 하지만 한가지 차이점으로 금속 재질의 색상도 포함한다.
2. 모든 표면은 입사광이 비추는 각도의 정방향으로 입사광 자체를 반사 시키는 데 이것을 정반사(광)(Specular Reflection or Lighting)이라고 한다.
- 비실사 지향 PBR에서는 재질의 정반사 속성을 아티스트가 임의로 설정한다. 스페큘러 텍스처를 사용하거나 스페큘러 수치 값을 줘서 어느 부분에서 어떻게 정반사가 일어날지, 세기의 수치를 조정해서 얼마나 강렬하게 빛날지, 스페큘러 하이라이트가 어느 부분에 어떻게 맺힐지, 스페큘러가 어느정도로 밝게 빛날지(비추고 있는 광원의 밝기보다도 훨씬 더 밝은 빛을 낼 수도 있다), 스페큘러의 색상은 어떤 색일지, 모든 것을 아티스트의 임의대로 설정할 수 있다. 정반사광은 광원의 색상을 그대로 반사하기 때문에 스페큘러 텍스처는 기본적으로 어두운 회색을 유지하지만 아티스트가 임의의 색상을 지정할 수도 있다. 금속 재질에서의 정반사광은 금속 본연의 색을 반사한다는 점 때문에, 금속 재질의 색상은 반드시 스페큘러 텍스처에 지정해야 한다. 이런 이유로 비실사 지향 PBR에서는 재질의 기본색인 디퓨즈 텍스처의 금속 부분을 검은색으로 통일해야 한다.
- 실사 지향 PBR에서는 모든 표면은 정반사가 일어난다는 현상에 기반하기 때문에 어느 부분에서 정반사가 어떻게 일어날지를 아티스트가 조절하지 않는다. 그래서 스페큘러 텍스처를 사용하지 않으며, 해당하는 부분의 수치값 조절로 스페큘러의 모양을 결정하지도 않는다. 그래서 원칙상으로는 스페큘러 설정 자체가 없어야 하나, 특수한 경우를 위해 스페큘러 세기의 수치를 변경할 수 있다. 수치는 0.5로 고정되어 있는 것이 기본값이며, 특수한 경우에는 0부터 1까지 소수점 단위로 조절 가능 하다. 그리고 에너지 보존법칙에 근거하기 때문에 정반사광의 밝기는 비추어지는 광원의 밝기를 절대 넘어서지 않는다.
3. 금속은 다른 색을 흡수하고 스스로의 색을 반사하는 성질이 있다.
- 비실사 지향 PBR은 금속성에 대해 별도의 설정을 하는 것이 없다. 그래서 스페큘러 텍스처에 금속의 색상을 지정한다.
- 실사 지향 PBR에서는 스페큘러를 임의로 설정하지 않으므로, 해당 재질이 금속인지 비금속인지를 결정하는 수치값을 조절할 수 있으며 금속의 수치는 1, 비금속의 수치는 0이다. 흰색을 1, 검은색을 0으로 인식해서 임의의 금속 모양을 만들 수 있는 메탈릭 텍스처를 사용할 수도 있고 텍스처 없이 좌표에 수치를 일일히 줘서 만들 수 있는 방법도 있다. 현실에서는 금속과 비금속으로 나누어지기 때문에[8] 원칙적으로는 중간값을 허용해서는 안 되지만, 한 재질 안에 금속과 비금속이 같이 존재하여 서로 붙어있는 경우나, 비금속이지만 일반적인 반사광으로는 표현이 힘든 재질을 표현하기 위해 임의로 메탈릭을 올려야만 하는 경우[9]를 위해서 0.1부터 0.9까지의 중간값을 설정할 수 있으며, 메탈릭 텍스처를 사용할 때도 흰색과 검은색의 중간 색상인 회색조의 색상들을 이용해서 0.1부터 0.9까지의 중간 값을 사용할 수 있다.
4. 모든 표면은 거칠기(Roughness)를 가지고 있으며 거칠기 정도에 따라 표면의 전반사 성질이 반비례한다. 거칠지 않고 매끈할수록 마치 거울과 같은 전반사(Total Reflection) 성질을 띠며 표면이 거칠수록 그 반사의 선명한 정도가 감소한다.
- 비실사 지향 PBR에서는 기본적으로 표면에 전반사가 일어나지 않는다. 의도적으로 매끄러운 표면처럼 보이기 위해 광택(Glossiness) 텍스처나 수치 값을 사용하기도 하나, 광택(Glossiness) 매핑을 사용하더라도 단순히 해당 표면에 광택 효과만 추가되고 전반사의 성질은 갖지 않으며, 표면에 전반사 효과를 나타내려면 환경 매핑이나 리플렉션을 통해 별도로 적용해야 한다. 그리고 광택의 수치가 낮아지더라도 기본적으로 거친 표면이 아니기 때문에 실사 지향 PBR에서와 동일한 거칠기의 표현은 불가하고, 실사 지향 PBR에서 처럼 거칠게 보이기 만들려면 노멀 맵 텍스처에 거칠기를 그려 넣거나 하는 수 밖에 없고, 그렇게 하더라도 실사 지향 PBR과 결과물이 같을 수는 없다. 실사 지향 PBR처럼 표면이 거칠수록 전반사성이 서서히 부드럽게 뭉게지며 정반사가 부각되는 자연스러운 현상은 구현이 불가능하다.
- 실사 지향 PBR에서는 모든 표면이 거울과 같은 전반사 성질을 어느정도 띄고 있다는 현상에 입각하여, 모든 재질에 전반사가 일어나는 것이 기본 값이다. 표면이 거칠수록 전반사 성질의 정도가 점점 희미해지기 때문에 거칠기(Roughness)를 표현하기 위한 텍스처나 수치 값을 사용해서 표면이 어느정도로 거친 느낌을 가질지를 설정한다. 거칠기 값이 커질수록 전반사 성질의 정도가 자연스럽게 감소한다. 기본적으로 모든 표면이 전반사 성질을 유지한다는 실제 물리적 현상에 입각하여 거칠기의 정도에 전반사의 또렷함이 서서히 부드럽게 뭉게지면서 정반사광이 부각되는 현상을 구현한다. 실제 현상에서도 표면이 매끈할수록 거울처럼 반사되며 표면이 거칠수록 거울처럼 반사되는 선명함이 점점 흐려지면서 뭉뚱한 빛 덩어리 형태로 변해가며 정반사광이 도드라지는 현상을 그대로 구현한 것이다.
- 광택(Glossiness)과 거칠기(Roughness)는 텍스처 또는 수치 값이 서로 정확히 반대되는 값을 가지고 있다. Glossiness 텍스처를 포토샵에서 색을 반전 시키면 그대로 Roughness 텍스처로 사용할 수 있고, 그 반대로 해도 마찬가지다. 그러나 Glossiness와 Roughness 값만 서로 반전되는 정보를 가지고 있을 뿐, 비실사 지향 PBR과 실사 지향 PBR에서의 구현 방식은 그저 반대되는 값으로 매끈함과 거칠기만을 표현하는 것이 아니며, 세부 구현 알고리즘에서 큰 차이가 있다.
위의 4가지가 PBR 개념에 대한 핵심 요소다.
두 가지 방식에는 각각 장단점이 존재하는데, 실사 지향 PBR은 재질이 금속인지 여부를 구별하기 때문에 다소 애매한 구석이 있는 비실사 지향 PBR에 비해 접근이 쉽지만 금속과 비금속이 겹쳐지는 부분에 뚜렷한 라인이 생기는 메탈릭 엣지 현상이 발생된다. 아무리 이미지에서 금속과 비금속의 영역이 칼같이 딱 맞아떨어지더라도 이미지 내부 보간이 발생하면 존재해서는 안 될 중간값이 발생해 버리고 이 중간값에 의해 해당 현상이 일어난다. 해결 방법은 금속인 부분과 그렇지 않은 부분을 완전히 분리하는 방법, 또는 이미지 해상도를 무식하게 키워내는 방법, 그것도 아니면 금속과 비금속이 접하는 부분에 블러를 적용하여 금속과 비금속 사이를 자연스럽게 이어나가는 방법이 있다.
비실사 지향 PBR은 금속이냐 아니냐라는 엄격한 구분을 짓는 것이 아니기 때문에 해당 문제에서 자유로우며 메탈릭에 비해 상대적으로 금속의 색을 컨트롤하기가 쉽고 심지어 정반사와 난반사가 다른 재질도 구현이 가능하다. 하지만 금속이냐 아니냐로 구별하는 메탈릭 방식에 비해 직관성이 떨어지며 다루어야 할 채널 수도 더 많기 때문에 접근성도 떨어진다.
3.1. 결론
비실사 지향 PBR(Specular/Glossiness)- 실제 물리적 현상인 빛의 난반사와 정반사라는 것이 있다는 개념을 구현
- 아티스트의 자유도가 높은 대신 직관성이 떨어짐
- 실사처럼 보이는 표현에 약한 대신 다소 과장되고 애니메이션 같은 느낌 등 비실사적인 다양한 표현이 가능함
실사 지향 PBR(Metalic/Roughness)
- 난반사와 정반사를 실제 빛이 물리적으로 작용하는 원리에 가깝게 구현
- 워크플로우가 간단하고 매우 직관적인 대신 아티스트의 자유도가 떨어짐
- 실사처럼 보이는 표현에는 매우 탁월하며 구현하기도 쉽지만 비실사적인 표현은 어렵고 구현하기가 까다롭고 어려움
이러한 차이점 때문에 언리얼 엔진과 유니티 엔진 같은 주요 게임 엔진들의 최신 버전에서는 두 가지 워크플로우를 동시에 다 지원하고 있다.
언리얼 엔진을 예로 들면, 머티리얼 에디터에서 베이스 컬러에 금속의 색을 제외하고 메탈릭과 러프니스를 비활성화하고 필요에 따라 광택 텍스처도 사용하며 스페큘러에 기존처럼 텍스처와 다양한 수치 조절을 통해 Specular/Glossiness 워크플로우를 사용할 수 있으며, 반대로 베이스 컬러에다가 금속의 색을 포함하고 메탈릭과 러프니스를 활성화해서 Metallic/Roughness 워크플로우를 사용할 수 있다.
언리얼 엔진 5를 사용하는 포트나이트에 있는 다양한 모드나 캐릭터들을 보면 한 화면에 실사처럼 보이는 캐릭터가 애니메이션처럼 보이는 캐릭터와 나란히 나오는 장면도 심심찮게 볼 수 있으며 배경에서도 실사처럼 보이는 환경에 애니메이션 같은 집이 있다거나 하는 맵들도 종종 볼 수 있다.
4. 오해
4.1. 노멀 매핑과의 관계
물리 기반 렌더링이 노멀 매핑보다 발전된 기법이라고 잘못 알려진 경우가 있으나, 노멀 매핑과 물리 기반 렌더링은 전혀 다른 별개의 분야다.노멀매핑은 노멀맵 및 범프맵 텍스처와 픽셀 단위 라이팅을 이용해 하이폴리곤 효과를 로우폴리곤에서 볼 수 있도록 한 기법이며, 물리 기반 렌더링은 레거시 렌더링에서 표면의 재질감을 손으로 음영을 텍스처에 직접 그려 양감을 표시하는 손맵 방식에서 알고리즘 방식으로 대체하는 기술이다.
노멀매핑은 하이폴리곤의 음영을 로우폴리곤에 입히기 위한 기술이다. 이는 단지 로우폴리곤으로 만들어진 저퀄리티의 표면을 하이폴리곤과 동일한 고퀄리티의 표면처럼 라이팅에 반응하게 만들어 줘서 디테일을 올려주는 역할일 뿐, 레거시 렌더링에서 물리 기반 렌더링으로 전환되는 재질 셰이딩의 대체와는 전혀 무관하다.
노멀 매핑 외에도 하이트맵을 이용해 이미지를 왜곡해서 시각에 따라 텍스처에 입체감을 주는 시차 매핑(Parallax Mapping)이나 시차 가려짐 매핑(Parallax Occlusion Mapping) 역시 레거시 렌더링 기법이 물리 기반 렌더링으로 대체되는 것과는 전혀 관계가 없는 별개의 기술이다.
노멀 매핑, 시차 매핑, 시차 가려짐 매핑 등은 물리 기반 렌더링과 동시에 사용 가능하며, 최신 게임들에서도 당연히 둘 다 동시에 사용되고 있다.
4.2. 레이 트레이싱과의 관계
노멀매핑과 물리 기반 렌더링의 관계처럼 물리 기반 렌더링보다 더 발전된 개념이 레이 트레이싱이라고 잘못 알려진 경우도 있다.레이 트레이싱은 단어의 뜻 그대로 광선을 추적하는 기법이며 광원에서 뻗어나온 빛이 표면에 닿는 대로 여러 번 반사해서 글로벌 일루미네이션을 비롯한 다양한 효과를 만들 수 있다. 레이 트레이싱을 사용하지 않는 현대의 실시간 그래픽에서는 별도의 계산으로 그림자를 만들어주지만 레이트레이싱을 사용한다면 빛이 닿지 않는 부분이 곧 그림자가 되므로 별도의 계산을 통해 그림자를 만들어 줄 필요가 없다. 그 외에도 현대 실시간 그래픽에서 표현하는 여러 가지 효과들을 조금 더 실제 빛의 반사효과와 비슷한 방식으로 구현도 가능하며 레이 트레이싱을 통해 여러 가지 효과를 만드는 것을 패스 트레이싱(Path Tracing)이라고 부른다.
하지만 위에서 언급된 노멀매핑과의 관계처럼 머티리얼이 레거시 렌더링에서 물리 기반 렌더링으로 전환되는 것과는 전혀 무관한 별개의 분야다. 레스터라이저(레이 트레이싱이 아닌 기존의 라이팅)에서 레이 트레이싱으로 전환되는 것은 라이팅의 동작 기법에 관한 것이고, 레거시 렌더링에서 물리 기반 렌더링으로 전환되는 것은 라이팅에 반응하는 표면의 재질을 결정하는 기법이다. 즉, "PBR보다 발전된 방식이 레이 트레이싱이다."라는 말은 완전히 틀린 말이다.
물론 성능이 무한대라면 광선 추적만으로 모든 재질을 표현할 수도 있다. 그럴 경우 텍스처를 기반으로 재질을 만들어내는 현대의 렌더링 기법이 완전히 사라지고 지오메트리를 매우 작게(모니터의 픽셀보다 훨씬 더 작게) 쪼개거나, 또는 복셀을 초고밀도(이 역시 모니터의 픽셀보다 훨씬 더 작게)로 만들거나, 아니면 전혀 다른 방식으로 예를 들어 원자 단위 등으로 3D 그래픽 구현한 다음 그 모니터의 픽셀보다 작은 각각의 표면(또는 원자 단위 등)마다 빛을 어떤 각도로, 어떤 파장을, 어떤 성질의 얼마나 반사할지의 정보를 모두 담고 있어야 한다. 하지만 이것은 애초에 말도 안 되는 발상이기 때문에 언급할 가치도 없다.
물리 기반 렌더링과 레이 트레이싱은 동시에 쓰일 수 있으며, 최신 3D 그래픽 렌더링에서는 당연히 둘 다 동시에 쓰인다. 결론적으로 물리 기반 렌더링, 노멀 매핑, 레이 트레이싱은 서로 완전히 별개 분야의 기술이며 셋 다 동시에 사용된다.
5. 예시
다음의 그림들은 언리얼 엔진 4에서 물리 기반 렌더링을 이용해 구현한 재질로 몇 가지의 예시를 보여준다.거칠기(Roughness)에 반비례한 전반사의 정도가 표현되는 것으로, 왼쪽 바닥 타일은 거칠기가 전혀 없는 표면이고 오른쪽 바닥 타일은 거칠기가 매우 강한 표면이다.
구형의 물체로 거칠기(Roughness)를 표현한 것으로, 왼쪽은 거칠기 값을 0.1, 중간은 0.5, 오른쪽은 0.9로 준 것이다.
구형의 물체로 금속성(Metallic)에 따른 정반사의 정도를 표현한 것으로, 왼쪽은 금속성이 없는 표면이고 오른쪽은 완전 금속성인 표면이다.
5.1. 사용한 엔진과 게임들
구분 | 엔진[10] | 게임 |
Legacy Rendering (고전적 렌더링/손맵) | id Tech 2 | 퀘이크 1, 퀘이크 2 및 해당 엔진 기반 게임들, 골드 소스 엔진(하프라이프 및 해당 엔진 기반 게임들) |
언리얼 엔진 1 | 해당 엔진 기반 게임들[11] | |
id Tech 3 | 퀘이크 3 및 해당 엔진 기반 게임들 | |
시리어스 엔진 1 | 시리어스 샘 1 및 해당 엔진 기반 게임들 | |
언리얼 엔진 2 | 해당 엔진 기반 게임들[12] | |
리스텍/주피터 엔진 | 쇼고, 블러드 2, 서든 어택, 블랙샷, 크로스파이어 등 해당 엔진 기반 게임들 | |
언리얼 엔진 3 | 해당 엔진 기반 게임들 | |
유니티 모든 버전 [13] | 유니티 엔진을 사용하는 수 많은 게임들 중에는 고전적 렌더링을 지향하는 게임들도 있다. | |
언리얼 엔진 4/5 이후 버전[14] | 언리얼 엔진을 사용하는 수 많은 게임들 중에는 고전적 렌더링을 지향하는 게임들도 있다. | |
그 외 2000년대 초반 시점 대부분의 엔진들 | 해당 엔진 기반 게임들 | |
Specular/Glossness PBR | 헤일로 1/2/3/4/리치 엔진 | 헤일로 1/2/3/4/리치, 스텁스 오브 좀비[15] |
언리얼 엔진 2 | 언리얼 챔피언쉽 2, 라이선시 작품은 스플린터 셀 3/4/5/6, 바이오쇼크 1/2, 트라이브스 벤젠스, 스와트 4, 브라더스 인 암스 1/2, 스타워즈 리퍼블릭 코만도, 뱅가드 사가 오브 히어로즈 등 해당 엔진 기반 게임들 | |
크라이 엔진 1 | 파 크라이 1 및 해당 엔진 기반 게임들 | |
id Tech 4 | 둠 3 및 해당 엔진 기반 게임들 | |
소스 엔진 | 하프라이프 2 및 해당 엔진 기반 게임들 | |
리스텍/주피터 EX 엔진 | 피어 및 해당 엔진 기반 게임들 | |
언리얼 엔진 3 | 기어스 오브 워 1/2/3/저지먼트 및 언리얼 토너먼트 3, 수 백개의 라이선시 작품들 | |
크라이 엔진 2/3 기반 게임들 | 크라이시스 2/3 및 해당 엔진 기반 게임들 | |
시리어스 엔진 2/3/3.5 | 시리어스 샘 2/3/HD 리메이크 | |
id Tech 5 | 레이지 및 해당 엔진 기반 게임들 | |
유니티 3.x ~ 4.x | 해당 엔진 기반 게임들 | |
언리얼 엔진 4/5 이후 버전[16] | 해당 엔진 기반 게임들 | |
2000년대 중반부터 2010년대 초반 시점 대부분의 엔진들 | 해당 엔진 기반 게임들 | |
Metallic/Roughness PBR | 언리얼 엔진 3[17] | 배트맨 아캄 나이트, 엑스컴 2/키메라 스쿼드, 킬링 플로어 2, 아웃라스트 2, 라이징 스톰 2, 인저스티스 2, 모탈컴뱃 X/11, 로스트 아크, 아스텔리아, 엘리온 등 |
크라이엔진 3.8/5[18] | 해당 엔진 기반 게임들 | |
언리얼 엔진 4/5 이후 버전[19] | 해당 엔진 기반 게임들 수천 작품 | |
유니티 5 이후 버전[20] | 해당 엔진 기반 게임들 | |
시리어스 엔진 4 | 탈로스 프린시플, 시리어스 샘 4 | |
헤일로 5/인피니트 | 헤일로 5/인피니트 | |
id Tech 6/7 | 둠 2016 및 해당 엔진 기반 게임들, 둠 이터널 | |
그 외 2010년대 중반 시점 이후 대부분의 엔진 | 해당 엔진 기반 게임들 |
[1] 빛이 흰색이면 흰색으로 반사, 빨강이면 빨강으로 반사, 파랑이면 파랑으로 반사된다.[2] 사실 이는 설명이 매우 부족한데, 빛에 대한 물리적인 현상을 좀 더 자세히 이해하려면 지나치게 내용이 길어지기 때문에 해당 사이트에 있는 청강대학교의 정종필 교수가 작성한 PPT를 참고하기 바란다.[3] 단색이나 그라디언트 같은 색상은 별도의 텍스처가 필요없고 수치 값으로만 적용 가능하다. 텍스처를 사용하든 수치 값을 사용하든 금속 재질 부분의 색상은 제외되고 검은색으로 통일된다.[4] 금속 재질 부분이 색상이 포함된다.[5] 단색이나 그라디언트 같은 색상은 별도의 텍스처가 필요없고 수치 값으로만 적용 가능하다. 텍스처를 사용하든 수치 값을 사용하든 금속 재질 부분의 색상도 포함한다.[6] 정반사의 색은 기본적으로 광원을 색상을 그대로 반사하므로 무색이다. 그래서 스페큘러 텍스처는 스페큘러를 표현하고자 하는 밝기의 정도에 따라 흰색부터 검은색까지의 색상으로 되어 있고 대부분은 중간 값인 회색조의 색상으로 되어 있다. 텍스처 대신 수치 값을 사용할 때도 무색으로 지정하나, 금속 재질 부분이 포함되는 경우에는 스페큘러 텍스처나 수치 값에 금속 부분의 색상을 추가한다.[7] 스페큘러 텍스처를 사용하지 않고 수치 값으로도 스페큘러 텍스처의 기능을 대체하지 않는다. 스페큘러 세기의 정도 값만 수치 값으로 설정한다.[8] 엄연히 따지자면 금속과 비금속 사이에 있는 준금속이란 물질이 있긴 하다.[9] 대표적으로 다이아몬드가 있다.[10] 나열 순서는 엔진의 공개 또는 사용이 가능한 버전의 배포일자, 해당 엔진을 사용한 첫 게임이 출시된 순이며, 엔진이 버전별로 다른 경우를 제외하고 시리즈가 연속으로 기재될 경우는 뒤의 시리즈 순서는 무시한다.[11] 마개조 거친 듀크 뉴켐 포에버 제외, 듀크 뉴켐 포에버는 Specular/Glossness 기반이다.[12] 엔진 등장 초기의 게임들은 고전적 렌더링이지만, 언리얼 엔진 2는 Specular/Glossness 기반 렌더링을 지원하기 때문에, Specular/Glossness 기반 렌더링을 구현한 게임들도 많이 출시되었다. 이 엔진을 사용한 본가의 언리얼 시리즈인 언리얼 토너먼트 2003/2004, 언리얼 챔피언십 1, 언리얼 2는 고전적 렌더링이며, 언리얼 챔피언십 2는 Specular/Glossness 기반 렌더링이다. 이 엔진을 사용한 대표적 게임 시리즈 중 하나인 스플린터 셀 시리즈 중 1, 2는 고전적 렌더링, 3 이후 작품은 Specular/Glossness 렌더링이다.[13] 1.x ~ 2.x 버전은 고전적 렌더링만 지원, 3.x ~ 4.x 버전은 Specular/Glossness 방식 지원, 5.x 버전부터는 Metallic/Roughness 방식도 지원한다.[14] 다양성을 위해 고전적 렌더링 방식도 지원한다.[15] 헤일로 1 엔진으로 개발된 게임이다.[16] 언리얼 엔진 4는 Metallic/Roughness를 표방 및 강조하며 등장했으나, 버전업 하면서 기존 Specular/Glossness도 여전히 지원한다. 광범위한 지원을 위해 실사 지향과 비실사 지향 렌더링을 모두 소화하고, 아티스트의 자율성과 다양성 및 편의성을 보장하기 위해서다. 게임의 특성과 아트의 지향점 및 추구하는 바전에 따라 Specular/Glossness 방식을 사용할지, Metallic/Roughness 방식을 사용할지 결정하면 된다.[17] 언리얼 엔진 3는 원래 Specular/Glossness 방식만 지원하지만, 언리얼 엔진 3에 Metallic/Roughness 방식 지원을 추가하는 것은 간단하므로, 2010년 중반대 이후에 언리얼 엔진 3 기반으로 출시한 게임들은 Metallic/Roughness를 사용했다.[18] 라이즈 선 오브 롬에 사용된 버전이 3.6이다. 엔진은 버전 넘버링을 없애고 CRYENGINE으로 발표했었으나 엔진의 버전 넘버는 실제로 3.6이었으며, 이후 3.8까지 업데이트가 됐다가 4.x 버전대 넘버링을 건너뛰고 갑자기 5.0으로 넘버링을 올렸다.[19] 언리얼 엔진 4는 기본적으로 Metallic/Roughness 방식의 렌더링을 지향하며 언리얼 엔진 4를 사용한 거의 모든 실사 그래픽 지향 게임들이 Metallic/Roughness 방식을 사용한다. 버전업 하면서 Metallic/Roughness 방식의 알고리즘이 지속 개선되고 있다. 5.0 버전 이후도 같은 기반의 엔진이므로 버전업하며 여러 가지 알고리즘이 개선되고 있다.[20] 유니티 5 버전은 Metallic/Roughness 방식의 렌더링을 표방하고 공개했다.