Game Maker - создание игр | HellRoom Games
Май 21, 2025, 00:57:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Расчет уровня детализации  (Прочитано 7075 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« : Январь 06, 2012, 16:37:46 »

LOD
цитата из википедии:
Цитировать
LOD (англ. Levels Of Detail — уровни детализации) — приём в программировании 3D-графики, заключающийся в создании нескольких вариантов одного объекта с различными степенями детализации, которые переключаются в зависимости от расстояния объекта до виртуальной камеры. Смысл приема заключается в том, что нет смысла отображать высокодетализированные объекты, находящиеся на большом расстоянии. Другой метод заключается в использовании одной основной, "Грубо - приближенной", модели и нескольких внешних надстроек к ней. Каждая последующая надстройка к основной модели будет дополняется элементами детализации пропорционально номеру надстройки. То есть на самом большом расстоянии будет отображаться единственная главная модель объекта. С приближением же последнего к камере игрока, к конвейеру отрисовки будут последовательно подключатся последующие надстройки деталей. Использование LOD способно существенно снизить требования к ресурсам компьютера при выводе графики на экран, будь то рендеринг или вывод в реальном времени.

 Один из способов сделать несколько уровней детализации - это рассчитывать расстояние от объекта до игрока, но такой способ очень ресурсоемок и сильно зависит от количества объектов.

 В своём примере я применил другой способ. Разбил всю карту на так называемые зоны. Создал список объектов для каждой зоны. И просто рисую только те объекты, которые рядом с игроком. Это работает намнооооооого быстрее первого способа, и менее зависит от кол-ва объектов.(разница порядка 200фпс, это при относительно небольшом кол-ве объектов)

scn.PNG
Расчет уровня детализации
* scn.PNG (40.61 Кб, 806x632 - просмотрено 1255 раз.)
* LOD_example.gmk (15.09 Кб - загружено 596 раз.)
Записан

Fuge, late, tace
Cuper479
Участник
****

Репутация: 8
Offline Offline

Пол: Мужской
API: Love
Деятельность: PixelArt,C++,Lua,Java
Сообщений: 153


« Ответ #1 : Январь 14, 2012, 00:28:55 »

Круто , но не легче использовать деактивацию объектов.
Записан
Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« Ответ #2 : Январь 14, 2012, 15:37:07 »

Не легче, так же, поменяется от силы одна строчка кода, но не всегда нужно отключать объект..
Записан

Fuge, late, tace
Cuper479
Участник
****

Репутация: 8
Offline Offline

Пол: Мужской
API: Love
Деятельность: PixelArt,C++,Lua,Java
Сообщений: 153


« Ответ #3 : Январь 14, 2012, 22:17:15 »

Смотря какие вот контролеры и всякие прочие можно оставить активированными, а вот объекты типо деревья, камни  вот их можно де активировать когда они уходят к примеру за границу вида.
Записан
Krib
«Старожил форума»
******

Репутация: 114
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [10 дней на форуме]Знаток Game MakerЗа помощь новичкам!
API: Game Maker 8.0 Pro
Сообщений: 951


« Ответ #4 : Январь 14, 2012, 22:19:21 »

Этот пример ориентирован на 3D, и его суть - уменьшить нагрузку на видеокарту.
Записан

Fuge, late, tace
Cuper479
Участник
****

Репутация: 8
Offline Offline

Пол: Мужской
API: Love
Деятельность: PixelArt,C++,Lua,Java
Сообщений: 153


« Ответ #5 : Январь 14, 2012, 22:20:58 »

А ну на 3d это норм ;D!
Записан
Q33
XD
GM Pro user
*

Репутация: 45
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio Master
Сообщений: 325



WWW
« Ответ #6 : Январь 14, 2012, 22:22:13 »

Деактивировав ты снимиш нагрузку ещё с процессора и оперативки!
Записан
Cuper479
Участник
****

Репутация: 8
Offline Offline

Пол: Мужской
API: Love
Деятельность: PixelArt,C++,Lua,Java
Сообщений: 153


« Ответ #7 : Январь 14, 2012, 22:23:48 »

и не нужно писать большие строки кодов!
Записан
Alcatraz
Flight Dream Studio
«Старожил форума»
******

Репутация: 392
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [100 дней на форуме]За лояльность! [+300 репутации]Знаток Unity 3D3 место в конкурсе: Адекватные игры #2 [Стимпанк]2 место за игру: Dead Night (Конкурс Золотые Руки)...
API: Unity 3D
Деятельность: C#, C++, UNITY3D
Сообщений: 3392


http://vk.com/alcatraz_rus


WWW
« Ответ #8 : Январь 15, 2012, 08:49:31 »

Этот пример ориентирован на 3D, и его суть - уменьшить нагрузку на видеокарту.
3Д игры ГМ видео карту грузить не должны.. 
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.07 секунд. Запросов: 30.