Я ищу документацию, которая объясняет различные виды (во всяком случае, основные из них) алгоритмов 2D пространственного разделения и структуры данных.
Любые указатели, кроме «Google это и просеять через сотни статей». Книга, может быть?
У вас есть какие-то конкретные алгоритмы и структуры данных, которые вас интересуют? Какую игру вы делаете?
NoobsArePeople2
Я просто хотел переварить основные и понять сильные стороны и компромиссы. Я не делаю игру, но знаю, что это правильное место, чтобы задать этот вопрос :)
r1x
Ответы:
7
Такая информация распространена по многим книгам по моей библиографии, но в настоящее время я от них нет. Но из того, что я мог собрать по памяти и просматривать оглавление в Интернете, я вспоминаю следующие книги:
3D Math Primer для графики и разработки игр, 1-е издание или Математика для 3D-игр и компьютерной графики
или
Глава 16 (Определение видимости) 3D Math Primer для графики и разработки игр, 1-е издание ( как ни странно, авторы, похоже, удалили этот раздел из второго издания книги ), охватывает наиболее распространенные методы (т. Е. Сеточную систему, quadtree и octree, bsp). деревья, окклюзия портала). Книга действительно хорошая, хотя, возможно, не лучшая в своем роде.
Я часто видел математику для программирования 3D-игр и компьютерной графики , но, к сожалению, я до сих пор не дошел до нее. Из оглавления, похоже, также рассматриваются алгоритмы разделения пространства. Не уверен, как они сравниваются друг с другом.
Естественно, основное внимание в этих книгах уделяется математике. И хотя название гласит 3D, они также весьма актуальны для 2D-программирования.
Рендеринг в реальном времени 3-е издание
Глава 14 (Алгоритмы ускорения) рендеринга в реальном времени также охватывает большинство из этих тем, и это на самом деле моя любимая книга по графическому программированию. Очень всеобъемлющий, но я не помню, насколько это охватывало эту конкретную тему.
В центре внимания этой книги находится теория графики, но она охватывает такое большое количество тем, что я вряд ли смогу найти лучшую рекомендацию для тех, кто интересуется этой областью.
Gems для программирования игр
Предыдущие книги были в основном теоретическими. Чтобы получить более конкретные и практические советы, я прочитал несколько статей на эту тему, разбросанных по сериям Game Programming Gems . Некоторые, которые приходят на ум:
Octree Construction - Gems для программирования игр 1
Loose Octrees - игровое программирование Gems 1
Сферические деревья для быстрого отбора, отслеживания лучей и поиска по дальности - Gems 2 для программирования игр
Высокопроизводительная система линий обзора и поиска на основе плиток - Gems 2 для программирования игр
Sphere Trees для скоростных BSP - Gems 5 для программирования игр
Пространственное разбиение с использованием адаптивного двоичного дерева - Gems 6 для программирования игр
Теория на самом деле то, что я после. Надеюсь, объяснения, которые включают линейную алгебру и дискретную геометрию.
r1x
Тогда я считаю, что одна из математических книг может быть лучшим выбором, хотя вы можете быть разочарованы тем, как мало на самом деле охвата (по крайней мере, я помню, что это довольно просто).
Дэвид Гувейя
Поэтому вам может быть полезно объединить это с некоторыми практическими (и более продвинутыми) примерами.
Ответы:
Такая информация распространена по многим книгам по моей библиографии, но в настоящее время я от них нет. Но из того, что я мог собрать по памяти и просматривать оглавление в Интернете, я вспоминаю следующие книги:
3D Math Primer для графики и разработки игр, 1-е издание или Математика для 3D-игр и компьютерной графики
или
Глава 16 (Определение видимости) 3D Math Primer для графики и разработки игр, 1-е издание ( как ни странно, авторы, похоже, удалили этот раздел из второго издания книги ), охватывает наиболее распространенные методы (т. Е. Сеточную систему, quadtree и octree, bsp). деревья, окклюзия портала). Книга действительно хорошая, хотя, возможно, не лучшая в своем роде.
Я часто видел математику для программирования 3D-игр и компьютерной графики , но, к сожалению, я до сих пор не дошел до нее. Из оглавления, похоже, также рассматриваются алгоритмы разделения пространства. Не уверен, как они сравниваются друг с другом.
Естественно, основное внимание в этих книгах уделяется математике. И хотя название гласит 3D, они также весьма актуальны для 2D-программирования.
Рендеринг в реальном времени 3-е издание
Глава 14 (Алгоритмы ускорения) рендеринга в реальном времени также охватывает большинство из этих тем, и это на самом деле моя любимая книга по графическому программированию. Очень всеобъемлющий, но я не помню, насколько это охватывало эту конкретную тему.
В центре внимания этой книги находится теория графики, но она охватывает такое большое количество тем, что я вряд ли смогу найти лучшую рекомендацию для тех, кто интересуется этой областью.
Gems для программирования игр
Предыдущие книги были в основном теоретическими. Чтобы получить более конкретные и практические советы, я прочитал несколько статей на эту тему, разбросанных по сериям Game Programming Gems . Некоторые, которые приходят на ум:
источник