Войти
ПрограммированиеФорумГрафика

Все об устройстве и отрисовке сцены (3 стр)

Страницы: 1 2 3 4 511 Следующая »
#30
13:58, 29 апр. 2016

>>Как в 3d движке правльно и удобно сделать класс для отрисовки и управления сценой?
Правило простое. Рисуй то что видно. А то что не видно - не рисуй. Вот и всё управление.


#31
14:14, 29 апр. 2016

g-cont
То, что ты описал - это сортировка объектов перед отрисовкой, а я имел ввиду управление объектами(создание, удаление, перемещение и т.д).

#32
14:19, 29 апр. 2016

Нету общепринятого стандарта для рендера. Каждый делает как хочет. Например у меня компонентная система, но перемещения обьектов как у обычной системы. Мне так удобнее.
Удаление обьектов обычное, я говорю менеджеру сцены удалить обьект по айди, он говорит рендер группе удалить такой-то обьект.
Таким образом у меня все обьекты посортированны по геометрии.

#33
14:23, 29 апр. 2016

Anders333
А как ты объекты хранишь, чтоб их можно было по айди получать, в std::map?

#34
14:43, 29 апр. 2016

Vlad2001_MFS
а что, словарь может быть только std::map? и почему объекты нужно получать именно по id? почему бы не сделать просто список и перебирать его, пока не найдешь с нужным именем? аля getObjectByName("name") :-)

#35
14:44, 29 апр. 2016

Не, у меня пока что обычный список, а айди это номер.

#36
14:47, 29 апр. 2016

Anders333
Список - это std::list?
А если из списка удалить элемент, то айди не поломается разве?

#37
14:51, 29 апр. 2016

std::vector
я удаляю так:
обьекту в списке присваиваю налл, и добавляю этот номер в список пустых обьектов. Потом когда добавляю новый обьект, смотрю в списке пустых, если ли свободный елемент, если нету, то добавляю в конец, иначе просто присваиваю елементу в списке новый.

#38
14:57, 29 апр. 2016

Anders333
А как можно узнать, что находится под этим айди?
Допустим, под айди 1 был танк, потом танк удалили и его место занял вертолет. Как пользователь узнает, что под айди 1 теперь вертолет, а не танк?

#39
15:15, 29 апр. 2016

Vlad2001_MFS
рендерер сцену только рисует. Ну и опционально сортирует, чтобы минимизировать переключения стейтов и как следствие - рисовать быстрее.
А если тебе надо еще и управлять объектами, то это уже выходит за рамки рендерера.
Управление объектами начинается с вопроса - будет ли в проекте сеть. Совсем не будет, в перспективе будет, есть уже сейчас.
И если сеть есть, то надо определиться будет ли это какой-нибудь MMO, где сотни тысяч всяких объектов или же классический шутер, где максимум 32-64 игрока в перестрелке. И исходя из ответов на эти вопросы заниматься организацией объектов.

#40
15:47, 29 апр. 2016

g-cont
Какая сеть, какая ММО?) Я пишу простенький движок, для получения опыта, так что мне до этого еще очень далеко.

#41
15:51, 29 апр. 2016

Vlad2001_MFS
Я уже писал выше, почитай блог Molecular Matters, там есть полезные статьи про владение объектами, их ID, и много всяких штук вплоть до менеджера памяти.

#42
15:51, 29 апр. 2016


Vlad2001_MFS
> Допустим, под айди 1 был танк, потом танк удалили и его место занял вертолет.
> Как пользователь узнает, что под айди 1 теперь вертолет, а не танк?
ну я в данном случае удалил рендер обьект. Если вертолет создан после того как танк удалили, значит танка не существует и какая разница какой айди у вертолета.

#43
16:05, 29 апр. 2016

Dimich
> Я уже писал выше, почитай блог Molecular Matters, там есть полезные статьи про
> владение объектами, их ID, и много всяких штук вплоть до менеджера памяти.

А где там статьи как сделать максимально гибко ?

#44
16:28, 29 апр. 2016

Dimich
Это - blog.molecular-matters.com? Жалко, что на английском, но попробовать можно.

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

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