GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (54 стр.)

Сообщения на форуме пользователя Andrey (54 стр.)

OсTree как вы им пользуетесь?6 апр. 201017:00#16
susageP
> Если все данные расположить в порядка: за узлом всегда следуют его сыновья то можно сразу за один заход отрендить изил и его сыновей. но это для статик цен.
за узлом всегда сыновья - это как в пространстве с учетом положения камеры? или в адресах памяти? или в коде? Что-то мысль не уловил.
Как-это так расположить?
innuendo
> можно octree а можно иерархией сцены сделать
Дерево это и есть иерархия
OсTree как вы им пользуетесь?6 апр. 201016:27#13
SashkaStudent
по коду вроде все нормально. попробуй убери условия с цикла, хотя мало что даст.
if node^.child_nodes[i] <> nil
Сложи все узлы без пропусков в список дочерних
и храни их число, а не 7.
Проверь загруженность CPU, отключив полностью отрисовку при обходе дерева.
>у меня к тебе просьба, можешь скинуть модель уровня, которая у тебя в деме в формате .3ds или .ase я проверю у себя.
Найди книгу Сергея Гайдукова там он работает с утилитами из nVidia SDK которые ase читают. Если что, сегодня дома посмотрю max модель, может осталось, очень давно я уже писал это.
>Draw(node^.ports,node^.num_ports);
а тут что?
innuendo
> а иерархия сцены не спасёт отца русской... ?
Ты вообще про что? у меня есть иерархия.
OсTree как вы им пользуетесь?6 апр. 201016:09#11
innuendo
до 50% в среднем. Устраивает?
OсTree как вы им пользуетесь?6 апр. 201015:29#9
_Marchello_
>Так а чем оно мне поможет в этом случае?
У него же размер узлов в пределах 1 родителя может быть разным, как раз для случая больших треугольников подходит.
OсTree как вы им пользуетесь?6 апр. 201014:59#6
_Marchello_
>Может есть какие-то хитрые но эффективные алгоритмы в этом случае?
AABB tree. ?
SashkaStudent
Кстати запости кусок кода как дерево обходишь. И перенеси тему в раздел графика...
OсTree как вы им пользуетесь?6 апр. 201014:54#4
SashkaStudent
>так как обход по дереву и и проверка попаданий узлов в пирамиду видимости прилично тормозят компутер
Значит мало полигонов, простая геометрия, много вызовов glDrawElements, много вызовов фукция проверки боксов узлов - это все просаживает производительность.
У тебя Octree я так понимаю для геометрии?? т.е. внутри листьев полигоны? Я делал такую демку. Но прирост у меня был по любому.
Делаешь единый VB/IB для всей геометрии(если влезет) с листьями, ассоциируешь стартовые вершины индексы и число полигонов для отрисовки.
Нужно оптимально подобрать число полигонов в листе по отношению с общим числом полигонов во всей геометрии, нужно учесть что будут много листьев с маленьким число полигонов, что не будет оптимально, нужна сортировка по материалам, если у тебя их много...
Вот посмотри демку.
По нажимай "O" для включения/отключения отрисовки через Octree/прямой рендер.

Как правильно организовать цикл рендеринга?6 апр. 201014:43#56
Phoenics
ага, тогда ясно все.
Как правильно организовать цикл рендеринга?3 апр. 201023:05#53
Phoenics
> Чёта я не врубился зачем на MaterialID целых 30 бит?
Не забывай про выравнивание и как это все в памяти сидит. Там нету толка от short. Не съэкономишь на этом
Cone Step Mapping Demo. нужны 3.0 и выше, шейдеры. убрал все баги. потестите пожалуйста.3 апр. 201022:31#36
MAMONT-92
> > Зачем ты дебилдере пишешь?
> ????
Я имел ввиду зачем ты на Builder'е пишешь?
ATI X1300 такая-же ситуация:
http://img59.imageshack.us/i/56950067.jpg/
В посте 21 была карта 7600GS
Cone Step Mapping Demo. нужны 3.0 и выше, шейдеры. убрал все баги. потестите пожалуйста.2 апр. 201016:08#21
MAMONT-92
тоже самое что и у 0xdeadc0de
Зачем ты дебилдере пишешь? :)

Правка: тег

Правка: 2 апр. 2010 16:10

Кто может жить без STL ?31 мар. 20109:50#127
Pokimon
> На сегодняшний день Linux стандарт ОС для всех.
Еще бы она была полностью POSIX совместимая, было бы вообще круто.
Оцените велик (аллокатор для стл) буду рад критике26 мар. 201011:39#7
Kloun
ты попробуй new/delete перегрузи и подсунь внутрь dlmalloc. Возможно и очень эффективно будет.
DirectX 90.c Ошибки при установке SetRenderState в DEbug режиме26 мар. 20109:41#7
Phuntik
> pd3dDevice->GetRenderState(D3DRS_LIGHTING, &state);
лучше не делать таких запросов, а хранить Render-State'ы и вызывать установку в случае не совпадения с текущим.
Падает на - SwapBuffers(hDC); как только в дело вмешивается 3D Max :)23 мар. 201016:45#9
FDsagizi
По идее тема должна быть в разделе графика.
попробуй проверять свое окно:
    if (IsWindow(hWnd)) {
      SwapBuffers(hDC);
    }

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр