2017-09-12 14 views
0

카메라의 z 버퍼를 읽고 이미지로 렌더링하고 싶습니다.Maxscript에서 비트 맵을 16 비트로 저장하는 방법은 무엇입니까?

I는 다음과 같은 코드로 달성 할 수 :

--Place the z camera 
z_cam = freecamera name: "depth" position:[0.0,0.0,50.0] rotation: (eulertoquat (eulerAngles 0 0 0)) 

z_name = "mybitmap.png" 

--get z buffer   
rbmp = render outputsize:[512,424] channels:#(#zdepth) vfb:off camera: z_cam 
z_d = getchannelasmask rbmp #zdepth outputfile:z_name 
z_d.fileName = z_name 
save z_d 
close z_d 

그러나, 이러한 3 개 채널 (8 비트의 각각의 채널)을, 24 비트 PNG로 이미지를 저장한다. 16 비트를 픽셀 표현으로 사용하는 회색 음영 이미지로 저장하고 싶습니다. max-script로 어떻게 그것을 달성 할 수 있습니까?

답변

1

이전 핸드 pngio.setType #gray16을 호출 해 보셨습니까?

또는 zDepth channel으로 exr에 저장하고이를 사용하십시오.

+0

통찰력을 가져 주셔서 감사합니다.하지만 API를 통해 getchannelasmask는 항상 8 비트 비트 맵을 반환합니다 (http://help.autodesk.com/view/3DSMAX/2017/ENU/? guid = __files_GUID_9F6ABEE1_0728_4B39_8903_D909634C1304_htm) -이 명령으로 getchannelasmask의 동작이 변경되는지 알 수 없습니다. – Kev1n91

+0

이미 여러 채널을 지원하는 다른 형식을 사용하여 그에 따라 답변을 편집 할 수 있습니다. – Swordslayer