Render.ru

Как Как автоматизировать процес текстурирования?

Cabich_zero

Пользователь сайта
Рейтинг
2
#1
Есть моделька, а к ней 200 различных текстур. нужно модельку отрендерить с каждой текстурой . Как автоматизировать процес ?
 

igorznag

Мастер
Рейтинг
103
#2
Попробуй автоматизировать процесс с помощью MaxScript.
Перед тем, как автоматизировать любой процесс, нужно сделать подробный анализ процесса.
Потом нужно написать подробно алгоритм будущего автоматизированого процесса на "человеческом языке".
После этого можно попробовать автоматизировать процесс с помощью какого-нибудь способа.

P.S.
1. Моделька (в определенный момент) имеет всего только одну текстуру?
2. Какой тип текстуры?
(Bitmap; Noise; Gradient; ...)
3. Если тип текстуры Bitmap, тогда где находятся файлы текстур этой модельки?
(файлы находятся в одной папке; файлы находятся в разных папок)
4. В какой папке должны хранятся файлы с результатом рендеринга?
Какое название должны иметь файлы с результатом рендеринга?
 

Cabich_zero

Пользователь сайта
Рейтинг
2
#3
1 Моделька имеет всего одну текстуру
2 битмап
3 файлы можно положить как удобно
4 в папке рендер,
название должно содержать название модели и наименование текстуры
 

igorznag

Мастер
Рейтинг
103
#4
Пример:
1. В новой сцене создай объект Box01 и примени к нему материал Standard.
2. В качестве Diffuse установи текстуру Bitmap и выбери любой файл из тех 200 файлов.
3. В окне Render Scene > Common > Common Parameters > Render Output установи нужный путь, нужный тип и любое название файла.
4. Выдели объект Box01 и запусти скрипт. В новом окне нажми кнопку Render.
Сохрани сцену в любую папку.
200 файлов с изображениями должны находиться в одной папке. В этой папке не должно быть других типов файлов.

Написал простой скрипт. Попробуй его использовать (усовершенствовать):
Код:
rollout igorznag_change_bitmap_texture "AutoSelect bitmap texture and render" width:500 height:105
(
button btn_render "Render" pos:[230,75]
groupBox last_info "Last Info" pos:[5,5] width:490 height:65
edittext images_folder_text "Images Folder:" pos:[15,20] readOnly:true
edittext render_folder_text "Render Folder:" pos:[15,45] readOnly:true
radiobuttons texture_name_filename_rb labels:#("Texture Name", "Texture FileName") default:1 pos:[10,80]

on btn_render pressed do
(
renderSceneDialog.close();
if(rendOutputFilename!="")then
(
render_folder=getFilenamePath rendOutputFilename
render_filename_type=getFilenameType rendOutputFilename
if(selection.count==1)then
(
m= selection[1].material
if(m!=undefined)then
(
temp_material_bitmaps=getclassinstances bitmaptexture target:m
if(temp_material_bitmaps.count==1)then
(
bitmap1=temp_material_bitmaps[1]; 
images_folder=getFilenamePath bitmap1.filename
images_path=getFiles (images_folder+"*.*")
for i=1 to images_path.count do
(
bitmap1.filename=images_path[i]; texture_name_filename=bitmap1.name
if(texture_name_filename_rb.state==2)then texture_name_filename=getFilenameFile bitmap1.filename
rendOutputFilename=render_folder+selection[1].name+"_"+texture_name_filename+"_"+(i as string)+"_"+render_filename_type
max quick render
images_folder_text.text=images_folder;render_folder_text.text=render_folder;
))))))
)createdialog igorznag_change_bitmap_texture style:#(#style_titlebar, #style_border, #style_sysmenu,#style_minimizebox)
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
 

Cabich_zero

Пользователь сайта
Рейтинг
2
#6
igorznag [url=/forum/viewtopic.php?post_id=948126#948126 сказал(а):
#4[/url]]Пример:
1. В новой сцене создай объект Box01 и примени к нему материал Standard.
2. В качестве Diffuse установи текстуру Bitmap и выбери любой файл из тех 200 файлов.
3. В окне Render Scene > Common > Common Parameters > Render Output установи нужный путь, нужный тип и любое название файла.
4. Выдели объект Box01 и запусти скрипт. В новом окне нажми кнопку Render.
всё работает спасибо
А как сделать чтоб несколько объектов выделять можно было?
 
Сверху