🔨 공사중
아직 작업이 진행중인 문서입니다.
PBR 텍스처에 대해 알아보자
INFO
이 문서는 마인크래프트 리소스팩으로 적용할 수 있는 PBR 텍스처에 대한 가이드입니다.
일반적으로 3D 그래픽에서 사용되는 머터리얼 텍스처에 대한 설명과는 조금 다를 수 있습니다.
PBR 이란?
PBR은 물리 기반 렌더링 Physicaly Based Rendering의 약자로
아주 쉽게 말해서 현실에서 일어나는 물체 표면의 빛 반사를 모방하여 재질을 구현하는 컴퓨터 그래픽 표현 방식이다.
각 재질을 설명하는 과정에서 매우 쉽게 풀어 설명할테니 그냥 그렇구나 하고 넘어가도 된다.
만약 더 자세히 알고싶으면 나무위키 문서를 참고하는것을 추천한다.
참고로 이곳에서 설명할 모든 재질이 PBR과 관련돼있는건 아니다.
그냥 모두가 편의상 PBR 텍스처라 부르는거니 참고하길 바란다.
텍스처맵이란?
각 재질의 데이터가 담긴 텍스처를 보통은 '맵 Map' 즉, 지도라고 표현한다. 이러한 텍스처맵의 작동방식은 이름 그대로 지도를 생각하면 편한데 예를 들어 이 등고선 지도를 봐보자
보다시피 평면도가 있고 평면도에 높이값에 따른 색으로 표기가 되어있다.
즉, 이미지에 좌표에 따라 현실의 데이터가 저장되어있는데
이걸 반대로 생각하면 편하다.
위쪽처럼 '등고선 맵'을 만들어서 아래처럼 적용하는것이다.
이 등고선과 동일한 역할을 하는게 'Height Map' 높이맵이다.

이 흑백의 텍스처맵에는 밝기 값을 통해 높이가 저장되어있다.
따라서 이렇게 되어있는 재질에 이 Height 맵을 추가하면
이런식의 표현이 가능해지게 되는것이다.
이런식으로 텍스처에 재질값을 원하는 위치의 저장하는것이
텍스처맵의 역할이다.
마인크래프트에 PBR 텍스처를 적용해보자
마인크래프트에서 PBR텍스처를 적용하기 위해선 그냥 텍스처의 이름만 맞춰 넣으면 되는것이 아닌
각 포맷에 맞춰 넣어주어야 한다.
PBR 텍스처 포맷
- 베드락 포맷(원문)
- 베드락 PBR 리소스팩에 대해 알아보자
(문서 작성 예정)
- 베드락 PBR 리소스팩에 대해 알아보자
- 자바 포맷
- LabPBR 1.3(원문)
- OldPBR (SEUSpbr)
각 포맷에 대해 좀더 자세히 설명하자면
베드락 포맷은 MERS PBR이라고도 불리며 광선추적(RTX)및 선명한 비주얼에서 사용된다.
자세한 내용은 베드락 포맷 설명문에도 적어놨으니 해당 글을 참고하면 된다.
자바에서 PBR 텍스처는 공식이 아닌 무조건 셰이더 모드에서만 사용된다.
따라서 PBR 재질 표현력이 좋은 셰이더를 사용하는게 좋고(Kappa, Bliss등)
ApolloRT와 같이 빛에 경로추적 기술을 사용하는 셰이더를 사용하는것이 도움된다.
개발시 추천하는 셰이더 목록
무조건 경로추적을 사용하는것만 모아둔것은 아니고
개발할때 추천하는 목록이다.
당연히 사양을 많이 타니 고려해서 구매하는것을 추천한다.
강조된것은 실제로 개발에 많이 씌이는 셰이더다.
- 유로
- KappaPT*
- NostalgiaVX
- Sundial*
- ApolloRT
- ContinuumRT
- 무료
- Kappa*
- Bliss*
- BSL*
OldPBR과 LabPBR이 있는데 쉽게 말해 전세대 신세대 포맷이다.
현제는 업데이트가 끊기지 않는이상 모든 셰이더와 리소스팩이 LabPBR포맷을 지원하기 때문에
해당 포맷을 사용하는것이 좋다.
OldPBR은 이전에 SEUS 셰이더에서 사용하다 퍼진 포맷으로
몇년전에 업데이트가 끊긴 셰이더및 리소스팩은 모두 이 포맷으로 되어있다.
때문에 업데이트가 몇년간 끊긴 SEUS PTGI는 여전히 OldPBR 포맷을 사용중이니
PBR 리소스팩을 개발할땐 셰이더의 퀄리티가 좋아도 SEUS PTGI는 쓰지 않는것이 좋다.
( 만약 정말로 사용하고싶다면 SEUS PTGI GFME를 사용할 수 있다.
참고로 이걸 쓴다고 해도 여전히 OldPBR에서 지원하던 재질만 지원하니 참고하자 )
포맷에 맞춰 적용하는 법
베드락의 경우 이 역시 베드락 포맷 설명문에 적어놨다.
Pixelgraph라는 PBR 리소스팩 제작 도구가 있는데 ( PBR 텍스처 제작 X )
베드락의 경우 직접 편집하거나 Pixelgraph를 통해 관리하는게 좋고
자바는 그냥 Pixelgraph를 쓰는걸 추천한다.
- Pixelgraph 사용법
(문서 작성 예정)
직접 편집하는 경우 OldPBR과 베드락 둘 다 RGB 채널을 직접 편집해야 할텐데
먼저 RGB 채널에 저장한다는 개념을 먼저 설명하자면
디지털이 Red Green Blue 삼원색을 통해 색상을 표시한다는 말은 한번쯤 들어봤을것이다.
따라서 png이미지 파일에도 RGB값 그리고 투명도를 표현하는 Alpha값을 저장하는데
이걸 그냥 흑백 이미지 4개로 치는거다
그러니까 Red값 255, Blue값 255, Green값 255, Alpha값 255 이거를
밝기값 255 4개처럼 사용하는거다.
이렇게 하면 이미지 파일 하나당 최대 4개의 흑백 텍스처를 저장할 수 있는거다.
(물론 이것도 파고들면 기술상으로 손상이 어쩌고가 있긴한데 자세히 알 필요는 없다.)
만약 포토샵을 다룰줄 알거나
RGB채널의 개념이 이미 뭔줄 알고있고 다룰 줄도 안다면 상관이 없지만
만약 포토샵도 없고 지식도 없다면 아래 글을 참고하자
- RGB채널 편집하는법
(문서 작성 예정)
LabPBR의 경우 RGB 채널의 분리뿐 아니라 추가적인 작업이 필요한데
보통은 매크로나 미리 만들어놓은 프로그램등을 사용한다.
만약 Substance Desinger을 통해 텍스처를 제작한다면
이 커스텀 노드를 사용하는것을 추천한다.
https://github.com/frugbug/labpbr-substance-tools
업데이트가 끊겨서 최신버전에서 불러오면 뭐가 좀 많이 뜰텐데
labpbr publish노드는 아직 잘 작동하니 문제 없다.