Render.ru

Помогите подкорректировать скрипт для 3ds Max

Солдат_ТОДД

Активный участник
Рейтинг
5
#1
Кто-то в скриптах разбирается? Мне нужно немного подкорректировать один небольшой скрипт для 3ds Max.
 

Erik_945

Знаток
Рейтинг
36
#2
Кто-нибудь разбирается. А конкретнее скажут после постановки задачи.
 

Солдат_ТОДД

Активный участник
Рейтинг
5
#3
Когда-то мне дали один скрипт для замены фона на зеленый и обработки краев при рендере. То есть, чтобы края объекта/модели не смешивались с фоном.
Код:
plugin renderEffect SpriteRender
name:"SpriteRender"
classID:#(0xb7aa794c, 0xc3bd78ab)
(
    parameters main rollout:params
    (
    )

    rollout params "Anonimous"
    (
    )

on apply bmp do
(
for h=0 to (bmp.height-1) do         
(
  local sline = getPixels bmp [0,h] bmp.width  

    for i=1 to sline.count do         

    if sline[i].a > 0 then
    (  if sline[i].a <255.5 do
       (
        local F = (255.0 / sline[i].a) as float
               sline[i].r = (sline[i].r * F)
               sline[i].g = (sline[i].g * F)
               sline[i].b = (sline[i].b * F)
        )

    )
    else sline[i] = green
 
         setPixels bmp [0,h] sline         

)                     

)                     

)
Но мне не нравится, как скрипт преобразовывает края на мелких спрайтах. По сравнению с рендером при отключенном антиалиасинге ― края в модели намного "тоньше", чем при рендеринге с скриптом (как бы получается чёрная кайма/окаймление по контору спрайта).
Мне сказали, что можно отрегулировать скрипт, но не сказали как.

P.S. Надеюсь, я понятливо описал суть поставленного вопроса.
 
Последнее редактирование:

Royal Ghost

Мастер
Рейтинг
229
#4

Скрипт по факту делает картинку из Premultiplied в Straight Alpha, а вам что нужно? Что вы регулировать собрались?
Хотите рендерить с включенным antialising но что бы края спрайта были как без antialising?
 

Royal Ghost

Мастер
Рейтинг
229
#6
Код:
plugin renderEffect SpriteRender
name:"SpriteRender"
classID:#(0xb7aa794c, 0xc3bd78ab)
(
    parameters main rollout:params
    (
    )

    rollout params "Anonimous"
    (
    )

on apply bmp do
(
for h=0 to (bmp.height-1) do        
(
  local sline = getPixels bmp [0,h] bmp.width 

    for i=1 to sline.count do
    (
    if sline[i].a < 255.5 and sline[i].a > 140 then
    (
        local F = (255.0 / sline[i].a) as float
               sline[i].r = (sline[i].r * F)
               sline[i].g = (sline[i].g * F)
               sline[i].b = (sline[i].b * F)
    )
    else sline[i] = green
    )
    setPixels bmp [0,h] sline        

)                    

)                    

)
Держите. Дополнительно регулировать можно изменив значение = 140 это цвет alpha канала. Тоесть, если alpha значение в диапазоне между 0 и 140 то точка закрашивается в зеленый цвет.
 

Солдат_ТОДД

Активный участник
Рейтинг
5
#7
Royal Ghost, огромное Вам спасибо. Жаль только на максималке вместе с контуром арбалетчика затирается и тетива, и тень.
 
Последнее редактирование:

Royal Ghost

Мастер
Рейтинг
229
#8
Уменьшите прозрачность тени в рендере, что бы alpha у тени была менее прозрачной.

Можно доработать скрипт или метод визуализации что бы получалось как вам нужно, но это уж оплачиваемая работа. Если нужно, можете связаться со мной contact(at)veda3d.com.
 

Солдат_ТОДД

Активный участник
Рейтинг
5
#9
Можно доработать скрипт или метод визуализации что бы получалось как вам нужно, но это уж оплачиваемая работа. Если нужно, можете связаться со мной contact(at)veda3d.com.
Спасибо. Буду иметь в виду.
А Вы, я так понял, профессиональный дизайнер?
 
Сверху