Render.ru

Пути оптимизации Editable Poly

Sergey Shutov

Активный участник
Рейтинг
5
#1
Доброго времени суток, уважаемые форумчане. Прошу вашей помощи. Ситуация проста. Имеется модель здания, общей емкостью более полутора миллиона поликов, из скрина видно, что сетка мягко говоря нерациональна, хотелось бы ее упростить.. Пробовал Optimize и MultiRes, последний жмет до 5 %, но во-первых режет сетку там, где не надо, а во-вторых, корежит ее приводит в трудно-редактируемый вид.. Пришел к выводу, что ручками будет эффективнее и тут проблема. Пробовал и ребрами (cut) и вершинами (remove), в обоих случаях не могу понять закономерность: вроде бы выбираю группу соответствующих элементов, лежащих строго в одной плоскости, но при их удалении появляются непонятные стяжки. Объясните, у меня неверная логика геометрии, кривые руки или же кривая модель? Или же выбран неверный метод? Очень надеюсь на вашу помощь..
 

Вложения

Рейтинг
47
#2
Судя по первому скрину, проблем вообще не должно возникнуть. А вот с последним совсем неясно, после удаления граней на поверхности образуются кирпичики или это текстура.
Выкладывай сцену, что бы подробно рассмотреть.
 

Алексей1980

Активный участник
Рейтинг
15
#3
Есть 2 пути
1 - преобразуем в обж, закидываем в TOPOGUN, включаем привязку к вершинам референтного меша, тыкаем вершинами в углы и получаем сетку на сотню полигонов максимум
2 - если у вас макс 2011 - открываем инструменты Графит, переходим на закладку выделялка - выделяем LOOP рёбер и жмём кнопочку remove рёбер, не забывая удалить потом левые зависшие вершины

ГЫГЫ - а вообще сетка у вас и без того почти идеальная - ни одной снежинки ни затяжки, вообще - в чём там проблема???? а то я вам для сравнения настоящую кривую мерзкую пришлю :) я б даже заморачиваться не стал с такой
 

Sergey Shutov

Активный участник
Рейтинг
5
#5
Александр Чернега, это текстура.

Алексей1980, если можно, чуть подробнее, оригинальные названия на енглише, чтобы мог поискать потом..
Проблема в длительном времени рендеринга... и повышенной ресурсоемкости.

Север, спасибо за уточнение, очень полезно
 

Sergey Shutov

Активный участник
Рейтинг
5
#6
Ниже результат действия MultiRes - 6%

Можно ли оставить сетку в таком виде, не вылезет ли позже подводных камней?
 

Вложения

Алексей1980

Активный участник
Рейтинг
15
#7
Север, я тебя расцелую!!!! честно не знал про Ctrl, блин сколько моделил, всегда сначала рёбра, потом вершины, даже скрипт написал простенький, а там всего лишь контрол+

Сергей, а это для вас:

http://www.youtube.com/watch?v=P3VTE5Ydp4o

http://3dyuriki.com/2009/03/23/bolee-sta-novyh-instrumentov-modelirovaniya-v-3ds-max-2010/

читать и смотреть вам надо много, в яндекс видео забейте в поиск - там лучше покажут чем я объясню....

но реально такая сетка не должна тормозить - это у вас комп дохлый, сразу готовьтесь - для архитектурки надо чё то серьёзное, у меня коре квадра с 4 ядрами и 4 гигами - реально говорю - мало - тупит жутко, или учите композ, что ещё страшнее трёхмерки, по себе говорю :)))
 

Sergey Shutov

Активный участник
Рейтинг
5
#8
Ну на скринах один из блоков в 160000 поликов, блоков таких всего 10)

камешек E6550, 2 гига оперативы - видео дохлое, планирую переходить на i7 870 + Quadro + 8 гб оперативы

Алексей1980 спасибо за ссылки
 
Рейтинг
49
#9
честно не знал про Ctrl, блин сколько моделил, всегда сначала рёбра, потом вершины
Рад, что пригодилось ))
В хелпе (F1) очень подробно все расписано, в том числе про функции Editable Poly. Таких фишек там хватает - например, если создаешь полигон кнопкой Create, нажатие Backspace отменяет создание последней вершины, при этом процесс не прерывается. Хелп - очень полезное чтиво, усиленно рекомендую.
 
Рейтинг
47
#10
Алексей1980, Sergey Shutov, да и все остальные.

Держать контрол при ремуве, не слишком удобно. Нужно либо открывать квадроменю и там искать Ремув, либо и того хуже. Держа контрол, отрывать руку от мыши и жать Бакспейс.
Советую всем скачать скрипт «Remove components», установить его на удобную клавишу и нвслаждаться. http://www.scriptspot.com/3ds-max/scripts/remove-components
Хотя в квадроменю ремув есть смысл оставить, иногда нужно что бы после удаления ребер вертексы оставались.

Вот код скрипта:
Код:
macroScript remove category:"drFlashTools" tooltip:"Remove" 
(
case (getSelectionLevel $) of 
(
#Vertex: $.EditablePoly.Remove selLevel:#Vertex
#Edge:(
sel = #{}
edgesel = polyOp.getEdgeSelection $
vertsel = polyOp.getVertsUsingEdge $ edgesel
$.EditablePoly.Remove selLevel:#Edge
for i = 1 to vertsel.numberset do
if ($.GetVertexEdgeCount (vertsel as array)[i]) == 2 then sel = sel + #{(vertsel as array)[i]}
polyop.setVertSelection $ sel
$.EditablePoly.Remove selLevel:#Vertex
)
#Face:
(
sel = #{}
facesel = polyOp.getFaceSelection $
edgesel = polyOp.getEdgesUsingFace $ facesel
for i = 1 to edgesel.numberset do
if (((polyOp.getEdgeFaces $ (edgesel as array)[i]) as bitarray)*(facesel as bitarray)).numberset == 2 then sel= sel + #{(edgesel as array)[i]}
polyop.setEdgeSelection $ sel
$.EditablePoly.Remove selLevel:#Edge
)
)

)
 
Рейтинг
49
#11
Рейтинг
47
#13
Script Remove components в действии


Второй скрипт использованный в видео выдран из сборки VGScripts
Сайт автора - http://www.vg2max.spb.ru/download.html
(Рекомендую скачать весь пак (много интересного))

Код:
macroScript SelectBadVerts
	category:"[b]Какую захотите[/b]"

(
	(
		for obj in selection do (
			varr=#()
			for i in obj.verts do (
				arr=(PolyOp.getEdgesUsingVert obj #(i.index)) as array
				if arr.count==2 do append varr i.index
			)
			polyOp.setVertSelection obj varr
		)
	)
)
 

Sergey Shutov

Активный участник
Рейтинг
5
#14
Ну круто!! Прямо по полочкам все) Даже скрипт получилось завести с первого раза, хотя ранее этого не делал даже) Благодарю - буду пробывать! Жаль, машина виснет жутко, поле кнопки "ремов", я так понял, для повышения быстродействия плохие вершины лучше убивать уже после упрощения геометрии?

Всем спасибо, на время затихаю! Добрые люди не перевелись)
 
Рейтинг
47
#15
У меня так же, машина не монстр. При попытки ремувнуть очень большое количество эджей то же задумывается.
Есть смысл удалять «Плохие вершины» поэтапно. Если вычистишь сразу все модель и поле этого автоматом удалишь вершины, можешь не заметить случайно удаленное (несущие) ребро (как в видео, на 5-й минуте (инцидент с окном))
 

Sergey Shutov

Активный участник
Рейтинг
5
#16
Кстати, заметил волшебную кнопку Retriangulate

"С помощью кнопки Retriangulate (Произвести разбивку заново) автоматически просчитываются все внутренние ребра для выделенных подчиненных объектов" - это ее единственное назначение?

И еще, окно, на которое перенес кнопки скриптов пропадают после перезагрузки приложения, никак не могу найти, откуда можно вызвать ее заново?
 
Рейтинг
47
#17
1 По поводу кнопки Retriangulate – назначение единственное, но ЧЕРТОВСКИ крутое! (сам относительно недавно о ней узнал, раньше нарезал ребра)

2 Убедись что в Костомайз - Префэрэнс - стоит галочка Сохранять конфигурацию Ui после выхода (см. Рис.)

Завтра более подробно объясню из-за чего это происходит и в чем фишка (если ты поудобней настраиваешь квадроменю, переназначаешь горячие клавиши, и насыщаешь макс скриптами, то фишка достаточно существенная. Проявляется при переходе на другой комп или после переустановки Виндовс).
 

Вложения

Рейтинг
47
#19
Очень странно!!!
В 2009 Undo работает на ура, и только что проверил в 2011 (х32, Windows 7)
У меня иногда так бывает (не знаю почему) В основном во время работы с PolyBoost в 2009, когда сильно намудрил, обнуляется весь список возможных отмен.
Но я уверен что это не из-за скрипта Remove!
 
Сверху