Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
alone_mamont
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 2
#1

LibGdx + Box2D. Culling. Отсечение невидимых объектов при рендеринге - Программирование Android

29.04.2014, 10:55. Просмотров 727. Ответов 0
Метки нет (Все метки)

Здравствуйте. Помогите, пожалуйста, советом.
В создаваемом платформере использую box2d + libgdx. Игровые объекты имеют ссылку на тело box2d, а тело box2d в userData ссылку на игровой объект. Когда надо рендерить экран, спрайты и текстуры для отрисовки получают position, border, rotation из тел. Как мне определить тела в box2d world'е которые попадают в viewport моей камеры, чтобы рендерить только их?Сначала использовал box2dRender и такой вопрос меня не волновал, передавал туда матрицу камеры и не задумывался о том как здесь возможно организовать culling.

Кроме варианта, как перебирать все world.getBodies() и смотреть какие из них попадают в область видимости через
Java
1
boolean com.badlogic.gdx.graphics.Camera.Frustum.boundsInFrustum(BoundingBox bounds)
Class Camera, ничего в голову не приходит. Но как быть если уровни твоего платформера длинной в несколько экранов и каждый раз перебирать все тела звучит как не очень хорошая практика. Наверняка существуют какие-то общепринятые методы. Например, когда раньше я делал платформер без box2d, "жизнь была легка и безоблачна", двумерный массив как модель мира, координаты viewporta камеры переводятся в индексы массива и выбираем все то, что в этом диапазоне для рендеринга. Но захотелось вот физики добавить и collide detection на кого-нибудь спихнуть).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 10:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос LibGdx + Box2D. Culling. Отсечение невидимых объектов при рендеринге (Программирование Android):

Java,LibGdx,Android Studio переместить картинку при нажатии на экране
Буду очень благодарна за помощь) Здравствуйте, короче , мне надо что бы я при...

OpenGL отсечение невидимых линий
На первом рисунке то что есть. На втором - как хотелось бы. Т.е. вроде бы и...

Box2d лаги при создании более трех динамик объектов
С чем столкнулся когда делал пример что бы понять как управлятся с box2d все...

Пропуск отрисовки невидимых объектов
Как можно пропустить отрисовку элементов, которые полностью не видны камере?

Шум при рендеринге видео
Как только начинаю рендерить видео то сразу повышается шумность из системного...

Процессор греется и выключается при рендеринге видео
Начинаю рендорить видео HD 1080P прошло 5 мин комп написал Внимание температура...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2014, 10:55
Привет! Вот еще темы с решениями:

Перенос строки при рендеринге html страницы
Здравствуйте. помогите решить проблему. есть код: <?php ...

Перегрел видеокарту при рендеринге, есть ли шансы на выживание?
Всем привет, После неудачной замены заводской термопасты на китайский нонейм,...

Delphi XE2: ошибки при многократном рендеринге в Bitmap
Давно и довольно успешно (начиная с Delphi7) работал фрагмент кода для вывода...

Box2d. Не запускается файл box2d.lib
Скачал с официального сайта исходники box2d. Открыл решение из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru