Итак начнем.
Прежде всего нам понадобится конечно VB.NET (он входит в состав Visual Studio .NET) и DirectX9 SDK (скачать его можно тут правда он весит 222Мб, а вот тут есть ссырка на декабрьский SDK, который весит 320Мб), в котором есть все необходимые библиотеки для разработки приложений, исполльзующих DirectX. В этом топике я буду публиковать стандартные туториалы по D3D, входящие в состав DX9 SDK. Все они написаны на VB.NET 2003 (7.1), но пойдут и на VB.NET 2002 (7.0) с некоторыми изменениями. |
Вложений: 2
Туториал №1. Создание устройства Direct3D.
1. Создайте пустой проект VB.NET (Empty Project) 2. В окне Solution Explorer выберите пункт References, и в меню, вызываемом щелчком правой кнопки на этом пункте выберите Add Reference... 3. В открывшемся окне выбелите вкладку .NET и добавьте в проект ссылки на следующие библиотеки классов: - System.dll - System.Drawing.dll - System.Windows.Forms.dll - Microsoft.DirectX.dll - Microsoft.DirectX.Direct3D.dll Нажмите OK 4. Далее необходимо добавить в проект файл класса, для этого в меню Project выберите пункт Add New Item... и добавьте файл класса (Class) с названием CreateDevice.vb 5. Откройте добавленный файл для редактирования и вставьте следующий код: Код:
'----------------------------------------------------------------------------- Результатом работы программы будет выводится форма, вся область которой будет очищаться синим цветом с помощью устройства Direct3D. Краткое описание кода: В коде создается новый класс CreateDevice, который является наследником класса System.Windows.Forms.Form. При запуске приложения выполняется процедура Sub Main(), которая является главной точкой входа в приложение. В ней происходит создание экземпляра класса CreateDevice, т.е. создание формы. В функции InitializeGraphics() происходит инициализация устройства Direct3D, которое одним из параметров получает ссылку на нашу форму (Me). Далее выполняется отображение формы на экране. И наконец, приложение переходит в главный цикл, условием завершения которого является уничтожение нашей формы. Вот и все. Скомпилированный проект с исходником прикреплен ниже. |
Вложений: 2
Туториал №2. Вершины.
Для этого туториала за основу возьмем предидущий пример. Приводить буду только изменения. 1. Создайте новый проект, как в предидущем примере, только класс назовите не CreateDevice а Vertices. 2. Нам понадобится еще один глобальный объект - буфер вершин. Код:
Private vertexBuffer As vertexBuffer = Nothing 3. Теперь нам необходимо проинициализировать буфер, задать координаты вершин и т.д. для этого напишем еще две процедуры, одна будет вызываться после инициализации устройства Direct3D: Код:
Public Function InitializeGraphics() As Boolean Код:
Public Sub OnCreateDevice(ByVal sender As Object, ByVal e As EventArgs) Код:
Private Sub Render() На экране пояаится треугольник, раскрашенный 3-мя цветами (голубой, коричневый и розовый). В аттаче вы найдете готовый проект (скомпилированный файл и исходники). |
Вложений: 2
Туториал №3. Матрицы.
В этом туториале Вы научитесь применять матрицы, необходимые для работы с 3D. Все описания этого туториала находятся в коде в виде коментариев. Сам код будет вам хорошо понятен, если вы читали предидущие два туториала ;) Код:
'----------------------------------------------------------------------------- |
Вложений: 2
Туториал №4. Источники света.
В этом туториале вы узнаете как создавать источники света, настраивать их, и какие они бывают. Как и в предидущем туториале все описание находится в коде. Код:
'----------------------------------------------------------------------------- |
Ответ: Туториалы Vb.net & D3d9
Использовал VS 2010 + DxSdk jun08
Первые три примера работают - последний выдаёт 5 ошибок :( . (заголовок читал, знаю что для старых версий, но всё же) Можно что то сделать чтобы последний работал? П.с. Сори за некрофилию :). Графика оченьнама нужна. |
Ответ: Туториалы Vb.net & D3d9
а какие ошибки то ??
Манаджет ДиректХ уже вроде не поддерживается Майкрософтом и возможно под 2010 студию чет и неработает !! |
Ответ: Туториалы Vb.net & D3d9
'Commit' is not a member of 'Microsoft.DirectX.Direct3D.Light'.
и 'SetNormal' is not a member of 'Microsoft.DirectX.Direct3D.CustomVertex.PositionN ormal'. (этот 4 раза :-) я сначала не обратил внимание на повторение) |
Часовой пояс GMT +4, время: 07:39. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot