툴/유니티

RGBA Texture Packing 텍스쳐 패킹 (Unity유니티 HDRP)

스튜디오 오버그래픽스 2024. 1. 4. 02:27

 

유니티에서 스탠다드 셰이더를 보면 Metallic,Occlusion맵을 넣는 기능이 있는데

HDRP/Lit 셰이더를 보면 Metallic, Occlusion맵을 넣는 기능이 없음.

 

Mask Map에 마우스를 올려보면 설명이 나옴

MaskMap에 넣은 텍스쳐에서 색깔 채널별 RGBA에 따라 Metallilc, Ambient Occlusion, Detail mask, Smoothness를 반영.

어차피 Metallic, AO, Smoothness의 경우 0~1사이의 값 정보만 가지고 있는 1개채널의 텍스쳐맵과 다를바 없기 때문에 HDRP/Lit셰이더에서는 하나의 텍스쳐에 채널별로 정보를 다 넣는 것을 권장하는 듯

 

일반적으로 모델과 텍스쳐 파일을 받으면 Albedo,Normal,Height,Roughness,Metallic,AO등 다 나눠져 있음.

위 텍스쳐의 경우 특별하게 RGBA에 Metallic,Roughness,Height,AO가 패킹된 텍스쳐가 같이 있음.

그러나 유니티 HDPR/Lit 셰이더의 RGBA 채널별 정보와 순서가 일치하지 않으므로 별도로 텍스쳐를 포토샵에서 패킹해주어야함.

 


 

텍스쳐 패킹 프로그램으로 RGBA채널에 각각 맵 패킹하기

https://github.com/Fidifis/TextureMerge/releases

 

Releases · Fidifis/TextureMerge

pack/merge textures into image channels. Contribute to Fidifis/TextureMerge development by creating an account on GitHub.

github.com

위 링크에 있는 프로그램 사용

 

실행하면 각각 RGBA에 적용하는 칸이 있음

 

유니티 HDPR/Lit 셰이더는

R = Metallic

G = Ambient Occlusion

B = Detail Mask

A = Smoothness

를 사용

 

Metallic, AO, Smoothness만 쓸거라서 RGA 3개 채널에 적용하기

(유니티에서는 거칠기를 나타내는 텍스쳐로 Roughness맵을 쓰지 않고 Smoothness 맵을 사용함. 그러나 0~1의 값을 뒤집어서 쓰면 같으므로 걍 있는 Roughness맵을 사용하거나 혹은 포토샵에서 반전시켜줘도 됌)

 

 

해당 채널에 텍스쳐 넣고 Merge 버튼 눌러서 PNG이미지 파일로 추출

 

png 결과

 

유니티로 가져와서 이미지를 프리뷰로 각 채널별로 보면 잘 적용되어 있음