Войти
ПроектыФорумОцените

Случайный Космос (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
0:25, 17 окт. 2010

Super_inoy
Что такое GS?

> нужно генерить в отдельном потоке 3-4 сетки с лод на 1 более высокого качества и рисовать соответственно если не подлетел то
> пропуская индексы (сам подумай как), если подлетаешь ближе то рисуешь в полном качестве и генеришь следующий лод
каждый треугольник бьется рекурсивно в зависимости от расстояния до камеры
сетка неоднородная как видишь
меш генерируется каждый кадр

у тебя небо не процедурное?


#16
0:27, 17 окт. 2010

Aslan
GS - geometry Shader
http://www.gamedev.ru/files/images/?id=36925 - вот туд процедурное, а остальные скрины бред и не моё(там и из крайзиса есть), правда кое что я сюда не постил...

#17
0:28, 17 окт. 2010

Aslan
> каждый треугольник бьется рекурсивно в зависимости от расстояния до камеры
> сетка неоднородная как видишь
> меш генерируется каждый кадр
так это можно исправить. то что бьётся рекурсивно не страшно, а вот то что меш каждый кадр генерится это плохо(точнее то что он каждый кадр гоняется по шине), ты можешь сгенерить на уровень выше качество и изменять индексный буфер для эмуляции плавного лода.
кстати - sqrt для расстояния до камеры замени выборкой из таблицы(2048-4096 элементов), качества должно хватить а скорость возрастёт.

9 FPS - нереально низкое значение, голый ландшафт не должен выдавать меньше 100-150 фпс, ну никак, иначе играбельного результата не будет. Сейчас закинешь объекты - фпс просядет до 5 и всё...

А вообще юзай тесселяцию и будет тебе счастье :)

#18
0:41, 17 окт. 2010

Super_inoy
> то что бьётся рекурсивно не страшно
напротив так и нужно, в этом смысл ЛОД
> а вот то что меш каждый кадр генерится это плохо
по идее конечно генерить надо при перемещении

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

> кстати - sqrt для расстояния до камеры замени выборкой из таблицы
ну не так примитивно у меня, я использую квадрат расстояния
sqrt - для нормализации точки середины ребра на сфере радиуса 1
таблицу да, можно для первого приближения, потом методом Ньютона добавить точности
просто пока этими мелочами не занимался

#19
0:49, 17 окт. 2010

Aslan
> или выводить недостроенный меш
нет лучше всё же выводить достроенный меш :), но генерить его в отдельном потоке по состоянию камеры накадре где был полностью создан предыдущий меш.
> напротив так и нужно, в этом смысл ЛОД
я понимаю, я говорил о том что это не причина тормозов (ну точнее не самая серьёзная).

В чём проблема низкого ФПС:
- Объекты - ну тут не очень страшно, снизишь кол--во поликов, сделаешь статическими и они будут отжирать не много;
- текстура ландшафта. А вот с этим могут возникнуть огромные проблемы, потому что частично она будет генерится а размер сетки (детализация) у неё повыше чем у ландшафта...


Поэтому максимально оптимизируй свой ландшафт.
Даже если расчитывать на core i7 процы алгоритм нужно ускорить раза в 2 и вытащить в отдельный поток.

#20
1:02, 17 окт. 2010

Super_inoy
> нет лучше всё же выводить достроенный меш :)
ессн-но выводить крупные трики, если след.уровень еще не посчитался, там дерево нужно
получится как в гугл ёс, когда быстро переместишься, сначала показывает низкие уровни
кстати я написал клиент для google.maps

>> напротив так и нужно, в этом смысл ЛОД
>я понимаю, я говорил о том что это не причина тормозов (ну точнее не самая серьёзная).
Похоже в твоем понятии ЛОД - это весь ландшафт с различным разрешением. У меня это дерево, т.е. что дальше от камеры - то с меньшим разрешением

> Объекты - ну тут не очень страшно
для них тоже будет ЛОД, вообще для всего

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

> Даже если расчитывать на core i7
Закладываюсь на средненький CPU и FFP

#21
1:10, 17 окт. 2010

Aslan
> Похоже в твоем понятии ЛОД - это весь ландшафт с различным разрешением. У меня
> это дерево, т.е. что дальше от камеры - то с меньшим разрешением
... нет в моём понимании лод это уровень детализации и в твоём случае он разный для каждой отдельной треугольной области, да у тебя древовидная структура(уровень трианглов вложенного уровня зависит от уровня родителей в дереве, это всё ясно в моей демке было точно так же только на квадах), но видеокарте желательно скармливать ландшафт целиком или большими патчами а не трианглами, поэтому я предлагаю разбить всё(можно не всё а то что дальше определённого расстояния) на патчи...

#22
8:27, 17 окт. 2010

Переделай движущие частицы, которые появляются при увеличении скорости перемещения камеры... (они у тебя синего цвета) очень некрасиво смотрятся...

#23
12:50, 17 окт. 2010

у меня дикие лаги... сама планета мигает, появляясь и изчезая каждую секунду... фпс микроскопический...

#24
11:51, 18 окт. 2010

Super_inoy
HikTronic
ashujon
забыл, отрисовывается по таймеру с периодом 100мс
добавил замер времени отрисовки
30К триков - 20 мс, если отключить сетку клавишей C, а то меш тупо строится 2 раза

VSDan
а это уже что-то с OpenGL у тебя
или комп совсем древний

#25
18:17, 18 окт. 2010

Aslan
> забыл, отрисовывается по таймеру с периодом 100мс
УЖАС... это же ограничение в макс 10 фпс... меньше 30 - жесть. И вообще таймер в играх обычно не используют, а считают дельту через precision функцию...

#26
20:46, 18 окт. 2010

Super_inoy
> это же ограничение в макс 10 фпс
Ну да ), а как надо? Моя цель не макс. загрузить CPU, а выдать стабильно 10-20 кадров, там же еще обработка др.объектов будет, много чего
> а считают дельту через precision функцию
я так и считаю промежуток с прошлого кадра через QueryPerformanceCounter(), таймер то очень приблизителен и работает через очередь сообщений
далее x += v * dt, вся физика в др.демке "шары" на моем сайте так и считается

#27
21:03, 18 окт. 2010

Aslan
> Ну да ), а как надо? Моя цель не макс. загрузить CPU, а выдать стабильно 10-20
> кадров, там же еще обработка др.объектов будет, много чего
надо поставить sleep(0) (отдаёт квант времени) в цикл если хочешь чтобы другие приложения нормально выполнялись, и это всё... 10 фпс это АД

#28
21:19, 18 окт. 2010

Super_inoy
> надо поставить sleep(0) (отдаёт квант времени) в цикл если хочешь чтобы другие приложения нормально выполнялись, и это всё...
Другие приложения отлично выполняются при текущем варианте. Чем GetMessage() хуже?
> 10 фпс это АД
Без проблем 30 поставить и по-моему хватит. У всех уже LCD и гнаться за 100 фпс бессмысленно
Выложу новую версию когда будут значительные изменения

#29
22:11, 18 окт. 2010

Aslan
> Другие приложения отлично выполняются при текущем варианте. Хотя не знаю что в
> цикле обработки сообщений, программа на C++ Builder
конечно они отлично выполняются только всё тормозит...

Страницы: 1 2 3 4 Следующая »
ПроектыФорумОцените

Тема в архиве.