Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.100.210] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
После выхода в свет статьи «Программирование с использованием DirectX9» возникло несколько проблемных мест в коде этой статьи. Все спорные моменты касательно этой статьи просьба обсуждать здесь.
|
Сообщ.
#2
,
|
|
|
При отсутствии установленого SDK необходимо скачать файл, распаковать и
разместить заголовочные файлы в директорию \Include, а d3d9.lib в директорию \lib или скинуть их, например, на диск D:\, после чего подправить 2ю и 4ю строки #include<d:\d3d9.h> #pragma comment(lib, "d:\\d3d9.lib") Прикреплённый файлd3d.rar (27.66 Кбайт, скачиваний: 636) |
Сообщ.
#3
,
|
|
|
В случае использования VisualC++ 2005, необходимо подкорректировать установки проекта
Цитата Hryak @ переключите проект на ANSI после создания: в свойствах проекта выберите General / Character Set: Use Multi-Byte Character Set |
Сообщ.
#4
,
|
|
|
Если проект после компиляции запускается и сразу же прекращает выполнение
|
Сообщ.
#5
,
|
|
|
Цитата orb @ Если проект после компиляции запускается и сразу же прекращает выполнение То причина может быть не только в этой строке... Советую сделать хотябы так: hWnd=CreateWindowEx(WS_EX_TOPMOST, "DirectX 9", "DirectX 9", WS_POPUP, 0, 0, 800, 600, NULL, NULL, hThisInst, NULL); if(!hWnd) { MessageBox(0,"Unable to create window!","Error",MB_ICONEXCLAMATION); return(false); } if(FAILED(pDirect3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &Direct3DParametr, &pDirectDevice))) { MessageBox(hWnd,"Unable to initialize D3D!","Error",MB_ICONEXCLAMATION); return(false); } |
Сообщ.
#6
,
|
|
|
Я тут на Delphi закодил два примера из первого урока. По-моему следует задуматься, чтобы создание окна находилась в одном файле, а отрисовка уже в другом.
Прикреплённый файлD3D9_Leson1.zip (55.54 Кбайт, скачиваний: 362) |
Сообщ.
#7
,
|
|
|
Цитата Pavia @ Я тут на Delphi закодил два примера из первого урока. По-моему следует задуматься, чтобы создание окна находилась в одном файле, а отрисовка уже в другом. Это уроки, так что здесь можно все в кучу скидывать, хотя конечно имело бы смысл сделать скелет, на базе которого затем собирать последующие уроки. А если писать полноценный движок, то надо разделять все достаточно сильно, вплоть до отдельных функций. |
Сообщ.
#8
,
|
|
|
Цитата Pavia @ По-моему следует задуматься, чтобы создание окна находилась в одном файле, а отрисовка уже в другом Цитата Axis @ как раз думаю писать продолжение, теперь в сомнениях насколько дробить и дробить ли вообще? А может не со второго урока, а дальше когда пойдут шейдеры/текстуры/модели??? Это уроки, так что здесь можно все в кучу скидывать, хотя конечно имело бы смысл сделать скелет, на базе которого затем собирать последующие уроки |
Сообщ.
#9
,
|
|
|
Цитата Pavia @ По-моему следует задуматься, чтобы создание окна находилась в одном файле, а отрисовка уже в другом Цитата Axis @ Какие есть мысли по поводу разделения?хотя конечно имело бы смысл сделать скелет, на базе которого затем собирать последующие уроки Подходит второй урок, думаю разбиватьна 3 части: 1. Окно виндовс 2. Инициализация 3Д, загрузка координат обьектов, удаление ресурсов 3. рендер, матрицы, рисование примитивов, ...... |
Сообщ.
#10
,
|
|
|
разделил, какие есть замечания предложения ?
Прикреплённый файлLess2.rar (6.12 Кбайт, скачиваний: 388) |
Сообщ.
#11
,
|
|
|
А.
Пытался к 1му уроку дорисовать 8й треугольник: 1. добавил массив точек - координат углов 8го треугольника 2. Изменил 21 на 24 в CreateVertexBuffer (число точек) 3. Установил число отрисовываемых треугольников равным 8 в DrawPrimitive Не отрисовывается... почему? не пойму... хэлп, плиз. Б. Пытался изменить координаты 7го треугольника. Такие: Оригинальные: { 150.0f, 130.0f, 0.0f, 1.0f, 0x00ff0000, }, { 400.0f, 130.0f, 0.0f, 1.0f, 0x00ff0000, }, { 275.0f, 360.0f, 0.0f, 1.0f, 0x00ff0000, }, Модифицировал к { 200.0f, 130.0f, 0.0f, 1.0f, 0x00ff0000, }, { 350.0f, 130.0f, 0.0f, 1.0f, 0x00ff0000, }, { 275.0f, 360.0f, 0.0f, 1.0f, 0x00ff0000, }, Модифицировал к { 350.0f, 130.0f, 0.0f, 1.0f, 0x00ff0000, }, { 300.0f, 130.0f, 0.0f, 1.0f, 0x00ff0000, }, { 275.0f, 360.0f, 0.0f, 1.0f, 0x00ff0000, }, поигрался, вроде понял: такое ощущение, что вершины должны описываться в определённом порядке - по часовой стрелке. Есть что-то об этом? Собственно вопрос снимается... но автору возможно стоит добавить либо в статью, либо... Добавлено файл 2го урока вижу, а где статья? Не могу найти Добавлено И если можно, прицепите, плиз, файлы для 2го урока: d3dx9.h, d3dx9.lib, которые не были нужны в 1м. Добавлено Если статья для 2го урока только готовится, то я бы разделения не делал. Проще все держать в 1 срр-файле, чем в проекте. Да и вынесение нешаблонного кода в аш-файлы для меня выглядит спорным вопросом... вобщем вся суть в тексте статьи, а если начнёте разделять, то это вызовет больше вопросов, чем закроет. Если разделять, то тогда ещё и враппер писать... Кстати, наверняка уже и готовых полно. |
Сообщ.
#12
,
|
|
|
Ого, какой баянище откопали... Даже как-то мимо меня прошел...
Цитата Budda @ Если статья для 2го урока только готовится Гм... Год уже как готовится? Гм... |
Сообщ.
#13
,
|
|
|
Цитата barazuk @ кто ждет. тот дождется Год уже как готовится? |
Сообщ.
#14
,
|
|
|
Цитата Budda @ упущение поигрался, вроде понял: такое ощущение, что вершины должны описываться в определённом порядке - по часовой стрелке вершины должны описываться по часовой стрелке |
Сообщ.
#15
,
|
|
|
Если нормаль не задается программой, а рассчитывается библиотекой.
|