Понятно.
Скрипт не влияет на основной рендер. Чтобы увидеть результат его работы, после запуска надо вытащить на панель инструментов или в меню его кнопочку и включить. Сделать это можно, например, так:
Меню Custimize -> Customize User Interface…
Закладка Toolbars -> Category: HowTo
Перетащить мышкой строку VertexRender на удобное место в панели инструментов.
Понятно. Спасибо большое. Я хотел анимацию в точках отрендерить. Видать, этот скрипт не подходит... Ещё раз спасибо большое! Есть ли способ сделать рендер анимации в точках иным способом? (модификатор Lattice совсем не понравился).
Почему не подходит? Впрочем, можно установить Krakatoa рендер. Кроме основной функции (быстро рендерить много частиц), он может рендерить и вершины геометрии, если включить опцию "гео.вртс", а при черном окружении (в темноте) не забыть добавить освещение.
Арт.КПочему не подходит? Впрочем, можно установить Krakatoa рендер. Кроме основной функции (быстро рендерить много частиц), он может рендерить и вершины геометрии, если включить опцию "гео.вртс", а при черном окружении (в темноте) не забыть добавить освещение.
А зачем вообще нужен скрипт на такую ерунду? Выделил все объекты (ну или какие нужны), открыл редактор материалов и кинул на них все нужный материал и всего делов. Чего тут автоматизировать то? Три движения мышкой всего то. Дольше будешь вспоминать где этот скрипт включается.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Oleg Preston
Никак не могу запустить приложенный скрипт для рендера только вершин модели.
Не нашел другого способа рендера только вершин объектов (модификатор Lattice совсем не понравился).
Посмотрите, пожалуйста, что необходимо подправить в приложенном скрипте
(описание его здесь: https://help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__files_GUID_853014AC_9DC8_4F5C_B14B_3643E5925AD8_htm).
Спасибо заранее огромное.
Скрипт приложен к сообщению и расположен здесь (для удобства):
----------------------
macroScript VertexRender category:"HowTo"
(
local VertexRendererEnabled = false
local screen_width, screen_height, back_vfb, front_vfb
fn VertexRendererFunction =
(
st = timestamp()
copy back_vfb front_vfb
for o in geometry where classof o != TargetObject do
(
theMesh = snapshotAsMesh o
dot_color = #(o.wirecolor)
theVertCount = theMesh.numverts
for v = 1 to theVertCount do
(
thePos = (getVert theMesh v)* viewport.getTM()
screen_origin = mapScreenToView [0,0] (thePos.z) [screen_width,screen_height]
end_screen = mapScreenToView [screen_width,screen_height] (thePos.z) [screen_width,screen_height]
world_size = screen_origin-end_screen
x_aspect = screen_width/(abs world_size.x)
y_aspect = screen_height/(abs world_size.y)
screen_coords = point2 (x_aspect*(thePos.x-screen_origin.x)) (-(y_aspect*(thePos.y-screen_origin.y)))
setPixels front_vfb screen_coords dot_color
)--end v loop
)--end o loop
display front_vfb
et = timestamp()
pushPrompt ("VertRender "+(1000.0/(et-st)) as string +" fps"😉
)--end fn
on isChecked return VertexRendererEnabled
on execute do
(
VertexRendererEnabled =not VertexRendererEnabled
if VertexRendererEnabled then
(
screen_width=RenderWidth
screen_height=RenderHeight
back_vfb = bitmap screen_width screen_height
front_vfb = bitmap screen_width screen_height
registerRedrawViewsCallback VertexRendererFunction
RedrawViews()
)
else
(
unRegisterRedrawViewsCallback VertexRendererFunction
close front_vfb
)
)--end on execute
)--end script
-----------------
Вложения
LastJedi
Oleg Preston
LastJedi
Скрипт не влияет на основной рендер. Чтобы увидеть результат его работы, после запуска надо вытащить на панель инструментов или в меню его кнопочку и включить. Сделать это можно, например, так:
Oleg Preston
Артур Крайц (Арт.К)
Oleg Preston
LastJedi
Если не особо стараться, то получится как-то так:
screen_width = 1920 screen_height = 1080 fileName = @"C:\RenderOut\Frame_" fileExt = ".png" for t in animationRange.start to animationRange.end do ( sliderTime = t vfb = bitmap screen_width screen_height for o in geometry where classof o != TargetObject do ( theMesh = snapshotAsMesh o dot_color = #(o.wirecolor) theVertCount = theMesh.numverts for v = 1 to theVertCount do ( thePos = (getVert theMesh v)* viewport.getTM() screen_origin = mapScreenToView [0,0] (thePos.z) [screen_width,screen_height] end_screen = mapScreenToView [screen_width,screen_height] (thePos.z) [screen_width,screen_height] world_size = screen_origin-end_screen x_aspect = screen_width/(abs world_size.x) y_aspect = screen_height/(abs world_size.y) screen_coords = point2 (x_aspect*(thePos.x-screen_origin.x)) (-(y_aspect*(thePos.y-screen_origin.y))) setPixels vfb screen_coords dot_color ) ) vfb.filename = fileName + (t as string) + fileExt save vfb close vfb )Корявенько, но работает…В начале скрипта надо задать размеры кадра и имя файла. Рендерит весь таймлайн для активного вьюпорта.
Oleg Preston
Oleg Preston
Oleg Preston
LastJedi
Раньше было больше времени ими заниматься. Столько идей осталось так и не опубликовано…
ЛМА
Юрий DomoVoy (DomoVoy)