| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Изучаю DirectX 9.0 for Managed code по Миллеру |
| Автор: mrMoRiC 15.4.2007, 02:28 | ||||
| Приветствую всех! Ещё раз)) Ну что ж, книга действительно сильная.Она достойна того, чтобы её прочитали. Но автор правильно предупредил в начале, что для тех, кто раньше совсем не работал с DirectX, она(книга) будет трудновата. И я увы не оказался исключением из этого правила. Надеюсь на то, что мне здесь помогут. Итак: 1).Создание класса устройства, которое свяжет нас с драйвером нашей видеокарты.Автор говорит, что это первостепенная задача. Ну хорошо, я согласен. Далее автор предлагает такую процедуру:
adapter - манипулятор устройства (0 - устройство поумолчанию). Но я не понял, манипулятор каких устройств только видеокарт?или вообще всех? Если всех, то зачем это может понадобиться? И ещё, что значит устройство поумолчанию? По умолчанию для чего? deviceType - не понял чем отличается DeviceType.Software От DeviceType.Reference. Объясните? renderWindowHandle - тут всё понятно, просто указатель на handle оуна вывода. behaviorFlags - тут тоже вроде ясно всё. Единственное но: зачем выставлять флаг SoftwareVertexProcessing, если скажем, в параметре DeviceType я уже задал DeviceType.Software? ParamArray presentationParameters - здесь пока сильно не разбирался, но то, что уже использовал понятно. Потом может попрошу разъяснить. 2). CustomVertex - встроенная конструкция для хранения вершин. CustomVertex.PositionColored - описывает координаты и цвет вершин, если мы используем 3D пространство. CustomVertex.TransformedColored - описывает коордигаты и цвет верщин, если мы используем, как я понял, статическое поле зрения. И не собираемся вертеть наш Transformed объект. Что я не понял, так это можно ли всё-таки в TransformedColored как-то работать с камерой, или нет совсем. То есть, как вообще ограничивает нас TrancformedColored, остаётся ли при его использовании 3D пространство или оно 2D? TransformedColored.Position использует структуру Vector4. New Vector4 принимает параметры : valueX, valueY, valueZ, valueW с первыми тремя всё понятно А для чего нужен valueW ? 3). Почему в книжны примерах автор передаёт такие параметры в структуру Vextor3 (1.0f, -1.0f, 3.0f) Что означает f на конце, зачем оно нужно? 4). Не понял значения понятия МАТРИЦА ПРЕОБРАЗОВАНИЙ. ЧТО ЭТО ТАКОЕ? 5). Теперь про камеру: Автор указывает читателю, что перед применением камеры нужно использовать две функции:
Со второй почти всё ясно: она настраивает позицию камеры, цель на которую она повёрнута, а третий параметр мне не понятен. С первой сложнее: как я понял, она задаёт усечённую пирамиду, в пределах, которой работает камера. И если объект просмотра выходит за границы усечённой пирамиды, то он не отрисовывается. Короче мы видим только внутренне пространство. Кроме этого, если я не ошибаюсь, то камера находится в вершине этой пирамиды, если бы её не усекли. Вот. Но параметры мне понятны не совсем, а именно: fieldOfViewY - что мы задаём здесь ? aspectRatio - тоже не понятно ? znearPlane - ближняя плоскость усеч пирамиды (меньшая) zfarPlane - дальняя плоскость усеч пирамиды (большая) Прошу все, пожалуйста помогите разобраться. Кстати, можно будет эти вопросы в FAQ добавить. |
| Автор: mrMoRiC 15.4.2007, 13:55 | ||||
| Спасибо, хороший форум. Действуете оперативно! Насчёт пункта два, скажу честно не понял. Наверно, потому что только поступаю в универ и не знаком ещё, как вы говорите с матчастью по графике. Отсюда вопрос, где достать матчасть по графике? Но остались без ответа вопросы:
|
| Автор: mr.DUDA 15.4.2007, 14:53 |
| http://forum.vingrad.ru/index.php?showtopic=33418 |
| Автор: mrMoRiC 16.4.2007, 13:13 |
| По вашей ссылке попал в тему, где обсуждают движки и OpenGl А про матчасть ничго нет |
| Автор: mrMoRiC 22.4.2007, 06:32 |
| Сейчас, читаю учебник по матрицам и векторам в математике и действительно, начинаю во многом понимать автора этой книги. Спасибо вам, что сразу посоветовали учить DirectX с математической стороны. Однако, сейчас меня не оставляет в покое мысль, что кроме знания мат части по графике нужно хорошо разбираться в терминах и технологиях, о которых пишет автор. Например Миллер мимоходом употребляет новые для меня слова Двойной буфер/буферизация, сваппинг (swapeffect) и т.д... Я такой человек, что мне нужно знать, когда применять SwapEffect.Discard, когда Copy, и т.п. Я смотрел другие книжки, даже англицкие (причём для чайников!), но и в них авторы не объясняют этих терминов!! Так где же запастись этой теорией? Может почитать что-нибудь про видеокарты вообще? Посоветуйте, вы же это умеете |
| Автор: mr.DUDA 22.4.2007, 11:10 |
| Тут уже книги не помогут, читайте "DirectX Documentation for C++" (именно для С++ а не для Managed который урезали), в содержании раздел "DirectX Graphics / Direct3D 9 / Programming Guide / Getting Started", там по каждому термину подробно разжёвано что и как. В managed DirectX используются те же самые термины. |
| Автор: mrMoRiC 22.4.2007, 13:09 |
| Вам спасибо! |