1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Моделирование", создана пользователем Sergey Shutov, 12 дек 2010.

Модераторы: He77ga, Артер
  1. Sergey Shutov

    Sergey Shutov Активный участник

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

    Вложения:

    • 2066782.jpg
      2066782.jpg
      Размер файла:
      323,2 КБ
      Просмотров:
      131
    • 2066783.jpg
      2066783.jpg
      Размер файла:
      150,1 КБ
      Просмотров:
      127
    • 2066784.jpg
      2066784.jpg
      Размер файла:
      107,7 КБ
      Просмотров:
      120
    • 2066785.jpg
      2066785.jpg
      Размер файла:
      165 КБ
      Просмотров:
      125
    • 2066786.jpg
      2066786.jpg
      Размер файла:
      142,3 КБ
      Просмотров:
      129
  2. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    Судя по первому скрину, проблем вообще не должно возникнуть. А вот с последним совсем неясно, после удаления граней на поверхности образуются кирпичики или это текстура.
    Выкладывай сцену, что бы подробно рассмотреть.
     
  3. Алексей1980

    Алексей1980 Активный участник

    С нами с:
    10.12.2010
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    12
    Есть 2 пути
    1 - преобразуем в обж, закидываем в TOPOGUN, включаем привязку к вершинам референтного меша, тыкаем вершинами в углы и получаем сетку на сотню полигонов максимум
    2 - если у вас макс 2011 - открываем инструменты Графит, переходим на закладку выделялка - выделяем LOOP рёбер и жмём кнопочку remove рёбер, не забывая удалить потом левые зависшие вершины

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

    Север 37808 Знаток

    С нами с:
    01.03.2007
    Сообщения:
    853
    Симпатии:
    3
    Баллы:
    54
    Если при нажатии кнопки Remove зажать Ctrl, то вершины удалятся автоматически.
     
  5. Sergey Shutov

    Sergey Shutov Активный участник

    С нами с:
    20.04.2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    5
    Александр Чернега, это текстура.

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

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

    Sergey Shutov Активный участник

    С нами с:
    20.04.2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    5
    Ниже результат действия MultiRes - 6%

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

    Вложения:

    • 2067312.jpg
      2067312.jpg
      Размер файла:
      78,9 КБ
      Просмотров:
      121
  7. Алексей1980

    Алексей1980 Активный участник

    С нами с:
    10.12.2010
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    12
    Север, я тебя расцелую!!!! честно не знал про 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 гигами - реально говорю - мало - тупит жутко, или учите композ, что ещё страшнее трёхмерки, по себе говорю :)))
     
  8. Sergey Shutov

    Sergey Shutov Активный участник

    С нами с:
    20.04.2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    5
    Ну на скринах один из блоков в 160000 поликов, блоков таких всего 10)

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

    Алексей1980 спасибо за ссылки
     
  9. Север 37808

    Север 37808 Знаток

    С нами с:
    01.03.2007
    Сообщения:
    853
    Симпатии:
    3
    Баллы:
    54
    Рад, что пригодилось ))
    В хелпе (F1) очень подробно все расписано, в том числе про функции Editable Poly. Таких фишек там хватает - например, если создаешь полигон кнопкой Create, нажатие Backspace отменяет создание последней вершины, при этом процесс не прерывается. Хелп - очень полезное чтиво, усиленно рекомендую.
     
  10. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    Алексей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
    )
    )
    
    )
    
     
  11. Север 37808

    Север 37808 Знаток

    С нами с:
    01.03.2007
    Сообщения:
    853
    Симпатии:
    3
    Баллы:
    54
    А это еще зачем? В максе вся работа завязана на режимах, бекспейс - это отмена последнего действия без выхода из режима. Remove - это просто команда, а не режим.
     
  12. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    Ну, нажимая Бекспейс тоже можно удалять вертексы и ребра. Мне как то показали, так я и делал :)
     
  13. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    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
    		)
    	)
    )
    
     
  14. Sergey Shutov

    Sergey Shutov Активный участник

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

    Всем спасибо, на время затихаю! Добрые люди не перевелись)
     
  15. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    У меня так же, машина не монстр. При попытки ремувнуть очень большое количество эджей то же задумывается.
    Есть смысл удалять «Плохие вершины» поэтапно. Если вычистишь сразу все модель и поле этого автоматом удалишь вершины, можешь не заметить случайно удаленное (несущие) ребро (как в видео, на 5-й минуте (инцидент с окном))
     
  16. Sergey Shutov

    Sergey Shutov Активный участник

    С нами с:
    20.04.2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    5
    Кстати, заметил волшебную кнопку Retriangulate

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

    И еще, окно, на которое перенес кнопки скриптов пропадают после перезагрузки приложения, никак не могу найти, откуда можно вызвать ее заново?
     
  17. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    1 По поводу кнопки Retriangulate – назначение единственное, но ЧЕРТОВСКИ крутое! (сам относительно недавно о ней узнал, раньше нарезал ребра)

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

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

    Вложения:

    • 2068247.jpg
      2068247.jpg
      Размер файла:
      24,9 КБ
      Просмотров:
      130
  18. Sergey Shutov

    Sergey Shutov Активный участник

    С нами с:
    20.04.2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    5
    Окэ, спасибо! Еще недостаток.. действия скрипта почему-то не откатываются
     
  19. Александр Чернега

    Александр Чернега Знаток

    С нами с:
    24.12.2009
    Сообщения:
    1.058
    Симпатии:
    56
    Баллы:
    53
    Очень странно!!!
    В 2009 Undo работает на ура, и только что проверил в 2011 (х32, Windows 7)
    У меня иногда так бывает (не знаю почему) В основном во время работы с PolyBoost в 2009, когда сильно намудрил, обнуляется весь список возможных отмен.
    Но я уверен что это не из-за скрипта Remove!
     
  20. Sergey Shutov

    Sergey Shutov Активный участник

    С нами с:
    20.04.2010
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    5
    видимо, беда в оптимизации самого макса
     
Модераторы: He77ga, Артер

Поделиться этой страницей