본문 바로가기

툰렌더링 공부50

언리얼 엔진 뜯어보기 #2 3.24 셰이더 모델은 추가했다. 하지만 더 재미있는 걸 하기 전에, 먼저 리로드방법에 대해 알아야 한다. C++파일이야 어쩔 수 없지만, 수정이 잦은 파일을 고칠 때마다 엔진을 재시동하는 건 비효율적이다. 그렇다면 먼저 확인을 위해 최종 Output이 어디에 붙어있는지 파악해야 한다. 일단 DeferredLightPixelShaders.usf 에서 그럴싸해 보이는 값을 수정해보자. // OutColor.rgb = AtmosphericTransmittance * Radiance.xyz * Attenuation * LocalCoverage * GetExposure(); OutColor.rgb = float3(1, 0, 0); OutColor.a = LocalCoverage; 안된다.(...) 이게 아닌가 .. 2023. 3. 24.
언리얼 엔진 뜯어보기 #1 3.14 시작은 셀프쉐도우였다. 난 그림을 그리는 방식대로 다리 윗부분에 드리워지는 치마의 그림자 혹은 얼굴을 반쯤 가리는 커다란 챙모자의 그림자를 그리고 싶었다. 유니티는 커스텀 노드로 이를 구현할 수 있다. 캐스트 셰도우의 원리는 라이팅의 벡터가 면에 닿으면 흰색으로 칠해지는 것이다. 편의상 그림자라 부르고 있지만 사실 밝은 부분을 하얗게 칠하는 것이다. 엔진은 매프레임 셰도우 맵에 이걸 그려서 건네주고 셰이더에선 이를 합성해 쓴다. 하지만 언리얼에선 이를 커스텀 노드를 통해 가져올 수가 없다. 엔진을 뜯어야 한다. 이 때문에 프로젝트 내부에선 협업 중인 마둠파님께 부탁해서 스타일라이즈-릿이란 이름의 셰이더모델을 전해받은 적이 있다. 이 자체로 훌륭한 셰이더지만, 이는 프로젝트에 맞게 포워드 셰이딩을.. 2023. 3. 14.
그동안 작업한 것들 1.26 약 세 달전부터 마둠파님과 협업을 하고 있다. 유니티에서는 비교적 구현이 어렵지 않은 셀프쉐도우가, 언리얼에서는 엔진을 뜯는 수준의 난이도까지 번진다. 비쥬얼C++에서 컴파일 하루, 엔진이 돌아가면 또 셰이더 컴파일에 반나절. 그렇게 어렵사리 며칠에 걸쳐 셀프쉐도우를 얻었다. 나중에 나도 배워야할텐데... 지금은 엄두가 안난다. 큰일이다. 마둠파님이 이걸 개조하시는동안 게임에서 기본적으로 사용되는 간단한 셰이더들을 만들었다. 원형게이지. Atan2를 이용하면 된다는 조언을 듣고 제작 디졸브 셰이더는 셰이더를 처음 배울 때 만날 수 있는 것들이다. 프레넬을 뒤집은 스폰. 그런데 이건 넣어보니 느낌이 별로라 실제로 사용하진 않았다. 포스 쉴드 데미지 플립북은 언리얼에서 기본으로 지원되지만, 최적화겸.. 2023. 1. 26.
IX-NPR : 툰셰이더 회사에서 현재 사용 중인 블렌더용 셰이더입니다. 국내 블렌더 NPR(Non Photo-realistic Render)참고 자료가 얼마 없고, 저 역시 배움에 어려움이 많았기에 NPR을 공부하시는 분들께 도움이 되고자 스스로 만든 셰이더를 공유합니다. 이브이 렌더러 전용입니다. 이 셰이더는 실무에서 사용 중인 레벨이지만, 그렇게 복잡하지는 않습니다. 내부는 총 12개의 조절부로 구성되어 있으며, 각 정보는 함수로 흘러들어가 적절히 처리됩니다. 1~8은 설정값에 관련된 것들이고, 9~12는 사용할 텍스처에 관련된 것들입니다. 텍스처 텍스처에 대한 이해가 있어야 설정값들이 의미를 가지기 때문에, 텍스처에 대해 먼저 설명하겠습니다. 셰이더는 총 4장의 텍스처로 구성됩니다. 컬러맵 MSE맵 RSS맵 Matcap맵.. 2022. 12. 26.