디자인툴/Blender

블렌더의 새로운 "궁극의" 셰이더 Principled BSDF 사용 방법

게으른버터 2020. 11. 18. 00:49
반응형

 

 

블렌더의 새로운 "궁극의" 셰이더 Principled BSDF 사용 방법

Fresnel의 개념은 물체의 가장자리 부분에서 즉,

보이는 면의 각도가 더 가파른 부분에서는 반사를 더 많이 한다는 개념;

바로 내려다 보는 부분보다 빛이 더 많이 반사된다는 것 .

 

 

 

구슬을 생각해보면 구슬의 가장자리 부분은 100%빛을 반사한다.

중앙으로 가까워 질수록 2~5%정도만 반사한다.

이건 다른 모든 물체서도 똑같다.

모든 물체에는 Fresnel이 있다.

 

호수를 보면 더 잘 알 수있다.

호수의 먼곳을 보면 반사된 물체들이 선명하게 보이고

나 자신쪽으로 가까운 물일수록 물속이 보여지게 된다.

이게 바로 Fresnel이다.

 

그리고 Fresnel은 모든 물체에 다 있다.

각도가 변하면 반사율이 달라진다.>

가장가리로 갈 수록(각도가 높아질 수록) 반사를 더 많이 한다 >

그래서 기존에 메터리얼을 만들던 방식은 Diffuse와 Glossy를 우선 추가하고 섞어 주는 방식이였다.

그래서> Fresnel이 없었다.

 

물체의 중앙쪽 반사율이 가장자리의 반사율과 같았다.> Fresnel을 고려하지 않은 방식

하지만 Principled BSDF를 사용하면, 자동으로 Fresnel이 적용된다.

그냥 알아서 다해줌 머테리얼이 가지는 값들에 근거하여 정확한 Fresnel을 준다.

Proper Roughness 이것도 Fresnel과 관련이 있다.

Roughness가 클 수록 Fresnel을 덜 보게 된다.

나무공의 경우 있긴하지만 확실하게 나타나지 않는다.

왜냐하면 매우 거친 표면이니까 그래서 기존 방법에서 Fresnel을 추가하고 ,

Rougheness를 주면 서로 상호작요하지 않는다.

거칠어져도, Fresnel이 줄어 들지 않는다.

하지만 Principle shader를 사용하면 Fresnel이 자동 적용되서 걱정 안해도 된다.

 

 


Metalness workflow

지구상의 재질은 두가지로 구분할 수 있다.

Dielectrics(유전체)와 Metals(금속)

 

유전체는 현실의 90%를 차지 섬유,세라믹, 플라스틱, 페인트

빛이 조금이라도 확산(Diffuse)한다면,

걸 유전체라 한다.

 

금속은 현실의 10%정도,

아무 금속이나 다 해당.

 

이 두개로 구분 지을 수 있는 근거는

두 종류의 머테리얼에서 빛이 다르게 행동한다는 것이다.

유전체는 빛이 표면에 닿으면 빛의 일부는 바로 반사되고 나머지 빛은 굴절되고 산란된다.

그게 확산(Diffuse)의 요소가 된다

그에반해 금속은 빛을 반사하기는 하지만.

굴절된 빛은 물질에 모두 흡수된다.

그래서 금속에서는 확산을 볼 수 없는것 이다.

그리고 또 하나의 차이점은

금속은 반사에 색깔을 가질 수 있다.

유전체 머테리얼에서는 반사에 색이 있으면 안된다.

그래서 예전에 머테리얼 노드를 짜면 복잡하지만

Principle Shader로하면 한가지만 조절하면 된다.

 

바로 "Metallic"설정

 

유전체를 원하면 값을0,

 

금속을 원하면 100으로 지정한다.

하지만 이건 0or1으로 지정해 줘야한다.

머테리얼은 유전체 아니면 금속이기 때문이다.

중간값은 있을 수 없다.

 

 


 

그래서 Principle shader에서 우리가 재질 셋팅할 때

무엇을 먼저 만져야하는데?

우선 Subsurface는 인체 피부를 표현하는 것에 필요한거라, 잘 안쓰임.

빛이 표면속으로 들어가는 그런것 표현할때 쓰는거라 대부분의 물체에는 필요없다.

그래서 위에 Subsurface와 관련된 3가지 는 제끼고.

 

확실히 알아야 할 것은 4가지이다

1.Base color

2. Metalic

3. Roughness

4. Normal

 

 

1.Base color

쉐이더의 색깔을 말함,

텍스쳐가 들어가는 곳이기도 함

예를 들어 Textures.com에서 다운받은 텍스쳐를

대부분 BaseColor에 넣게 된다.

 

 

2. Metalic

금속은 아까 Metalness workflow에서 말했던 내용

모든 물질은 두 종류에 속한다는 것.

유전체이거나, 금속이거나

Metallic을 금속 페인트 같이 생각하지 말라.

금속이거나 , 아니거나로 이분법적으로 생각하라.

0아니면1이다.

중간값은 가지는 일은 정말 드물다.

 

 

3. Roughness

이 값은 아주 많이 쓰게 된다.

이 값이 물체의 반사와 관련된 특징들을 대부분 결정하게 된다.

왜냐면 이 값이 0이면 선명한 반사를 갖게 되고.

1이되면 부드럽게 반사가 될 것이다.

 

Q.왜 Specular는 왜 4가지 안에 안들어가나요?

Specular는 사실 변하면 안 되는 값이다.

현실적인 걸 추구한다면.

왜냐면 이건 이미 0.5의 값을 가지고 있다.

굴절률 1.5를 가진 물체에서 정확한 값이다.

그리고 대부분의 유전체는 굴절률이 1.5이다.

그래서 반사율을 없애고 싶으면 Roughness를 올리는 방법을 써야한다.

왜냐하면 모든 물체에는 심지어 나무도 반사가 있어야 하니까.

 

Specular Tint도 만질필요 없다.

반사 빛에 Basecolor를 넣어 주는건데.

유전체는 반사에 색깔을 가지면 안되므로!

이건 금속에서만 나타나는 성질이다.

그렇다면 금속일떄 이 값을 올려야 겠네?

NONO~

Metalic을 올려 금속으로 설정하면

Principle Shader에선 저절로 적용이된다.

그래서 이 값을 바꿔도 아무 일도 일어나지 않는다.

그러므로 Specular Tint도 건들필요없다.

 

그리고 맨위에 Multiscatter GGX와 GGX셋팅은 그냥 건들지 마라

별차이없다.

더많은 산란이 된다하는데,

음...실제 렌더에서별차이 없다.

 

Anisotropic

이건 프라이팬 같은 것들에 사용

프라이팬 뒷면을 보면 원형으로 반사가 된다.

몇몇 물체는 이런 쭉 뻗은 반사가 있다.

그 딱 한가지 경우에만 이걸 사용한다.

평소에는 사용할 이유가 전혀 없다.

그리고 이 값은 Anisotropic Shader와 똑같다.

이방성, 회전등등 그래서 이건 거의 쓸 필요가 없다.

빛이 방향성을 가지므로

그래서 요건 Tangent노드와 연결하여

빛의 굴절 방향을 조절할 수 있다.

 

Sheen, Sheen Tint 이건 섬유에서 대부분 쓴다.

 

Clearcoat

현실의 물질들 중에서 2개의 층을 가진 것들

좋은예는 금속성 자동차 페인트 금속이며,

Roughness가 약간 있음

이렇게만 있으면 반사가 선명하지않음,

여기에 Clearcoat를 올려주면

실제 자동차 페인트처럼 반사가 선명해진다

 

Normal 머테리얼 자체에 범프 맵을 넣는것,

Clearcoat Normal Normal에 범프넣고

Clearcoat Normal에 하나 더 넣을 수 있다.

예 코팅된 나무 바닥같은겨우에 씀> 나무의 울퉁불퉁함+ 코팅의 스크레치 같은것

 

IOR과Transmisson끼리는 관련이 있다.

IOR을 바꿔도 아무 반응 없는데?

이 값은 Transmission하고만 관련이 있어서이다.

Transmission이 꺼져있다면 IOR을 건드려도 아무 변화도 없다.

그래서Transmission을 켯는데 여전히 아무 반응이 없다?>

Metalic이 1이라 그런것 유전체에서만 적용된다.

그리고 컬러는 화이트로 해줘야한다.

왜냐하면 Transmission이 1이고, Metalic이 0이면

Glass쉐이더와 같은것이다.

Roughness0, Clearcoat 0으로 제거하면

완전히 Glass쉐이더와 같다.

 

실전예제 텍스쳐를 https://www.poliigon.com/texture/2423 에서 받는다.

Image Texture 노드를 생성하고.

텍스쳐를 불러온다.

처음 넣을건 컬러텍스쳐

가끔 Diffuse 또는 Albedo텍스쳐라고도 한다,

어쨌든 컬러맵을 불러온다.

Image Texture의 Color Output to Principle BSDF Base Color Intup에 연결

그다음 두번째 Image Texture 노드 생성하고

Metalness 맵을 불러온다.

그리고 Image Texture노드의 설정을

색깔과 상관 없는 맵이므로 Non-Color Data로 셋팅한다.

그리고 Color Outpu to Metallic Input에 연결

금속은 Diffuse와는 관련없다.

금속에 먼지나 녹이 쓸었을 때(부분만 유전체)나

그 부분에만 Diffuse가 적용된다.

이렇게 맵을 먹이니 Diffuse부분을 제외하고 금속성질이 되었다.

 

다음으로 Image Texture를 생성 적용하는건

Roughness맵을 불러와서 Color Output을 Roughness Input으로 연결한다.

그다음 Image Texture생성하고

노말맵을 불러온다.

만약 머테리얼이 Displacement와 Normal맵을 두개다 가지고있다면,

둘다 쓸필요 없다.

사실 같이 쓰면 안된다.

둘중에 하나만 써야한다.

일반적으로 평평한 경우에는 그냥 노멀맵만 쓴다.

흙이나 땅처럼 울퉁불퉁한게 많은 경우에는 그 때 Displacement를 쓴다. >

메쉬의 위치를 조절해야 하는 경우에 해당

그래서 불러온 노말맵노드를 Normal Input에 넣으면 이상해진다.

중간에 Normal Map노드를 연결해줘야함

Strength를 올리면 녹슨것처럼 보인다.

 

 

 

https://www.youtube.com/watch?v=4H5W6C_Mbck&feature=youtu.be&ab_channel=BlenderGuru

이 내용은 블랜더 구루님의 강의를 토대로 공부용으로 기록한 것 입니다.

반응형