스카이림 SE ENB/ENB 가이드

스카이림 SE ENB ENB 가이드 6) enbseries.ini 분석 2편, ENB의 Effects 들의 역할을 알아보자

해골밣아사망 2021. 8. 5. 01:35

ENB의 EFFECT 들의 역할이 무엇인지 알아보자. 

 

 

 


1. ENB의 Effects 의 탭은 ENB의 주요 메인 기능 중 하나이다.

 

ENB의 기능을 설명했던 예전 그림을 불러와보겠다. 

 

 

위 그림은 ENB 바이너리라는 기반 위에, 날씨 파라미터, 기본 파라미터, 쉐이더로 구성되어 있다는 것을 의미한다.

날씨 파라미터가 무엇인지는 지난 가이드에서 다음과 같이 정리하였다.

 

""_weatherlist.ini 에서 날씨 코드와 ini 파일을 연동시킨 다음에 인게임 Weather Windows에서 광원 수치들을 조정하면 되며, enbseries.ini 창에서 특정 파라미터에서 IgnoreweatherSystem을 해제한 경우 그 파라미터는 Weather Window의 정보를 가지게 된다.  이것들이 날씨 파라미터와 기본 파라미터이다.""

 

ENB의 Effects 들은 3가지 구성 요소들 중 나머지 하나인 쉐이더를 연동시키는 항목이다.

 


2. ENB의 EFFECT 의 위치.

인게임에서 ENB GUI를 열고 enbseries.ini 에서 위 사진에서 표시한 곳에 위치한 것이 Effects 이다. 픽호 ENB를 예시로 가져왔다.

 

활성화 시킨 Effect들이 있고 아닌 Effect 들이 있다. 여기서 이펙트를 키고 끔으로써 사양 조정을 할 수도 있다. 

하나 하나 정리해 보겠다.


3. 오리지널 시리즈 

오리지널 시리즈란 여기 3개의 효과를 통칭한다.  

○ UseOriginalPostProcessing : 

약칭 오리지널 프로세싱 스카이림 자체 후처리 쉐이더를 사용한다는 것

이게 체크되어 있지 않다면 ENB 구성 항목 중 enbeffect.fx 에 적힌 후처리 쉐이더를 기본으로 사용한다는 것이다. enbeffect.fx는 ENB의 쉐이더 중 가장 기초적인 것이다. 

 

UseOriginalObjectsProcessing :

약칭 오리지널 오브젝트, 스카이림 자체의 오브젝트 렌더링을 사용한다는 것.  

 

UseOriginalBloom :

약칭 오리지널 블룸, 스카이림 자체의 블룸 효과를 사용한다는 것.

 

 

당연히 위 3개는 매우 매우 구리다, 사용하지 않음 

왼쪽 ,픽호 바닐라에서 오리지널 시리즈 OFF, 오른쪽  오리지널 시리즈 ON 한 상태.

 


4. 그 외 나머지 EFFECTS 항목들 

EnablePrepass : 약칭 프리패스, ENB 구성 파일 중 enbeffectprepass.fx 에 적혀 있는 쉐이더를 사용한다. ENB 종류마다 차이가 주로 있지만, 이 항목에서는 태양빛 후킹, 캐릭터의 피부 후킹을 지원하기 때문에, 피부 또는 하늘,태양과 관련된 쉐이더를 개발할 수 있으며, 보통 태양빛을 더 강하게 한다든지 피부질감을 조절할 수 있다.

그러나 피부질감 같은 경우 밑에 있는 SurfaceScattering이 더 뛰어나기 때문에 보조적으로 사용하는게 좋다. 

ENB에 따라서 기능이 매우 천차만별이다.



EnablePostPassShader : 약칭 포스트 프로세싱, ENB 구성 파일 중 enbeffectpostpass.fx 에 적힌 쉐이더를 사용한다.

이 항목은 주로, 샤프닝(선명화), 레터박스, 블러(흐림 효과), LUT (색프로파일), 렌즈 효과 등 리쉐이더의 테크니컬러 등  포토샵의 필터 기능과 비슷한 것들이 주로 들어간다.

ENB에 따라서 기능이 매우 천차만별이다.


EnableAdaptation : 약칭 어뎁테이션.  ENB 항목 중 enbadaptation.fx 에 적힌 쉐이더를 사용한다, 위의 UseOriginalPostprocessing을 체크하면 작동하지 않는다. 이 기능은 밝은 곳을 보면 어둡게 밝기를 조절하고 어두운 곳을 보면 밝기를 밝게 하는 기능이라고 이해하면 쉽다. 이는 스카이림에서 밝기가 다른 오브젝트들을 게임 내에서 일정한 밝기 범위 내로 제한시켜 출력하게 해준다.  ENB에서는 최적화를 위해서 풀 스크린에서 256x256으로 다운스케일 한 다음 연산한다 (정확하지 않을 수 있음). ENB에 따라서 기능이 매우 천차만별이다.

 


EnableBloom : 약칭 블룸, ENB 구성 파일 중 enbbloom.fx에 적힌 쉐이더를 사용한다. 빛번짐 효과라고 이해하면 된다. 화면 전체를 스캔한 다음, 알고리즘에 따라서 밝다고 생각되는 부분에 대해서 빛번짐을 구현한다.  아래 그림을 참고하자. 

이 기능은 화면 전체에 뽀샤시 효과를 주기 위해 사용하는 ENB가 있으며 (Mythical ENB)

자연스러운 광원을 연출하기 위해서 사용하는 ENB가 가 있기도 하고 (픽호 ENB, 또는 Re-engaged ENB, Rudy 등)

밝은 오브젝트를 더 강조하기 위해 화면 전체가 아니라 일부에 집중해서 제공하는 ENB가 있다 (사일런트 호라이즌)

 

개인적으로 화면 전체에 잘 뿌려주면 환경이 이뻐진다, 하지만 불뽕맛이 약해지는 단점이 있다. 그래서 블룸 이펙트는 1개가 더 있어서 2가지 효과를 겹치게 한다면 이상적일 것 같다, 하지만 그것은 Reshade 같은 것을 사용해야 한다. 

 

픽호 ENB에서 Kawase Bloom 을 선택하고 강도를 올린 사진, 빛번짐이 높아져 뽀샤시 효과가 눈에 띈다. 



EnableLens : 약칭 렌즈, ENB 구성 파일 중 enblens.fx 쉐이더 파일을 사용한다. 화면 전체에 카메라의 렌즈에 생기는 효과들을 구현한다. ENB에 따라서 기능이 매우 천차만별이다.


EnableDepthOfField : 약칭 DOF, ENB 구성 파일 중 enbdepthoffield.fx 쉐이더 파일을 사용한다,  Depth에 따른 흐림 효과를 준다. Depth라는 것은 게임 내에서 자신을 카메라라고 해보자, 그럼 카메라가 Depth 가 0이다, 카메라에서 부터 멀리 있을 수록 Depth는 0 이다.  아래 그림을 참고하자.

Depth는 실험으로 알아낸 바에 따르면 1 부터 ~10000 까지 있으며, 대부분의 오브젝트들은 1000 범위 내로 표현된다, 1000 범위 이후에 있는 것들은 수평선, 구름, 하늘 텍스쳐 등 특수한 텍스쳐이다. 

이 Depth 값을 인식하여, 카메라로부터 멀리 떨어진 곳에 흐림 효과를 입혀서, 현실의 카메라의 포커스 뒤의 보케 효과와 비슷한 것을 제공한다. ENB에 따라서 기능이 매우 천차만별이다.

Depth의 개념을 이해할 수 있게 과장한 영상, Dethp라는 것은 카메라 앞에서 부터 수직으로 자른 단면이 어마만큼 떨어져 있는지 이야기 한다.


EnableAmbientOcclusion : 약칭 SSAO_IL 약자로 많이 쓴다, SS는 Screen Space의 약자이고 AO는 Ambient Occlusion의 약자이고 IL, Indirect lighting 의 약자이다. 2가지 쉐이더 하나로 합쳐져서 동시에 작동한다.

해석하면 다음과 같다 : SSAO_IL = Screen Space Ambient Occlsion, Indirect Lighting,

화면상에 (Screen Space) 주변 폐색(Ambient Occlusion) 과 간접 광원 (Indirect Lighting)을 뿌려주는 쉐이더. 

AO의 기능은 세부 그림자 정도로 이해하면 쉽다. 

 

AO : 주변 폐색의 예시, 수치를 크게 늘려 과장하였다, 왼쪽이 OFF 고 오른쪽이 ON 이다, 오브젝트 사이 좁은 공간에 그림자가 졌다. 
IL : 간접 광원의 예시, 수치를 크게 늘려 과장하였다, 왼쪽이 OFF 이고 오른쪽이 On 이다, 오브젝스 사이 공간에 광원 효과가 생긴다. 



EnableProceduralSun : 태양을 강하게 표현하는 추가 이펙트를 토글한다, 이 수치는 단순히 밝게만 하는 것이 아니고 여러 쉐이더들과 상호작용을 한다. 

 

왼쪽이 ON 오른쪽이 OFF, 바닐라 날씨의 경우다, 일부 날씨모드의 경우 해 밝기를 미친듯이 올려놓는 경우도 있어서, 날씨모드에 따라 이 수치를 조정해줘야 한다. 



EnableDistantShadow : 원경에 그림자 효과를 추가한다. 솔직히 잘 모르겠다, 산 쪽 능선에 세부 그림자를 잘 보면 티가 나긴 한다. 



EnableDetailedShadow : 세부적인 그림자를 추가한다 SSAO와 다른 종류의 그림자이다, 조절이 불가능하다.

 

왼쪽이 ON 오른쪽이 OFF 상태다, 스카이림 자체 엔진으로 구현할 수 없는 그림자를 추가한다, 잔디에서 차이가 도드라지게 난다. 



EnableCloudShadows : 해가 구름에 가리면 광원이 줄어드는 구름과의 상호작용을 구현한다,  뭔가 좋아보이지만 막상 써보면 얘만큼 애매한 효과가 없다, 단순 체크하면 적용이 되지 않고, 체크 후 저장 후 Apply 를 눌러야지 적용된다.

거의 모든 ENB에서 사용하지 않는다, LE 에서는 이쁘다고는 하는데 SE에서만 유독 안 좋은건지는 모르겠다.  굳이 스크린샷을 찍진 않았다, 애매한 것도 애매한 것인데, 피부 질감을 아에 작살내놓는다. 



EnableImageBasedLighting : 오브젝트에는 텍스쳐 파일이란 것이 있다, 그 텍스쳐파일의 반사 수치(텍스쳐는 잘 모른다) 같은게 있는데 이 수치에 따라서 빛이 반사되는 것을 구현한다, 그래서 imageBaseed - 이미지를 기반으로 한 - Ligtning 이라는 뜻이다.

 

왼쪽이 ON 오른쪽이 OFF, 수치를 매우 과장하였다. 왼쪽을 보면 빛이 반사되어 추가적인 하얀 빛을 형성한다. 

이 효과를 비오는 날씨에서 잘 커스텀하면 질척질척한 효과를 낼 수 있으며, 눈 오는 날씨에 적용하면 눈이 뭔가 쌓이는 연출을 할 수 있다. 



EnableSkinSpecular : 이건 피부에 특수한 빛 반사 효과를 추가한다, 가끔 눈에 띄는 정도다.

 

왼쪽이 ON 오른쪽이 OFF 이다, 왼쪽 뺨을 보면 빛 반사가 나타난다, 저렇게 눈에 띄는 것은 스크린샷을 찍기 전에 횃불과 같은 광원을 얼굴에 들이 밀었기 때문이다. 평상시에는 거의 눈에 띄지 않는다. 

 


 

EnableSubSurfaceScattering : 일명 SSS, 피부 질감이다, SubfaceScattering 이라고 한다, 이것을 키면 캐릭터의 피부에 반사광을 추가하여 사실적이고 생기있게 보이게 한다, 피부에 주요 영향을 끼치지만 일부 담쟁이 덤쿨도 이 항목에 영향을 받는다. 

 

왼쪽이 ON 오른쪽이 OFF 이다, 피부 발색 정도가 한눈에 봐도 다르다, 남캐가 아니라 여캐 텍스쳐들은 반사 수치가 높고 뽀샤시한 게 많아서 차이가 훨씬 극심해진다,

 



EnableSkylighting : 그늘진 곳의 그림자를 더 짙어보이게 한다.

이 그림자는 SSAO 와 Detailed Shadow와 다른 종류이며 Skylighting으로 밖에 조절이 되지 않는 그림자들이다. 

왼쪽이 ON 오른쪽이 OFF 이다 수치를 매우 과장하였다, 왼쪽에 한눈에 봐도 그림자가 짙어진다. 


EnableDirectionalSkyLighting : Skylighting의 품질을 올린다, 그닥 효과는 모르겠다.

 

 



EnableComplexFireLights : 불 (주로 화염 마법) 쪽에 추가적인 광원 효과를 발생시킨다. 사양을 많이 쳐먹어서 보통 꺼놓는다.

 

왼쪽이 ON 오른쪽이 OFF 이다 수치를 많이 과장시켰다. 추가적인 화염 이펙트가 생성되고 주변 광원 또한 생겼다. 



EnableComplexParticleLights : 촛불과 같은 오브젝트에 추가적인 광원 효과를 발생시킨다.

왼쪽이 On 오른쪽이 OFF 이다, 수치를 많이 과장시켰다, 추가적인 광원을 형성시킨다. 



EnableSunRays : 태양빛이 오브젝트를 통과할 때 빛 갈라짐 효과를 제공한다.

스카이림 자체 갓레이 효과하고 비슷하게 생겨서 혼동을 하는 사람이 가끔 있다. 

EnableProceduralSun 수치가 높을 수록 강해진다. 

왼쪽이 ON 오른쪽이 OFF 이다 



EnableVolumetricRays : 하늘에서 태양빛이 산란하는 효과를 제공한다.

이는 위의 EnableProceduralSun 수치가 높을 수록 강해진다. 

왼쪽이 ON 오른쪽이 OFF 이다, 태양빛 산란으로 왼쪽이 더 연하고 자연스럽게 연출이 된다. 각도에 따라 색이 변하기도 한다.



EnableSunGlare : 일면 선스프라이트, ENB 구성 항목에서 enbsunsprite.fx 를 사용한다, 태양을 바라 볼 때 생기는 빛무리를 구현한다, 스카이림 자체의 효과를 후킹하여 추가적인 쉐이더를 주로 넣어놓는다. 렌즈플레어 효과를 보통 넣어 놓는다.

이는 위의 EnableProceduralSun 수치가 높을 수록 강해진다. 

왼쪽이 ON 오른쪽이 OFF 이다, 선 글레어 효과가 있고 없고 차이가 있다. 


 

EnableWater : 물 그래픽을 향상시킨다.

 

왼쪽이 ON 오른쪽이 OFF,Water for ENBs 를 사용 중이다. 

이 효과는 세부 항목들에서 하늘 반사 정도, 물결 세기 , 물 밝기 등이 조절 가능하다. 



EnableUnderwaterShader : ENB의 구성 파일에서 enbunderwater.fx를 사용한다, 물 아래 잠수하였을 때 추가적인 쉐이더를 사용할 수 있다, 주로 물 아래 잠수했을 때 렌즈 효과를 켜서 흐릿하게 만드는 효과를 넣는다.

왼쪽이 ON 오른쪽이 OFF 이다, 왼쪽을 보면 렌즈 왜곡 효과가 들어가 있다, 잠수하는 분위기를 제공한다. 



EnableWetSurfaces : 스카이림의 텍스쳐에 반사효과를 강제로 만든다, Imagebaselighting 처럼 텍스쳐 의존성이 높다.  Cubemap 반사를 사용할 수 있다.

꺼져 있는 상태에서 켤려면 체크하고 저장 후 Apply 를 눌러줘야 한다. 사양을 많이 타고, 어색하여 사용하지 않거나 실내에서만 아주 살짝 켜놓는 식으로 연출한다.

왼쪽이 ON 오른쪽이 OFF 이다, 수치를 굉장히 많이 과장하였다. ImageBaseLighting 과 다른 종류의 빛 반사를 제공한다. 
캐릭터 피부에서 추가적인 반사 효과를 제공한다 수치를 많이 과장하였다, 왼쪽이 ON 오른쪽이 OFF 이다. 이 반사효과는 [OBJECT] 에서 주는 피부 반사광하고 다른 종류이다.


EnableRainWetSurfaces : 바로 위의 WetSurface를 비가 올 때 다른 수치로 작동하게 만드는, 단순히 수치 분리를 위한 쉐이더이다, 비가 올 때 반사효과를 추가적으로 제공하여 맨들맨들하게 한다, 하지만 이 기능이 없어도 반사효과를 만들 수 있어서, 필수적인 효과는 아니다. Cubemap 반사를 사용할 수 있다. 

 



EnableNormalMappingShadows : 비교적 최근에 추가된 기능인데 아무리 연구해도 뭐에 쓰는지 도저히 모르겠다. 



EnableReflection : 스카이림의 자체 반사 효과를 더 강화시킨다.

스카이림 런처에서 킬 수 있는 Screen Space Reflection을 켜야지 작동하는 것으로 알고 있다.

Screen Space Reflection은 화면내 반사라는 의미로써, 레이 트레이싱과 같은 진정한 광원 반사가 아니라 단순히 이미지를 투영해주는 것에 가까워서 가끔 어색할 때가 있다. 

왼쪽이 On 오른쪽이 OFF 이다, 

 

 

 

 

 

 


5. 추가 쉐이더를 사용하는 EFFECTS 들

위에서 읽어보면 알겠지만 fx 파일이 있어야 한는 Effect 들이 있다. 이는 ENB 구성 파일에 있는 fx 파일과 대응된다. 

 

○ enbeffects -->  OriginalPostProcessing을 사용하지 않을 때 사용된는 전체 프로세싱. 

○PostPassShader

○Adaptation

○Bloom

○Lens

○DepthOfField 

○UnderwaterShader 

○SunGlare

이들이 외부 쉐이더 파일을 필요로 하고 

 

이는 인게임 상 Shader Window 에서 실시간으로 바꿀 수 있다. 

이 사실은 위 쉐이더 창이 왼쪽 Effect 설정에 의존적이라는 것을 말한다.

 

예를 들어서 오른쪽 쉐이더 창에서 Prepass 항목을 아무리 수정하더라도 오른쪽 Effects 에서 꺼져 있으면 그 효과를 당연히 나타나지 않는다. 

 

 


 

5. 주의점.

 

읽어보면 알겠지만, ENB의 구성은 그다지 직관적으로 설계되지 않았다.

그렇기 때문에 요리조리 만져보면서 어떻게 작용하는지 익혀 감을 잡아야 된다. 

 

다음 시간에는 enbseris.ini 의 다른 파라미터들에 대해서 알아보겠다.