Render.ru

gamedev: проект "Л.О.Х.Е.Р."

Zanozza 10180

Активный участник
Рейтинг
5
да я просто про технику разрушений упомянул) ASD то не из крайтек, а уже модели вычитать умеет..
Буленовские операции разве ленивый не имеет в арсенале движка.

Но не надо мешать в одну кучу вещь, называемую вами "вычитание", с получением конвексной геометрии.

Поясняю. Приглядитесь к рекламируемому вами скриншоту. Визуально вырезали сетку? - здорово. Только вот расскажите теперь мне, как вы собираетесь дальше использовать эту сетку в игре. Точнее, как подобное "вычитание" повлияет на collision mesh этой модели? По уму, так там теперь вместо одной коллижен меша надо использовать порядка 8-10. Или вы полагаете использовать SDF волюметрики, как в Houdini, динамике которого неважна конвексность?

Теперь перейдем к Crysis. Если вы заметили, там нигде нет буленовских операций с сеткой, подобной автобусу на вашем скриншоте. "Режутся" строго простые примитивы по строго предопределенным "маячкам". То есть стволы деревьев - простые цилиндры, домишки - совокупность боксов. И никак иначе.

И опять же, самый быстрый и визуально правдоподобный путь - использование pre-shattered геометрии, то есть предварительно порезанной, подготовленной.

Насчет PhysX - имхо, лучше использовать Havok, ибо его много легче прикручивать...
 

crol

Знаток
Рейтинг
66
Zanozza
>Но не надо мешать в одну кучу вещь, называемую вами "вычитание", с получением конвексной геометрии.
Вовсе и не мешаю, суть вычитания в том что из одного меша вычитается другой, то что получилось в результате отделяется в одельный меш, который после становится конвексом.

>Поясняю. Приглядитесь к рекламируемому вами скриншоту. Визуально вырезали сетку? - здорово.
>Только вот расскажите теперь мне, как вы собираетесь дальше использовать эту сетку в игре.
>Точнее, как подобное "вычитание" повлияет на collision mesh этой модели?

То что вырезали - в конвекс, то что осталось оставляем статикой. Колижн меш обновляем или пересоздаем новый.

>И опять же, самый быстрый и визуально правдоподобный путь - использование pre-shattered геометрии,
>то есть предварительно порезанной, подготовленной.

Спорный вопрос, проше ли динамически создавать геометрию со срезанных мешей или заранее все разрезать на куски и все это грузить и держать в памяти. Все упирается в скорость, но посмотрим насколько быстро создавать конвексы в динамике, само вычитание происходит очень быстро.

>Насчет PhysX - имхо, лучше использовать Havok, ибо его много легче прикручивать...
1 - куда уж проще то ? о_О Да и по хавоку меньше доков\примеров\уроков\обсуждений в форумах, чем по любому бесплатному движку.
2 - PhysX полностью бесплатен.
3 - PhysX это не только просчет на cpu но и на gpu.

Про Crisis был уверен что там не так.. Блин, каждое дерево держать набором физических объектов, с джоинтами.. ужас.

сорри за такой оффтоп.
 

Zanozza 10180

Активный участник
Рейтинг
5
Вовсе и не мешаю, суть вычитания в том что из одного меша вычитается другой, то что получилось в результате отделяется в одельный меш, который после становится конвексом.
То есть, получая пустое пространство в автобусе (как в вашем скриншоте), тем не менее вы не можете в него зайти?

Или вы как-ти иначе понимаете конвексную геометрию?

Спорный вопрос, проше ли динамически создавать геометрию со срезанных мешей или заранее все разрезать на куски и все это грузить и держать в памяти.
Открою маленький "секрет" - стриминг рулит. Я имею в виду динамическую подгрузку. Все взрослые движки, а также более-менее серьезные см. Quest3D) имеют такую функциональность.

Более того, инстансы - тоже великая вещь. Поясняю. Имея 100 одинаковых обьектов-инстансов (например, колонны), вы каждый раз получите разные варианты разрушения, так как юзер всегда будет стрелять с разным вектором и т.д...

но посмотрим насколько быстро создавать конвексы в динамике
Я могу вам сразу сказать, насколько ;)
 

crol

Знаток
Рейтинг
66
>То есть, получая пустое пространство в автобусе (как в вашем скриншоте), тем не менее вы не можете в него зайти?
>Или вы как-ти иначе понимаете конвексную геометрию?

ОМГ. Во первых чего вы к автобусу приуепились), он как демка вычитания, а разрушения они для стен нужны, во вторых объект от которого отрезают остается статичным, а значит в него то зайти можно. Вот отделяемый объект он делаться будет конвексом, но опять же он не будет размеров с автобус.

>стриминг рулит
возможно, не интересовался.

>Я могу вам сразу сказать, насколько ;)
кстати не я разработчик этой идеи) я просто упомянул что есть такая технология и знаю человека который ее пробует реализовать.
Сам я пока не задумываюсь о разрушаемости, у меня менее масштабные цели.
 

Zanozza 10180

Активный участник
Рейтинг
5
О да, я такой, как прицеплюсь... :)

Вы не подумайте, уважаемый crol, что моя цель - "чисто дое...ся", просто во всем я предпочитаю ясность.

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

Во всем важен приоритет: если скорость, то -> максимальная подготовка объекта для движка "ручками". То же самое и для лучшего визуального результата.

Ну а если важен сам факт "разрущаемости", то его в принципе можно сделать и процедурным, но я до сих пор еще не видел хорошего процедурного результата. Если кто сможет показать - я буду только рад...
 

Spike 72481

Активный участник
Рейтинг
5
Простите за дубовость, но что такое стриминг?
И что такое инстансы?

Более того, инстансы - тоже великая вещь. Поясняю. Имея 100 одинаковых обьектов-инстансов (например, колонны), вы каждый раз получите разные варианты разрушения, так как юзер всегда будет стрелять с разным вектором и т.д...
Почему стреляя по ним с разных сторон, получаться будут разные разрушения?
 

Zanozza 10180

Активный участник
Рейтинг
5
Стримиг (streaming) - то есть динамическая подгрузка объектов, уже во время игры. Есть свои нюансы с днамикой, светом т.д. Но все работает уже во многих играх.

Инстансы - совсем просто - это "двойники" объектов. То есть у вас есть один "образец" на уровне, а далее используется уже его "указатель". То есть на следующем месте уже что-то вроде "Объект N1 с такими-то трансформами".

Насчет разрушений: Возьмите, допустим, 4 кубика. Постройте колонну из них. Ткните пальцем в одном месте. Разрушили.
Теперь верните кубики точно в такое же положение. Ткните немного в другом месте. Разрушение будет другое, правильно? При одинаковой структуре, ваша колонна разрушится по-другому, потому что приложен разный вектор. Понятно? Это - база. Я не буду "вдаваться в дебри" с Damage Stages объектов, переключение запеченой динамики в реального времени и т.д...
 

Spike 72481

Активный участник
Рейтинг
5
Спасибо за объяснение.

Оказывается я и хотел инстансы ввести, просто не занл как они называются. Ну у меня почти так и есть. Модель в памяти одна, просто на разных местах рисуется. Что касается разрушений - то тут у меня вышла заминка. Как её по разному деформировать в разных местах.. Это наверно нужно создать списки разрушений для каждой копии модели.

Насчет разрушений: Возьмите, допустим, 4 кубика. Постройте колонну из них. Ткните пальцем в одном месте. Разрушили.
Теперь верните кубики точно в такое же положение. Ткните немного в другом месте. Разрушение будет другое, правильно? При одинаковой структуре, ваша колонна разрушится по-другому, потому что приложен разный вектор. Понятно? Это - база. Я не буду "вдаваться в дебри" с Damage Stages объектов, переключение запеченой динамики в реального времени и т.д...
Если я правильно всё понял... то я так и делаю! Т.е. модель рассыпается за части, при этом учитывается вектор пули, который разбрасывает осколки. Они разлетаются в разные стороны и по вектору. И выходит что каждый раз модель разрушает на осколки по разному.

Разве я не гений? :D Вам в Sony такие нужны? шучу
 

haLien

Пользователь сайта
Рейтинг
2
Это, товарищ агент Смит, слово "Рентген" правильно пишется с буквой "т" ;)
- Не зря ты всетаки в школу ходил, товарищ Zanozza...Теперь вот исправлять всех можешь, что бы мы без тебя делали? Прошу обратить ваше внимание на то, что игра является комедийной, тоесть с юмором. И если там написано "РЕНГЕН" - значит так оно и нужно :)))))
 

Zanozza 10180

Активный участник
Рейтинг
5
Чистое имхо, уважаемый. Если это вы считаете юмором, то так тому и быть.

Но, опять же, по-моему, уж лучше делать стилистический упор, вроде: "Рунген", "Хирурген", "Складунг" и т.д., чем классические грамматические ошибки как у вас...

Небольшое замечание вослед, по "грязным" текстурам: делайте грязь оправданной. То есть не "давай наляпаем абы как", а снизу - побольше, с потеками и т.д...
 

haLien

Пользователь сайта
Рейтинг
2
Небольшое замечание вослед, по "грязным" текстурам: делайте грязь оправданной. То есть не "давай наляпаем абы как", а снизу - побольше, с потеками и т.д...
Стараемся ! Делаем именно так ! Просто те модели которые представленны выше, были предворительно помыты xD
 
Сверху