Руководства по концепции 3D программирования?

StackOverflow https://stackoverflow.com/questions/821924

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top