Render.ru
Поддержать

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

3Dimka

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

Есть такой замечательный метод 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
Денис спасибо,

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

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

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Ну тогда бери из канала #shaderTransparency

3Dimka

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

Версия - 3ds max 9

Savin Denis

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

3Dimka

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

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

Savin Denis

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

3Dimka

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