Руководства по концепции 3D программирования? - PullRequest
10 голосов
/ 05 мая 2009

Я пытаюсь перенести разработку игр в третье измерение, но у меня возникли проблемы с пониманием того, что я на самом деле должен делать. Я создал 2D MMORPG перед использованием C и SDL, что не так уж сложно. Но я не могу найти никаких полезных ресурсов, объясняющих, как на самом деле работает 3D-программирование. У меня есть общее представление о векторной математике, но я просто не могу найти какое-либо четкое и подробное объяснение того, как все остальное, как освещение и шейдеры, работает. Я нашел множество примеров кода и тому подобное, но все они просто добавляют комментарий типа «// Применить освещение», который на самом деле ничего не говорит мне о том, что он на самом деле делает и почему.

Я не ищу учебник по API; достаточно легко изучить новый API - я просто не уверен, что на самом деле делать с ним.

Ответы [ 6 ]

11 голосов
/ 05 мая 2009

Если вы ищете книгу, я настоятельно рекомендую Рендеринг в реальном времени . У меня есть второе издание книги, и я обнаружил, что она очень полезна при работе с 3D-графикой. Книга объясняет внутреннюю работу строительных блоков трехмерного программирования, таких как преобразования, освещение и текстуры. В нем также рассматриваются различные сложные темы, включая шейдеры, обнаружение столкновений, ускорение и оптимизацию.

Книга очень легкая на код. Он подробно объясняет алгоритмы, но не содержит реальных фрагментов кода. Поэтому очень хорошо, если вы хотите узнать, как все работает, а не просто знать, какую функцию вызывать.

8 голосов
/ 05 мая 2009

Если вы хотите понять концепции 3D компьютерной графики и учебные пособия по рендерингу, это не сильно поможет. Как вы узнали, они учат вас API, но не помогают с фундаментальным пониманием.

Вам нужна библия программирования грамматики:

http://www.amazon.com/Computer-Graphics-Principles-James-Foley/dp/0201121107

альтернативный текст http://introtextbooks.com/wwwstatic/gfx/cover/foley-computer-graphics-principles-and-practice-in-c-2e.jpg

Он не распространяется на OpenGL, DirectX или шейдеры, только на основы. Но это то, что вам нужно. Например: как только вы поймете, как работает освещение, три линии, которые включают освещение в OpenGL, внезапно обретут смысл.

5 голосов
/ 05 мая 2009

Я бы посоветовал вам ознакомиться с учебными пособиями по NeHe OpenGL , начиная с самых простых, и немного изучить OpenGL. Хорошая справка по OpenGL (например, Красная книга , хотя для начала она может быть немного продвинутой) также очень поможет.

3 голосов
/ 05 мая 2009

Красная книга - это в значительной степени единственный источник, который учит всему (начальный-средний), что вам нужно знать об OpenGL Эти концепции можно легко перенести в любую другую 3D-библиотеку. И это тоже бесплатная онлайн-версия!

2 голосов
/ 05 мая 2009

Стандартный текст "в тот день" был Фоли и Ван Дам , некоторые темы, которые здесь освещались, немного длинны, но фундаментальная математика, лежащая в основе трехмерных преобразований и проекций, не изменилась .

Текст Алана Уотта также хорош, но на самом деле не является вводной книгой.

Вы также можете взглянуть на веб-сайт Дэвида Эберли , он написал несколько книг на эту тему, и там также можно найти множество сопутствующей информации. Ожидайте много математики.

1 голос
/ 05 мая 2009

Если вы заинтересованы в программировании для XBOX 360 на C #, вы можете взглянуть на XNA Framework. Этот веб-сайт содержит множество учебников по XNA, и я настоятельно рекомендую попробовать его. Просто перейдите на боковую панель (справа) и нажмите на раздел 3D.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...