Render.ru

getChannel - как получить прозрачность

3Dimka

Активный участник
Рейтинг
15
#1
Привет,

Есть такой замечательный метод getChannel <bitmap> <coord_point2> <chan_name> при помощи которого можно например получить расстояние до точки объекта.

Вот доступные имена каналов для функции:
#zDepth, #matID, #objectID, #UVCoords, #normal, #unClamped, #coverage, #node, #mask, #shaderColor, #shaderTransparency, #velocity, #weight

res=getChannel Render_img [x,y] #zDepth
Z=res[1]

в данном случае [1] - индекс точки в порядке удаления от камеры, тоесть res[1] - это ближайщая точка к камере, res[2] - следующая и т.д.

Вопрос: Как получить такой же массив RGBA цвета точки? Какой канал использовать? Интересует в первую очередь Alpha.

Спасибо!
3Dimka ;)
 

3Dimka

Активный участник
Рейтинг
15
#3
Денис спасибо,

но getPixels не совсем подходит. Она дает прозрачность бленда, и если за поверхностью с прозрачностью имеется другая поверхность, то прозрачность в getPixels для этой точки будет потеряна.

Мне нужно получить цвета и прозрачности для всех поверхностей в Z ордере. Мне это нужно для получения своего бленда с учетом карты глубины.
 

3Dimka

Активный участник
Рейтинг
15
#5
я пробывал, но с #shaderTransparency и shaderColor getChannel всегда возвращает unassigned

Версия - 3ds max 9
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#6
Так ты отрендерил эти каналы ? откуда по твоему они там возьмутся ?
 

3Dimka

Активный участник
Рейтинг
15
#7
Я бы с удовольствием бы отрендрил, подскажите как.

Я пробывал в диалоге рендера (F10) добавть все Render Elements что есть, но это не помогло, к тому же практически все Elements получились просто черными.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#8
Ты это про все эти Render Elements забудь.
Делаеш через фунцию render (в разделе битмапа должен быть протенький пример, в самом начале) и у нее прописываеш имя камервы и нужные каналы
 

3Dimka

Активный участник
Рейтинг
15
#9
Денис, большое спасибо!
Это именно то, что мне и надо было сделать:
Render_img = render camera:pb_R_cam.object outputwidth:width outputheight:height channels:#(#zDepth,#shaderTransparency)
 
Сверху