2017-09-12 2 views
0

Je souhaite lire le tampon Z de la caméra et le restituer en tant qu'image.Comment enregistrer un bitmap en 16 bits dans Maxscript?

je pouvais réaliser avec le code suivant:

--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 

Cependant, cela permettra d'économiser l'image 24 bits Png, avec 3 canaux (8 bits par canal). Je souhaite l'enregistrer en tant qu'image en niveaux de gris, où j'utilise 16 bits pour la représentation en pixels. Comment y parvenir avec max-script?

Répondre

1

Avez-vous essayé d'appeler pngio.setType #gray16 avant?

Vous pouvez également enregistrer en exr avec zDepth channel et l'utiliser.

+0

Merci pour votre perspicacité, je vais donner un shoot - mais j'ai lu dans l'API que getchannelasmask retournera toujours un bitmap 8bit (http://help.autodesk.com/view/3DSMAX/2017/ENU/? guid = __ files_GUID_9F6ABEE1_0728_4B39_8903_D909634C1304_htm) - donc je ne sais pas si cette commande va modifier le comportement de getchannelasmask – Kev1n91

+0

Vous pouvez toujours utiliser un format différent qui prend déjà en charge plusieurs canaux, édité la réponse en conséquence. – Swordslayer