forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Коллизии (http://forum.boolean.name/showthread.php?t=4427)

Crystal 13.09.2007 01:04

Коллизии
 
Специфика коллизий в блитце такова:

Создаётся коллизионная сфера в объекте, радиус которой регулируеш.

Вопрос:

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

Как мне попасть внутрь?

Magus 13.09.2007 01:19

Re: Коллизии
 
На блитце не кодил, но выскажу решение, которое напрашивается само собой: обрабатывать коллизии не всего дома, а каждой стенки в отдельности.

Crystal 13.09.2007 01:45

Re: Коллизии
 
Ну если не кодил значит наверно незнаеш, что такое сферическая коллизия в блитце )

Вот:



А если отдельно в блитце то мне придётся грузить не модель дома, а отдельные части (соберать как конструктор)

Да и с конструктором из таких стен ничего хорошего не выйдет:



Хотя быть может я не доконца понимаю коллизии в блитце?
Но когда я делал коллизию кораблю с землёй и врезался в неё, я понял что коллизия у моего корабля какрас сферическая:


tormoz 13.09.2007 03:57

Re: Коллизии
 
Используй коллизию сфера(игрок) - полигон(дом)
Если в доме слишком много поликов, сделай невидимую малополигональныю модель повторяющую очертания дома (и стен)

Crystal 13.09.2007 04:15

Re: Коллизии
 
А да это вариант )

H@NON 13.09.2007 11:59

Re: Коллизии
 
А если вдруг у тебя дом движется=))), то используй специально созданную для таких случаев библиотеку. Не помню названия, но она находится в разделе библиотеки, где-то в самом начале. И еще, она не работает с анимированными объектами.

IGR 13.09.2007 12:02

Re: Коллизии
 
Цитата:

Если в доме слишком много поликов, сделай невидимую малополигональныю модель повторяющую очертания дома (и стен)
4000 это много ?? стоит ли делать невидимую малополигональныю модель ??

Raiter 13.09.2007 12:49

Re: Коллизии
 
Нехилый домик такой :)

IGR 13.09.2007 12:50

Re: Коллизии
 
ну дык много или нет ??
я просто незнаю создавать вторую модель или так оставить !!

Raiter 13.09.2007 12:53

Re: Коллизии
 
ну... если у тебя там маленький городок, то думаю мона :) хотя я не знаю...

IGR 13.09.2007 12:55

Re: Коллизии
 
Цитата:

если у тебя там маленький городок, то думаю мона
ну меня там с десяток домиков в среднем по 2000 - 5000 поликов !!

PaKo 13.09.2007 13:04

Re: Коллизии
 
А не проще сделать так: в максе отделить стены от всего остального и назвать иx "stena" а в коде найти и применить к ним коллизию?

dom=LoadMesh("dom.b3d")
stena=FindChild(dom,"stena")

IGR 13.09.2007 13:07

Re: Коллизии
 
Цитата:

А не проще
не, так в моем случае не проще !!
мне нужно и с крышой и со ступеньками !! (некоторые домики 2-х этажные)

PaKo 13.09.2007 13:12

Re: Коллизии
 
Ну тогда нужна низко полигональная модель или пользоваться либами физики.

IGR 13.09.2007 13:35

Re: Коллизии
 
Цитата:

или пользоваться либами физики
о, это мне вообще ненадо !!

moka 13.09.2007 15:14

Re: Коллизии
 
Конечно много, да и 10 домов по 5к полигонов, это 50к а это практически предел для средних видеокарт.

IGR 13.09.2007 15:22

Re: Коллизии
 
поскольку их не все сразу видно, то в кадре где-то до 30000 поликов !!

Crystal 13.09.2007 16:04

Re: Коллизии
 
Делай невидимый колизионный макет из 200 полигонов ))
Какрас полезный макет. В нём можно ступеньки дома наклонной плоскостью сделать, и так реализовать подъём по ступенькам.

IGR 13.09.2007 16:06

Re: Коллизии
 
вопрос : если так много поликов, то буде тормозить, КОГДА ??
когда происходит колизия или всегда ??

XenuS 13.09.2007 16:23

Re: Коллизии
 
если я не туплю, то всегда, расчет коллизии идет постоянно, а значит и лагает всегда...

IGR 13.09.2007 16:33

Re: Коллизии
 
ну проверка в главном цыкле всегда !!
но разница (колизит\неколизит) есть же какаэто ??

moka 13.09.2007 16:36

Re: Коллизии
 
Лагует при вызове UpdateWorld (просчитывает коллизии). Короче говоря всегда.

IGR 13.09.2007 16:38

Re: Коллизии
 
может кто то скрин покажет, какая разница в производительности, если 50000 поликов ??

Crystal 13.09.2007 16:39

Re: Коллизии
 
физикс наверно решил бы проблему
но лучше игра без прилагающихся к ней дров

moka 13.09.2007 16:42

Re: Коллизии
 
Crystal, а причём тут дрова? Физикс бездровный выдаётся для готовых проектов.
IGR, ну сам подумай какая нагрузка на видяху? 50к большая, 150к почти заоблочная для средних и ниже видях, 5к жирафов. (оффисный варриант)

IGR 13.09.2007 20:02

Re: Коллизии
 
вот меня и интересует разница 50000 и 5 000 !!
какая будет разница в ФПС ??

johnk 13.09.2007 20:05

Re: Коллизии
 
Ну по идее 1 : 10 :))

IGR 13.09.2007 20:09

Re: Коллизии
 
Цитата:

Ну по идее 1 : 10
да ну !! :)
было 100 станет 1000 ??
здесь не так измеряется !!

jimon 13.09.2007 20:44

Re: Коллизии
 
график изменений фпс\треугольники имеет ваще не линейное происхождение, да и на разных видухах по разному

IGR 13.09.2007 20:56

Re: Коллизии
 
jimon, ты пример на скрине можеш показать ??
очень интересно посмотреть ??

jimon 13.09.2007 21:19

Re: Коллизии
 
ну блин ... мне такая фигня нафиг не надо :)
зделай пример и посмотри как оно там меняется ...

tormoz 14.09.2007 03:38

Re: Коллизии
 
Цитата:

Сообщение от IGR
jimon, ты пример на скрине можеш показать ??
очень интересно посмотреть ??

А сам проверить можешь ?
я ваще удивляюсь твоим вопросам.
Бедный Джимон. Годик назад он сразу посылал в известном направлении :-D

IGR 14.09.2007 11:33

Re: Коллизии
 
to tormoz: я удивляюсь твоему замечанию !!
а чем это не вопрос ??
я просто не сталкивался с этим и решил спросить !!

moka 17.09.2007 13:58

Re: Коллизии
 
IGR

For n=1 to 5000
Cube=CreateCube()
MoveEntity Cube,rnd(-50,50),rnd(-50,50),100+rnd(-50,50)
Next

и выведи Трис рендеред, а потом просто измени 5000 на 500.
IGR, а ты ленивей оказывается чем я думал ;) Ну как затестишь, выложи и остальным результаты фпсов.

IGR 17.09.2007 14:14

Re: Коллизии
 
ок !! зделаю !! Я не ленивый !! :)

Damp 17.09.2007 16:29

Re: Коллизии
 
Можно еще добавить фпс зависит не столько от количества полигонов сколько от количества энтити и сюрфейсов в них.
А по коллизии... если твой дом неподвижен ему не нужна ни коллиз. сфера ни куб, он сам никаких коллизий создавать не будет, будут коллидится об него ( дом из 4К - это... дворец Абрамовича :) ? )

IGR 17.09.2007 16:32

Re: Коллизии
 
Цитата:

если твой дом неподвижен ему не нужна ни коллиз. сфера ни куб, он сам никаких коллизий создавать не будет, будут коллидится об него
колизия прописывается для обьекта который будет колизится об этот дом !! :)

IGR 18.09.2007 10:57

Re: Коллизии
 
Вложений: 2
Вот собственно график: Вложение 4648
но он условный поскольку невыдержан масштаб по оси ФПС !!
но на нем можно увидеть средние показатили ФПС при заданом количестве полигонов на экране !!

p.s. это для nVidia, на счет ATI там наверное по другому !!

moka 18.09.2007 11:35

Re: Коллизии
 
IGR, хм а на какой машине график составлялся? У меня немного получше, но примерно та же ситуация.

IGR 18.09.2007 11:37

Re: Коллизии
 
Цитата:

IGR, хм а на какой машине график составлялся
на моей !! :)
у меня комп немного слабоват !! :)

moka 18.09.2007 11:43

Re: Коллизии
 
IGR, ну дык, какой проц, озу, видео?

IGR 18.09.2007 11:47

Re: Коллизии
 
celeron 2800+, GeForce 5200, 256 DDR !!
комп уже 2,5 года без единого апгрейда !!
даже мышку не менял !! :)

moka 18.09.2007 11:51

Re: Коллизии
 
IGR, ГАФ! Сколько видяха МБ? Блин, ну почему нельзя сразу развёрнуто всё описать? :)

IGR 18.09.2007 11:55

Re: Коллизии
 
видео естественно 128х128 !!
ну подумай, 2,5 года назад 256мб юзали далеко не все !! :)

HolyDel 19.09.2007 01:30

Re: Коллизии
 
MoKa, а нафиг тебе объем видиопамяти, я так поянл вы просто создавали кубы, без текстур.
1 куб это 8 вершин и 12 триугольников.
на одну вершину скока памяти нада? цвет 4 - байта, позиция - 4 флоата. все.
на один треугольник что нада? три индекса по 4байта каждый итого получаем:
4+4*4 - на вершину = 20
3*4 на треугольник = 12
на куб
8 вершин = 8*20=160
12 треугольников 12*12=144
итогоЖ
304 байта на один куб.
5000 кубов * 304 байта = 1 520 000 - полтора метра видеопамяти!
конечно хз чо там разработчики делали, но даже если принять что они тратят в 10 раз больше чем в идеале, то это все равно будет тока 15 метров.

ЗЫ. кстати, можно было бы и copyentity-ем зодать новые объекты, чтоб видеопамять не захламлять.

ПС. спамибо всем за тесты, побольше бы таких.
хочу еще тесты на отображение текстур, анимированных мд2 моделей, ну и анимированных текстур также, отражения (рендер в кубетекстуру) и пока все. сам делать небуду ибо влом. внимание! в тексте присутствует ирония.

Bazalt 19.09.2007 10:01

Re: Коллизии
 
IGR! я понил одно ты.. ты пытаешся оптимизировать свое детище под слабые машины! что бы все моглибы наслодится в будущим твоим проэктом! на сколько я помню домик 5000 поликов это только без текстуры! с текстурой это будет 10000 поликов! кто считает что это ни так или маловажный факт подправте!! :)

IGR 19.09.2007 11:23

Re: Коллизии
 
to Bazalt, нет я просто провел маленький тест !!

Цитата:

на сколько я помню домик 5000 поликов это только без текстуры! с текстурой это будет 10000 поликов! кто считает что это ни так или маловажный факт подправте!!
5000 поликов так и останутся 5000, их не как не станет 10000 !!

moka 19.09.2007 12:00

Re: Коллизии
 
Их будет удваиваться если использовать мультитекстуринг.

IGR 19.09.2007 12:04

Re: Коллизии
 
о мультитекстуринге и речи небыло !! :)

Bazalt 19.09.2007 12:32

Re: Коллизии
 
MoKa, тормаз как то выкидовал очень хорошую прогу по мультетекстурингу! мне понравилось! только я передумал использовать ее! но ВОПРОС В ДРУГОМ! использование текстуры детал, на меше такойже эффект дает!?

Damp 19.09.2007 13:39

Re: Коллизии
 
Кажется ни текстуры, ни мультитекстуры на количество полигонов не влияют...
А прога тормоза не совсем о мультитекстуринге, но там да, добавляются трианглы как я понял.

IGR 19.09.2007 13:43

Re: Коллизии
 
мультитекстуринге - это наложение несколько текстур на один и тот же полик !!
по этому увеличевается количество памяти которое отводится на один полик, а их как было, допустим 5000, так и осталось !!

Bazalt 19.09.2007 14:31

Re: Коллизии
 
IGR, дамм... теперь ясно все стало!! кстати я домики делал не сплейнами а из квадратов выращивал! но как бы не мудрил до 5000 не дотягивало! как ты так умудрился :)! может шот покажишь? мне если чесно кажеться у тебя там много лишней геометрии ! я так дом из 1800 в 1084 сделалл! правдо времини ушло много! :(

IGR 19.09.2007 14:39

Re: Коллизии
 
я их не делал, а нашел в инете !!
они просто двухэтажные, и там не 5000, а где то 3000 !!
5000 я для примера взял, как бы с запасом !! :)
кста, я тож домики по 1000 делал, но они не красивые !! :(

Bazalt 19.09.2007 14:51

Re: Коллизии
 
IGR- ты просто наверно не экспереминтировал с удолением лишней геометрии! я как то сталкнулся с етим! меня прям занесло! :) я теперь сразу при виде модели стараюсь оценить на сколько ее можно урезать! что бы вид почти не постродал!!! :) так я хотел из воина в 1500 ( для 3Д стратегии !) сделать 450 поликов! :) конечно уродство получилось! но на ростоянии обычном для 3Д стротежик.. очень даже нечего!

IGR 19.09.2007 14:55

Re: Коллизии
 
Цитата:

ты просто наверно не экспереминтировал с удолением лишней геометрии
да ты прав, не доводилось пока !!
я когда моделю что то (эт очень редко бывает), то сразу пытаюсь зделать всё по минимуму, что и другим советую !!

Damp 19.09.2007 17:24

Re: Коллизии
 
Если модели скачаны, то скорей всего их автор не стремился сделать лоуполи и даже наоборот, не удивлюсь если он применял turbosmuth и т.д.
Можно попробовать модификатор optimize.

IGR 19.09.2007 18:03

Re: Коллизии
 
там точно нет turbosmuth !!
и какой turbosmuth если 2-х этажный дом имеет 3000 ??
это вообще оптимально я считаю !!

Crystal 12.10.2007 17:16

Re: Коллизии
 
Появилось время, и дошли руки до коллизий.
Решено было утопить корабль в трёх сферах которым была назначена коллизия. Привязал сферы к кораблю. Вроди всё норм, с кораблём сферы летают, коллизятся, НО! При врезании сферы в объект об который она коллизится она смещается, и никак не влеяет на корабль. Вопщем подскажите как сферы привязать к кораблю чтобы они были как одно целое? Как один меш!


Часовой пояс GMT +4, время: 12:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot