석류 작업노트

언리얼엔진_PBR 스페큘러/러프니스 의 차이 & Specular가 더이상 사용되지 않는 이유 본문

스터디/Unreal Engine

언리얼엔진_PBR 스페큘러/러프니스 의 차이 & Specular가 더이상 사용되지 않는 이유

석류! 2025. 1. 15. 04:53

 

사실 이번껀

지인들과 유니티 팀 프로젝트를 진행중인데

Smoothness(Roughness) 와 Specular 중 어떤걸 사용해야 하느냐는 질문에

나는 지금껏 해오던 대로 Smoothness(Roughness) 를 사용하고 싶다고 말하려 했지만

그 이유를 정확하게 대답해주지 못해서

나도 궁금해가지고 이렇게 자료를 찾아서 정리하려고 글을 쓰게 되었다.

 

 

PBR 텍스쳐 자체를 설명하는 데이터는 여러종류가 있지만

이번엔 결론적으로 Glossiness/Specular 와 Roughness/Metallic 중

어떤것을 사용하는것이 유용할지 에 대해 이야기 할 것이기에

Basecolor / Roughness / Specular / Metallic 에 대해서만 다룰것이다.

 

- BaseColor

우선적으로 PBR텍스쳐에선

물체가 가지고 있는 색 자체를 표현하는 방식이 있는데

Albedo Diffuse 방식 2개로 나뉘어진다.

 

Diffuse 방식은 이전의 손맵,실사 방식에서 사용되었습니다.

물체의 고유 색상을 포함하여 AO , 하이라이트 , 반사 , 그림자  등등

작업자의 질감표현 묘사가 들어가 있으며

과거의 손맵에서부터 게임 개발 텍스쳐 등등에서 주로 사용된다.

 

Albedo 방식은 이전에 표현하고자 함의 이미지를 위해 텍스쳐에 묘사를 넣어주었다면

PBR방식이 발전하면서 오로지 물체를 표현하는 고유의 데이터 만으로 랜더링하며

그 어떠한 묘사가 들어가지않은 고유의 색상 데이터만을 표현하고있다.

 

덕분에 물체 자체를 정확하게 표현하고자 하면 이 방식을 사용할 수 있겠지만

묘사표현, 질감표현묘사 등등이 빠져있어

심심해보이고 단순해보일 수도 있습니다.

 

 

- Roughness ( Glossiness , Smoothness )

 

Roughness 는 물체의 표현이 얼마나 거칠고 부드러운 정도를 정의하는 데이터입니다.

 

물체의 표면이 평평하다면 빛이 물체에 닿았을 때 일정하게 같은각도로 반사되어

거울처럼 깔끔하게 반사되는 것을 알 수 있다

 

그러나 물체의 표면이 거칠어 표현이 울퉁불퉁하다면

빛이 닿았을 때 사방으로 흩어져 반사된 표면을 뿌옇게 보게된다.

 

참고로 Roughness 와  Glossiness ( Smoothness ) 는 반전된 데이터를 가지고있으며

과거의 흔적 ( 과거의 3dsmax 머테리얼 ) 에서 Glossiness 를 찾아볼 수 있으며

유니티 또한 Glossiness를 따라 Roughness의 반전된 맵 ( Smoothness ) 를 사용하고있고

언리얼엔진이나 최근의 랜더링 툴에선 Roughness를 사용하고있다.

 

Glossiness, Smoothness, Specular Power는 과거에 사용하던 용어 흔적이라 보면 된다.

 

- Metallic

메탈릭맵은 해당 표면이 전도체인지 절연체인지 ( 금속인지 비금속인지 )

구분해내는 역할을 합니다.

전도체 재질은 albedo 색 없이 반사되는 경향이 있으며

금속값이 1에 가까워 질 수록 albedo 색을 거의 잃고 주변만 반사됨을 알 수 있습니다.

 

메탈릭은 0 혹은 1 로만 제한하여 사용하는 경우가 태반입니다.

그러한 원론적인 이유는  세상엔 비금속이거나 금속인 재질 단 두 종류만 존재하기 떄문입니다.
(아닌경우가 있는데 저마늄과 실리콘이 준금속이라고함.  우린 알 필요없는 내용 )

 

하지만 우리는과거에 3d를 처음 배울때 스페큘러가 강하게보이고 더 디테일있게 표현하기위해

임의로 메탈릭을 올리는 경우가 있었는대

 

메탈릭값이 올라간다는건 디퓨즈가 어두워지게 되고

이는 결국 GI가 어두워져서  어두운곳의 라이팅이 지나치게 어두워지는 결과를 야기할 수 있다.

 

결론적으론 물리적으로도 메탈릭값은 0 또는 1만 존재할 수 있으며

임의로 다른 값을 사용하게 된다면 문제를 야기할 수 있다.

 

 

- Specular

 

Specular는 빛이 물체에 반사되어 나타나는 하이라이트를 의미하는데

Specular map은 물체에 빛이 부딪혀 반사되는 빛의 양이나 범위 , 색을 조절할 수 있습니다.

기본적으로 스페큘러는 0.5 값을 사용합니다.

 

물체를 살펴보다보면 하이라이트에 맺히는 색이 다른데

이는 표면의 전자에 따라 나뉘고

이에 따라 금속(전도체)비금속(절연체)로 나뉜다.

 

전도체는 표면에 자유전자 라는것이 있다.

이는 표면에 빛이 들어오면 에너지 레벨이 높은 전자가 되어

특정 가시광선 대를 흡수하여  금속마다 고유한 파장이 다르기에

그렇기에 금속표면은 금속마다 다른 메탈 고유의 색을 가지게 된다.

 

그렇기에 금속인 경우엔 선명하고 다채로운 스페큘러 맵을 사용해야 합니다.

 

 

그러나 절연체인 경우엔 표면에 자유전자가 없기에

빛에 따른 명도차이만 발생합니다.

그렇기에 금속에 비해 스페큘러가 광원의 색에 따라 관찰되며 ( 흰 광원이면 흰 스페큘러 )

회색조이고 흐릿해야하게 사용됩니다. ( 0.5로 사용되는 이유 )

 

Specular 맵을 사용한다면 각 금속마다 고유한 반사색이 있으며

위 표에 따라 고유한 스펙큘러 값을 사용해야합니다.

 

- 결론  :  Metallic 과 Specular 의 연관성

언리얼엔진은

메탈릭이 1이 되었을 때 Basecolor의 색상이 Specular로 사용하는걸로 대체하여

Specular 맵을 더이상 참조하지 않습니다.

Specular 값을 어떤 데이터로 입력하여도 영향을 미치지 않는것을 확인할 수 있습니다.

 

결론적으로 

비금속일땐 0.5의 회색조 Specular를 사용하고

금속일땐 베이스컬러의 색을 참조하여 스페큘러로 내뿜기에

스페큘러 값을 조절할 일이 없어집니다.

 

그렇기에 스페큘러 맵을 하나하나 조정하는건 과거에 반사되는 색을 조절할 때에나 사용되었지

그 역할을 엔진이 대신 계산해주기에

과거의 유산이라고 불리며 더이상 큰 신경을 쓰지않아도 되는것을 알 수 있습니다.

 

결론! 스페큘러를 사람이 조절하는건 과거의유산

 

 

 

 

참고자료

 

https://driftmind.tistory.com/87

 

PBR과 Diffuse와 Albedo

- PBR : Physically Based Shading (물리 기반 쉐이딩)└ 어떤 메터리얼이든 이것만 가지고 표현 가능└ 전에는 나무나 금속, 천에 대한 쉐이더가 각각 필요 했지만 PBR에선 필요 없음└ 하나의 쉐이더로

driftmind.tistory.com

Albedo 와 Diffuse 차이

 

https://m.blog.naver.com/garmede/220027649059

 

PRB 스펙큘러 간단 정리

PBR 관련해서 툴들도 많이 나오고 이미 사용하는 게임들도 다수 나온 상황에서 몇 가지 혼란이 오길래 ...

blog.naver.com

( 결론적으로 스페큘러를 잘 건들이지않는 이유 )

 

물리 기반 머티리얼 | 언리얼 엔진 4.27 문서 | Epic Developer Community

언리얼엔진의 공식 

 

https://chulin28ho.tistory.com/13

 

ShaderFX를 이용한, 그래픽 디자이너를 위한 기초 쉐이더 강좌 5강

1. ShaderFX 메터리얼 자... 지금까지 배운 것들을 잠깐 정리해 보겠습니다. a. 칼라 노드를 만들 수 있게 되었습니다. 원하는 칼라가 출력되는 노드를 만들 수 있게 되었습니다. b. 텍스쳐 노드를 만

chulin28ho.tistory.com

PBR랜더 테스트

 

https://caresser.tistory.com/36

 

[Texture] PBR Texture / PBR텍스쳐란 무엇인가?

PBR : Physical Base Rendering namu.wiki/w/%EB%AC%BC%EB%A6%AC%20%EA%B8%B0%EB%B0%98%20%EB%A0%8C%EB%8D%94%EB%A7%81 물리 기반 렌더링 - 나무위키 물리 기반 렌더링(Physically Based Rendering, PBR) 또는 물리 기반 셰이딩(Physically Based

caresser.tistory.com

PBR 텍스쳐 별 역할

 

https://kimyc1223.github.io/blog/2024/03/12/TechPost.html

 

Texture / map 정리

KimYC1223 개발 블로그

kimyc1223.github.io

PBR 텍스쳐 별 역할

 

https://xtar.tistory.com/36

 

난반사광(Diffuse Reflection)과 정반사광(Specluar Reflection)

빛의 반사는 대표적으로 2가지로 난반사와 정반사를 볼 수 있다. 난반사는 빛이 표면에 닿을떄 여러 방향으로 퍼져나가는 빛을 말한다. 정반사는 입사-반사의 법칙에 의해 반사되는 한방향으로

xtar.tistory.com

난반사 정반사 Roughness 설명

 

https://blog.hybrid3d.dev/2020-06-03-metallic-between-0-and-1

 

0과 1 사이의 PBR 메탈릭

PBR에서 메탈릭은 0과 1로만 두는 것이 정법이다. 0이나 1사이 값을 사용하지 말라는 가이드를 하기도 하는데 현실적으로나 물리적으로나 그렇게 옳은 가이드라고만 하긴 힘들다. 메탈릭을 무분

blog.hybrid3d.dev

Metaillic

 

https://prooveyourself.tistory.com/13

 

Unreal에서의 Metallic 표현

왼쪽부터 Metalic 0.0 ~ 1.0 BaseColor 색은 모두 0, 0, 1 Roughness 0.32 색만 진해지는 것 같지만, 자세히 보면 스페큘러의 양상도 다르다. Diffuse Color 는 메탈릭 재질에 따른 색상의 변화가 있음. (Metalic = 1.0

prooveyourself.tistory.com

Unreal engine 에서의 Metallic

 

https://www.a23d.co/blog/pbr-textures-metallic-vs-specular-workflow

Metallic vs Specular

 

https://m.blog.naver.com/cccani/221233015525

 

[머테리얼Material]스펙큘러 맵 Spacular Map 이해

원글 출처 http://www.manufato.com/?p=902 우리가 물체를 인지하는 건 빛이 있고 반사가 있기 때문...

blog.naver.com

Specular에 대한 설명

 

https://polycount.com/discussion/132714/what-does-the-specular-channel-in-ue4-actually-do

 

What does the Specular channel in UE4 actually do.

I am doing some experimenting with materials in UE4, and it is straight forward enough to understand, but to me it feels like their metalness workflow is limiting compared to how Marmoset does it.

polycount.com