Ретроспектива.
Даа…. Много времени утекло с тех пор как я учился в лицее, когда только изучал GLScene, да и делфи.
Тогда мне просто хотел сделать игру да не знал с чего начать, последовал совету друга и взял эту(читай выше) библиотеку для делфи. Собственно она хорошая, но, имхо, не для серьезных игр, ограничения дает, да и изучать чужой код не просто. Вообще я пришел выводу что под делфи лучше не писать игр, ну не для этого он, в скорости работы проигрывет, хоть он и удобнее, впрочем это мое личное мнение, можете не согласиться и не читать дальше. (все это извечные споры как, например… да вы и сам знаете, о чем я :))
Второй мой приход на рендер со статьей был посвящен 3ds файлам и возможности их чтению из OpenGl приложения, очень сложная тема, которая меня сильно помучила в свое время. Напрашивается вопрос — почему же я не продолжил работу с ОГЛ, все просто, опять же слабое знание с++, малое количество уроков и то, что ОГЛ довольно неудобный, если сравнить с DX, просто первый пишут как открытый проект, само собой он не может так часто обновляться и быть удобнее, я не говорю что на нем нельзя делать игры, само собой можно, но на мой опыт и взгляд я думаю начать лучше с DX.
Кстати, наверняка есть такие люди, у кого возник вопрос – что же этот урок делает на рендере.ру, ведь сайт «как бы не об этом»? Многое изменилось в этом сайте за последние годы, вот и к девелопу рендер.ру повернулся таки лицом и теперь мы видим тут и некоторые новости для игроманов, да и уроки были в таком направлении, может и не было ТАКОГО урока, но все случается впервые, ведь так?) Впрочем, про 3dsMax в уроке будет так же как всегда написано.
Почему DirectX?
Вообще переход на DX был долго не возможен изза того что скачать с сайта Microsoft я 460 метров не мог (ну не было у меня ни мобилы с gprs ни денег, те что выиграл проапгрейдили комп, это святое;)) В начале этого лета я купил нормальную мобилу и буквально сразу закачал SDK DirectX9, сделать это можно с сайта производителя. Обновления они выкладывают стабильно, мне в sdk достался 10dx, но висты у меня нет так что я просто поглядел скрины:) Вообще интересно то что самый свежий dx скачать можно даже на пиратской винде, но только самый новый, остальные никак… Ну так вот, отдалились от темы, за лето я вник в суть, купил несколько книг, и собрав все знания в голове, в силу своих возможностей стал кодить, начал с модернизаций примеров с sdk, что довольно полезно для разгона.
Что еще, ну я все собирал в MVC++8.0, но примеры с инета качал в основном под 7.1 и даже 6.0, так что тут проблем не должно быть, мой выбор обусловлен удобствами 
Если хотите просто посмотреть примеры – убедитесь, что directX у вас стоит новый. Желательно этого лета.
Как будем изучать.
Исходники писать в самой статье не стану, только код местами, чтоб не засорять урок. Все исходники можно скачать в части «полезности», в конце урока.
Хочу заранее обратить внимание, что комментарии в исходниках меняются по мере создания движка, в первых примерах комментарии вообще свои не писал, не было смысла, все поясняется в уроке.
Как тему для первых моделей я отчего-то выбрал космическую тему, ее было проще смоделить)…
Что будем делать.
- Начнем писать движок, в нем будем грузить модели из файлов, читая файл карты.
- Будем вводить возможность передвигаться с видом от первого лица.
- Введем основы физики, но только для персонажа (камеры) и только на столкновения параллелепипедов и сфер.
Создание чего в этом уроке НЕ будет:
- Создание шейдеров.
- Физики rigid body`s и физики с произвольными поверхностями.
- Скриптов.
- И.И. и прочих продвинутых вещей, которые я планирую рассматривать в следующих уроках.
Шаги по sdk пакету.
Шаг первый.
Внимание! — в sdk примеры c проектами только для msvc++ 7.1 и 8.0. Скачайте sdk, без него никак. Выкладывать его не буду, урок ограничен 5 метрами, научитесь подходить к серьезному делу серьезно. Если хотите серьезно поработать, то приготовьтесь к тому, что не все это так просто и придется много изучать, прежде чем начнет получаться. Тут нет места идеям типа – «а сделаю как я за недельку (месяц, даже два), классную игруху». Терпение и целеустремленность – залог успеха. Я серьезно, в конце приведу несколько писем из сотни пришедших мне за 2 года, такие мысли частое явление и я даже понимаю их, сам начинал с этого.
Шаг второй.
Устанавливаем пути к библиотекам и заголовочным файлам (\DirectX SDK\Include; \DirectX SDK\Lib) или копируем из них файлы в папки самого компилятора (lib и include).
Шаг третий.
Для начала зайдите в «\Samples\C++\Direct3D\Bin\x86» и позапускайте примеры (на них всех естественно есть исходники, хотя они громоздкие, но изучать их интересно), примеры довольно хорошие, и даже само чтение их приносит много пользы.
Так же примеры можно рассматривать через «\Samples\SampleBrowser\SampleBrowser.exe». Потом можете зайти в папку «\Samples\C++\Direct3D\Tutorials». Именно с них я и начну с них введение.
