Проекты
GameDev.ru / Проекты / Форум / Случайный Космос (2 стр)

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

Страницы: 1 2 3 4 Следующая »
AslanПостоялецwww17 окт. 20100:25#15
Super_inoy
Что такое GS?

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

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

Super_inoyЗабаненwww17 окт. 20100:27#16
Aslan
GS - geometry Shader
http://www.gamedev.ru/files/images/?id=36925 - вот туд процедурное, а остальные скрины бред и не моё(там и из крайзиса есть), правда кое что я сюда не постил...
Super_inoyЗабаненwww17 окт. 20100:28#17
Aslan
> каждый треугольник бьется рекурсивно в зависимости от расстояния до камеры
> сетка неоднородная как видишь
> меш генерируется каждый кадр
так это можно исправить. то что бьётся рекурсивно не страшно, а вот то что меш каждый кадр генерится это плохо(точнее то что он каждый кадр гоняется по шине), ты можешь сгенерить на уровень выше качество и изменять индексный буфер для эмуляции плавного лода.
кстати - sqrt для расстояния до камеры замени выборкой из таблицы(2048-4096 элементов), качества должно хватить а скорость возрастёт.

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

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

AslanПостоялецwww17 окт. 20100:41#18
Super_inoy
> то что бьётся рекурсивно не страшно
напротив так и нужно, в этом смысл ЛОД
> а вот то что меш каждый кадр генерится это плохо
по идее конечно генерить надо при перемещении

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

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

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

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


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

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

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

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

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

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

Super_inoyЗабаненwww17 окт. 20101:10#21
Aslan
> Похоже в твоем понятии ЛОД - это весь ландшафт с различным разрешением. У меня
> это дерево, т.е. что дальше от камеры - то с меньшим разрешением
... нет в моём понимании лод это уровень детализации и в твоём случае он разный для каждой отдельной треугольной области, да у тебя древовидная структура(уровень трианглов вложенного уровня зависит от уровня родителей в дереве, это всё ясно в моей демке было точно так же только на квадах), но видеокарте желательно скармливать ландшафт целиком или большими патчами а не трианглами, поэтому я предлагаю разбить всё(можно не всё а то что дальше определённого расстояния) на патчи...
alex_eyПостоялецwww17 окт. 20108:27#22
Переделай движущие частицы, которые появляются при увеличении скорости перемещения камеры... (они у тебя синего цвета) очень некрасиво смотрятся...
VSDanПостоялецwww17 окт. 201012:50#23
у меня дикие лаги... сама планета мигает, появляясь и изчезая каждую секунду... фпс микроскопический...
AslanПостоялецwww18 окт. 201011:51#24
Super_inoy
HikTronic
ashujon
забыл, отрисовывается по таймеру с периодом 100мс
добавил замер времени отрисовки
30К триков - 20 мс, если отключить сетку клавишей C, а то меш тупо строится 2 раза

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

Super_inoyЗабаненwww18 окт. 201018:17#25
Aslan
> забыл, отрисовывается по таймеру с периодом 100мс
УЖАС... это же ограничение в макс 10 фпс... меньше 30 - жесть. И вообще таймер в играх обычно не используют, а считают дельту через precision функцию...
AslanПостоялецwww18 окт. 201020:46#26
Super_inoy
> это же ограничение в макс 10 фпс
Ну да ), а как надо? Моя цель не макс. загрузить CPU, а выдать стабильно 10-20 кадров, там же еще обработка др.объектов будет, много чего
> а считают дельту через precision функцию
я так и считаю промежуток с прошлого кадра через QueryPerformanceCounter(), таймер то очень приблизителен и работает через очередь сообщений
далее x += v * dt, вся физика в др.демке "шары" на моем сайте так и считается
Super_inoyЗабаненwww18 окт. 201021:03#27
Aslan
> Ну да ), а как надо? Моя цель не макс. загрузить CPU, а выдать стабильно 10-20
> кадров, там же еще обработка др.объектов будет, много чего
надо поставить sleep(0) (отдаёт квант времени) в цикл если хочешь чтобы другие приложения нормально выполнялись, и это всё... 10 фпс это АД
AslanПостоялецwww18 окт. 201021:19#28
Super_inoy
> надо поставить sleep(0) (отдаёт квант времени) в цикл если хочешь чтобы другие приложения нормально выполнялись, и это всё...
Другие приложения отлично выполняются при текущем варианте. Чем GetMessage() хуже?
> 10 фпс это АД
Без проблем 30 поставить и по-моему хватит. У всех уже LCD и гнаться за 100 фпс бессмысленно
Выложу новую версию когда будут значительные изменения
Super_inoyЗабаненwww18 окт. 201022:11#29
Aslan
> Другие приложения отлично выполняются при текущем варианте. Хотя не знаю что в
> цикле обработки сообщений, программа на C++ Builder
конечно они отлично выполняются только всё тормозит...
Страницы: 1 2 3 4 Следующая »

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

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