Render.ru

Это не нормально!

FSV141

Активный участник
Рейтинг
13
#1
Продолжаем мучать скелеты.
Пытаюсь делать правильно. Начинаю с-нуля.
1) Гружу из obj-файла весь скелет. Получаю около 3-х десятков объектов, соответствующих основным группам костей.
2) Выделяю все объекты и пытаюсь перелючить их с рендеринга полигонов на "гладкие треугольники".
Машина уходит в глубокий своп... Это кстати при том, что предварительно я уменьшил значение Undo до 3.

Вывести машину из ступора удается лишь через 10-15 минут. Путем "срубания" Риала...

Все это не нормально! Такого нет в других пакетах!

Будучи подкованным теоретически, пытаюсь реализовать еще один сценарий. Перевести сабдивы в трисеты (ну кто же мог подумать, что по умолчанию R3D будет устанавливать наиболее сложный сценарий интерпретации геометрии!?).
Вот так сразу эту конверсию и не найти даже. Я обнаружил ее в меню Tools.

Прежде чем дойти до нижеописанного успешного конвертирования, я повторил вышеописанный неудачный сценарий со свопом еще раза 3 (пробуя различные варианты). Впечатление такое: один неосторожный чих и Риал загоняет машину в глубокий своп, из которого нет нормального выхода.

Перевел. Получил между прочим, всех объектов в двойном экземпляре! И пока Риал не опомнился, удалил сабдивы. Оставшиеся трисеты сгладил. Надо сказать, это дело прошло достаточно быстро и легко. НО(!) теперь скелет хоть и выглядит прекрасно, но во вьюпорте ворочается медленней чем в Синьке по крайней мере. Ладно. Рендерим.

Кидаем самый быстрый пресет. Рендеринг занимает около 40 секунд.

Дима, это не нормально, когда для получения просто адекватного поведения пакета, у того нужно без конца крутить настройки. Я понимаю, у вас уже глаз замыленный, ну тогда не стойте горой за любимую программу там где это и не нужно. Долбите разработчиков, если судьба пакета вам не безразлична. С менеджментом памяти, похоже, у Риала беда... потому они и уменьшили количество undo.... Чуе кiт, чье сало зъiв!
В общем, это не нормально, когда для того чтобы ОНО стояло и не падало, нужно прилагать специальные усилия.

Какое тут нафиг обучение! Потратишь деньги и время и научишься делать примитивные вещи. Тогда как в других пакетах примитивные вещи постигаются самостоятельно, а уже учебное время тратится на продуктивное совершенствование мастерства, а не на борьбу с пакетом.
 

FSV141

Активный участник
Рейтинг
13
#2
Убрал Volume-ы. Выиграл секунд 7... но все равно очень медленно.
 

__yra

Активный участник
Рейтинг
10
#3
FSV141 - вот полностью с тобой согласился бы, если бы столкнулся с такими проблемами впервые взявшись за пакет.
Но так как подобного рода проблему впервые я увидел в 5 версии, после работы в 4,5 где такого не было, я подумал,
что что-то не так со мной или машиной. начал копать и выяснил, что тормоза были связаны с видеодрайверами.
Проверь на нескольких разных машинах, если есть возможность, потому как у меня на обоих машинах скелет крутится
во вьюпорте нормально ( так же как в майке и максе ).
 

FSV141

Активный участник
Рейтинг
13
#4
Ну то что скелет во вьюпорте крутится медленней я даже не учитываю. Сам в свое время тестировал видеокарты в разных пакетах. Знаю, что по-разному они используют видеокарты/драйвера и т.д. и т.п. Это не принципиально.
А вот уход в глухой своп напрягает. Со временем конечно научишься обходить такие моменты, а пока.... Ладно, не фатально. Продолжаем возиться с R3D.
 

__yra

Активный участник
Рейтинг
10
#5
"..А вот уход в глухой своп напрягает.." - так вот именно про это я и писал, сам в 5 версии в такое упёрся, переводил полигоны в сабдивы и машина в дауне, пока драйвера не поменял.
 

ODA

Активный участник
Рейтинг
11
#6
Сергей, я очень надеюсь, что вот эта картиночка приведет к пониманию и чуть добавить осознанности к твоим действиям в RS.

Для начала надо посмотреть на результаты рендера. Как мы видим, они практически одинаковы. Теперь смотрим наверх. SDS для придания формы потребовалось всего 6-ть файсов, а полигональной целых 384-ре. При том, что по варианту 1 (SDS) приближаться к к объекту сколько угодно близко - за счет отсутствия тесселяции поверхность всегда будет оставаться гладкой. С полигональной моделью этого не выйдет - при большем увеличении мы сразу увидим артифакты. Для борьбы с этим полигональную модель перед рендером сглаживают (иногда несколько раз делая Smooth).

Теперь посмотрим порядок действий FSV141. Он берет уже сглаженную полигональную модель (был сделан Smooth в другом редакторе ) и назначает ее как SDS. Что в результате? А то, что система (RS) понимая эту поверхность как SDS, сглаживает ее еще раз! Переводя на понятный язык, в результате мы имеем рендер миллиардов полигонов! Взвалив такую ношу на плечи RS, наш пользователь FSV141 еще не перестает удивляться (а иногда и возмущаться) - почему это система так долго возиться, когда другие пакеты делают это быстрее:)
Обо все этом написано в мануале. Достаточно было прочитать пару страниц и глядишь бы не было недельного обсуждения совершенно тривиальных вещей.
Очень надеюсь, подобное объяснение с картинками все таки приведет к пониманию.

Теперь, что делать со скелетом.
1. Если есть возможность найти исходники модели. То что было до сглаживания в Max.

2. Если п.1 не получается то использовать восстановленную модель (варианту 2)

3. Если так же проблема п.2 то то перевести модель в RS из SDS в Triset. Кстати, если быть внимательным, то в инструменте "To SDS" есть кнопочка Del. orig. Она как раз позволяет избегать дублирования (по умолчанию она выключена).
4. Как быть с OpenGL:) Тут все просто:) Базовые настройки рассчитаны на качетсвенное отображения SDS модели при минимальном количестве топологии. Раз уж так получилось, что у нас топология очень плотная значит нам нужно понизить качество визуализации OpenGL для данной модели. Достаточно установить Wire>Shaded Quality в 1-ку (по умолчанию стоит 5-ть). В нашем случаи качество отображения не уменьшиться (сетка и так очень плотная) но скорость возрастет в разы:)
Так же без потери качества на финальном рендере мы можем для SDS установить Redering Quality в 1 (по умолчанию стоит 2-ка). А так же в настойках рендера установить качество геометрии как LOW (опять же за счет очень плотной топологии мы не потеряем в визуальнойм качестве, но выйграем по времени)

5. Ну и на последок. Всегда учить мат. часть:)
 

Вложения

FSV141

Активный участник
Рейтинг
13
#7
Дима, я вам в очередной раз благодарен за терпение и ваш труд по разъяснению мне... элементарных вещей, но в данном случае он (труд) оказался напрасным. Мне очень жаль ваших сил и времени потраченных впустую. Я не ерничаю. Неужели вы думаете, что я не знаю элементарных вещей про сабдивы??? Ну да ладно...

А вот это:
Раз уж так получилось, что у нас топология очень плотная значит нам нужно понизить качество визуализации OpenGL для данной модели. Достаточно установить Wire>Shaded Quality в 1-ку (по умолчанию стоит 5-ть).
Попало точно в цель! Спасибо. И дело тут не в том, что я про эти фокусы не знаю. Знаю. И когда-то давно в R3D 4.5 даже использовал. Но в других пакетах (например в Синеме) прямого аналога нет. Вот и не привык пользоваться, а потому мысль о этих настройках в голову не приходит... Раньше не приходила. Теперь наверное будет посещать регулярно ;)

Про картинку разговор особый. Ничего нового я на ней не разглядел. Даже и не понял, зачем вы мне ее показываете. То что в памяти Реалсофта для SDS-модели храниться лишь 6 граней да еще горсть служебной информации я понимаю. Но OpenGL-ю по-любому придется отрисовать 384 полигона хоть в случае с "честной" полигональной моделью, хоть с SDS-моделью. Разве что если пользователь выключит гладкое отображение SDS, тогда конечно, будут рисоваться 6 граней.
И рендеру придется разбить 6 граней SDS-модели по соответствующему алгоритму (тут вы наверное могли бы добавить, что алгоритм этот такой же как у Pixar RenderMan) в 384 полигона.
Так что вы хотели сказать, приведя эту картинку??? Я честно не понял.
 

FSV141

Активный участник
Рейтинг
13
#8
Попробовал. Для всех объектов включил качество OpenGL - 1 (качество кривых, плотность сетки и качество затенения). Как я и предполагал, - практически ничего не изменилось. Думаю, это работает лишь для NURBS (качсетво кривых) и SDS - тех случаев, когда пакет может изменить параметры тесселяции. Для трисетов (и любых других "честных" полигональных моделей) это не работает.
Субъективно не помогло и включение дисплейных списков OpenGL и плоской модели затенения.
 

ODA

Активный участник
Рейтинг
11
#9
Отключи синхронизацию при обновлении в OpenGL.

Про картинку без комментариев. Нет так нет:)
 

ODA

Активный участник
Рейтинг
11
#10
В догонку предлагаю сравнить эти два скелетика и найти отличия.
Одна модель имеет размер чуть больше 3MB, другая 173MВ.
 

Вложения

ODA

Активный участник
Рейтинг
11
#11
Вот еще один тест. С одной стороны SDS, c другой полигоны.
 

Вложения

ODA

Активный участник
Рейтинг
11
#13
:) Я хотел услышать еще обоснованное мнение Сергея.
Я очень надеюсь, что он все же увидит причинно-следственные связи свих "проблем" по этим двум картинкам.
 

FSV141

Активный участник
Рейтинг
13
#14
Да нет никаких проблем кроме одной: с большими моделями Реалсофт работает очень нестабильно. Все остальные мои соображения я написал в ветке: "Две проблемы камеры вьюпорта".
 

ODA

Активный участник
Рейтинг
11
#17
Сергей, RealSoft как раз и предназначается для больших и очень больших проектов:). Т.е все его многообразие геометрических типов объектов (в т.ч и SDS) подразумевает только одно - иметь возможность малой кровью обсчитывать большой объем информации. Более того, чем больше выходное разрешение тем больше будет выигрыш по времени по сравнению с пакетами, использующие полигоны (например, Мах, Маya и подобные). Поэтому, там где у Realsoft 1 000 000 "полигонов" в других пакет потребуется в тысячи раз больше (для достижения такого же уровня качества). Попробуй в любом "полигональном" пакете поработать с моделью в 500 000 000 полигонов. Посмотри, что получится:). А для RS это далеко не предел:)
 
Сверху