![]() |
Ответ: Советы по оптимизации
Цитата:
Если ентити - меш, и стоит режим пика по треугольникам - происходит проверка по боксу ( точнее по дереву боксов ) и потом уже по треугольникам ( в листьях дерева ) Вот тебе пруф, развертка CameraPick ( некоторые неважные места я пропустил ): файл blitz3dsdk/dev/source/bbsdk/bbblitz3d.cpp функция bbCameraPick Код:
943| Entity * bbCameraPick( Camera *c,float x,float y ){ Код:
938| static Object *doPick( const Line &l,float radius ){ метод World::traceRay Код:
127| Object *World::traceRay( const Line &line,float radius,ObjCollision *curr_coll ){ Код:
87| bool World::hitTest( const Line &line,float radius,Object *obj,const Transform &tf,int method,Collision *curr_coll ){ метод Object::collide Код:
48| virtual bool collide( const Line &line,float radius,::Collision *curr_coll,const Transform &t ){ return false; } файл blitz3dsdk/dev/source/blitz3d/meshmodel.cpp этот самый перегруженный метод MeshModel::collide, берет коллайдер и проводит коллизию с сегментом Код:
290| bool MeshModel::collide( const Line &line,float radius,Collision *curr_coll,const Transform &t ){ Код:
282| MeshCollider *MeshModel::getCollider()const{ Код:
133| MeshCollider *getCollider()const{ непонятно конечно почему сразу лучом не трассирует, но не суть Код:
54| bool MeshCollider::collide( const Line &line,float radius,Collision *curr_coll,const Transform &t ){ Код:
66| bool MeshCollider::collide( const Box &line_box,const Line &line,float radius,const Transform &tform,Collision *curr_coll,MeshCollider::Node *node ){ сначала проверка на пересечение с боксом узла дерева ( потом уже трассировка до листов дерева, а в листьях трассировка треугольнков ) ЗЫ Есь чо возразить?:) |
Ответ: Советы по оптимизации
Цитата:
там даже при остуствии пика по бокусу (курсор уведен в сторону) проверка пика по геометрии работает в 15 раз медленне проверки по боксам. хотя должна быть одинаковой. видимо blitz3D и blitz3D SDK не одно и то же. |
Ответ: Советы по оптимизации
Цитата:
Кстати счетчик Stats3D ( 0 ) показывает ( странно что обнуление не сделали ) как раз кол-во треугольников "собранных" по время трассировки дерева, и по нему видно что даже когда уводишь курсор, трассировка доходит до листьев дерева. Цитата:
|
Ответ: Советы по оптимизации
Цитата:
Цитата:
Покрутил побольше тест с pick mode mesh, если в рендер попадают меши фпс сразу падает. Пробовал наводится на пустое место на небольшом расстоянии - фпс в норме. Далее начиная отдаляться,не двигая камеру, фпс начинает падать. Т.е. берутся пик-меши в опеределенном диапазоне от центра экрана. А с другой стороны, если расположить шары в линию, т.е. чтоб выглядело как линия горизонта, и расположить центр чучуть выше -всё норм. Что противоречит предыдущему выводу. Короче - говнокод! |
Ответ: Советы по оптимизации
Сами вы нарики, с кривыми руками на любом ЯП будет все тормозить.
Ну вот НАХЕРА пикать в цикле 100500 высокополигональных мешей? Блеать, это на асме тоже будет тормозить ! Мозг включить надо и все "проблемы" уйдут. Варианты всегда есть, как минимум сделать малополигональный невидимый "пик-меш" с отсечением по секторам, или расстоянию (иф двигался - выключить всем пикмод, включить тем кто близко и тд). И да, используйте ентитипик, он быстрее на многих машинах и удобнее. Используйте ресурсоемкие функции ТОЛЬКО ПО НЕОБХОДИМОСТИ ПО УСЛОВИЮ, а не в цикле от балды (непременный атрибут говнокода всех начинающих). И хватит уже списывать свою убогость на прекрасный инструмент. |
Ответ: Советы по оптимизации
http://www.youtube.com/watch?v=K0_eh...ilpage#t=66 s
блин надо не полениться и смастерить игрулю, показывающую "широкий мир" в B3d |
Ответ: Советы по оптимизации
Слушай, тормоз, давай без оскарблений. Каждый может сказать, включи мозг, руки не от туда..
Ты сам мозг включи! Во-первых там всего 1000 мешей, это вполне реальная цифра для сценографа. Во-вторых. Я не собираюсь 1к мешей пикать. Это тест, меня просто заинтересовала производительность пика. З.Ы. Для тебя может это глупым кажеся. Но кто-то для себя какие-то выводы сделает. |
Ответ: Советы по оптимизации
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Ответ: Советы по оптимизации
Цитата:
Я не могу представить ситуацию где бы это было нужно Цитата:
Цитата:
Цитата:
зы. я как-то вытащил свой древний нубский мега-проЭкт 2002 года и прооптимизировал. Цикл выполнялся 30 мс, после оптимизации 4-5 мс. Это без ускоряющих длл, только правильная логика игры и взаимодействий. А в игре объектов 7-11 тыс одномоментно. |
Ответ: Советы по оптимизации
Да ладно, хватит писькой мериться. )
Без обид, тормоз, но ты реально иногда тормозишь. НИКТО НЕ СОБИРАЕТСЯ ПИКАТЬ 1000 мешей в цикле!!! Цитата:
|
Ответ: Советы по оптимизации
burovalex, без обид, но мал ты еще на тормоза наезжать :)
tormoz, вся фишка в тестах - узнать цену метода. ни больше - ни меньше. если методы быстрые - то можно меньше думать - больше прыгать. если методы медленные надо извращаться. Цитата:
|
Ответ: Советы по оптимизации
holydel, ты как плагиат - тоже самое, только своими словами, без обид :-D
А на тормоза я и не наезжаю, просто пытаюсь объяснить, что смысл теста - это не кривые руки ) |
Ответ: Советы по оптимизации
Эти тесты 100500 раз уже сделаны и пережеваны. У меня батхерт, когда впустую на блитц наезжают.
К слову, еще в 2005 на офсайте проскакивала "грамотная система коллизий и пиков" на длл. И быстрее она была аж на 13% в коллизиях и 5% в пиках. Так что кривизна движка сильно преувеличена. |
Ответ: Советы по оптимизации
Цитата:
И скажи, разве плохо что в теме "Советы оптимизации" появился пример с производительностью EntityPickMode??? |
Ответ: Советы по оптимизации
Мерить производительность ФПС - мягко говоря неправильно. Сделай нормальный тест с замером времени и правильной интерпретацией - похвалим. ;)
|
Часовой пояс GMT +4, время: 11:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot