Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/23: Рейтинг темы: голосов - 23, средняя оценка - 4.57
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
1

Применение библиотек DirectX 9 SDK в Visual Studio 2010 (C#)

22.12.2013, 13:41. Показов 4388. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Моя среда: Windows 7 Ult, карта NVIDIA GeForce 8600 GT, легко воспроизводящая всю графику Vista и качественные авиасимуляторы.
Я давно программирую на C# в Visual Studio, а тут пришлось заняться трехмерной графикой на этом языке. По многим советам, начал с DirectX 9 SDK (хотя уже есть и 10, и 11), а именно с хорошей и, как говорят, пока единственной нормально изучаемой книге по программированию DirectX главного разработчика DirectX для платформы .NET Тома Миллера "Managed DirectX 9 Программирование графики и игр". Но дальше первого примера дело не пошло. Как только я перешел с координат устройства (в этом случае все в порядке) на мировые с камерой, в окне появляется пустое поле. Сообщения об ошибках отсутствуют.
К этой книге прилагается CD, в котором есть, в частности, библиотеки для .NET C#, которые сам Миллер рекомендует. Оказалось, что все они разные (например, в одной есть SetPosition, в другой этой функции нет, а применяется свойство Position), и размеры одноименных библиотек различаются в 2 раза. Какую из них применять, в книге не сказано, поэтому я применяю те, которые применяются в примерах, содержащихся на CD (но пробовал и другие). Однако в VS2010 не действуют и примеры (тоже без сообщений). Я понимаю, что коды книги, вышедшей в 2005 году с примерами, разработанными на VS2003, так просто работать в VS2010 не станут, и пробовал понижать в проекте версии Framework с 4.0 до 2.0 включительно, с которым работал VS2003. Эффект нулевой.
Может быть, кто-то уже сталкивался с этой проблемой и подскажет, что надо делать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2013, 13:41
Ответы с готовыми решениями:

Visual Studio 2012 не видит библиотек DirectX SDK
Установил DirectX SDK но Visual Studio 2012 не видит его библиотек в Reference. Как подключить...

DirectX SDK и Visual Studio 2010
Установил DirectX SDK в книге Франк Луна - "Введение в программирование трехмерных игр с DirectX 9"...

Подключение directx sdk в Visual Studio 2010
Здравствуйте. Знаю что ни 1 раз тут был этот вопрос. Прочитал несколько подобных тем, но ничего...

Как подключить directx sdk к visual c++ 2010
Как подключить directx sdk к visual c++ 2010 " после ответа не закрывайте тему будут ещё...

14
5 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 3
22.12.2013, 16:50 2
Здравствуйте! Буквально сегодня столкнулась с той же проблемой. Все так, как описано Вами. С координатами экрана все нормально, а мировые координаты игнорирует. Пожалуйста, если найдете решение этой проблемы сами, напишите здесь.

Добавлено через 21 минуту
Удалось найти ответ!) Поменяла версию .Net на 2.0. Слышала, что некорректно отрабатывает с 4.0, поэтому изначально установила 3.5, но, видимо, и этого оказалось мало)
Теперь треугольник в мировых координатах рисуется) Черный правда только(
0
61 / 54 / 21
Регистрация: 19.10.2013
Сообщений: 117
22.12.2013, 16:50 3
Посмотрите здесь
http://mdxc.nm.ru
1
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
22.12.2013, 19:55  [ТС] 4
У меня всё так и было настроено, как по ссылке, в том числе указано useLegacyV2RuntimeActivationPolicy="true"
в тэге startup файла app.config .
За ссылочку спасибо: там полезные программные листинги.
Но куда молча развернулись библиотеки из файла dxwebsetup.exe, который я скачал по этой ссылке, я так и не понял. Обыскал весь системный диск - всё осталось по-старому.
А тем не менее, очень кажется мне, что дело именно в библиотеках. Вот у sindzirarenai ведь получилось!
0
61 / 54 / 21
Регистрация: 19.10.2013
Сообщений: 117
22.12.2013, 21:11 5
Библиотеки Managed DirectX обычно копируются по адресу:
C:\Windows\Microsoft.NET\DirectX for Managed Code
1
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
22.12.2013, 22:58  [ТС] 6
Там остались старые библиотеки, созданные с CD книги Миллера. Зато мне был инсталлирован Bing, который пришлось сносить, а в каталоге C:\TEMP (которого могло и не быть, я его создал давно для своих целей) появился файл t.txt, полный крокозябров, но со словом "DireсtX".
Может быть, кто-то изъявит готовность поделиться своими библиотеками DirectX 9 SDK для C#, проверенными и действительно работающими в среде VS2010? Тогда положите их, пожалуйста, в ящик gavrilov130150@mail.ru
0
480 / 253 / 51
Регистрация: 30.06.2010
Сообщений: 651
23.12.2013, 07:02 7
Как-то плохо Вы ищете, есть же SlimDX и SharpDX
1
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
24.12.2013, 00:07  [ТС] 8
Мне много еще чего советовали. И что же, так и кидаться от одного средства к другому при первом же затыке? Я выбрал DirectX 9 - о нем и речь. Задавая вопрос, я и сам копаю. Надо заставить его работать!

Добавлено через 15 часов 45 минут
Sindzirarenai прислала мне ссылку на пост Cdvig Неправильно отображается цвет Directx в форуме C# .NET, содержащий код примера с тем же треугольником, но загружаемым из буфера. За это ей еще одно большое спасибо, а Cdvig - тем более. В этом варианте у меня всё заработало! А у него неправильно распределяются цвета вершин. А у Sindzirarenai треугольник черный.
Поскольку я не планирую в дальнейшем определять все свои вершины в теле программы, то я решил не зацикливаться на моем примере, который так и не удалось оживить, а ехать дальше. Очевидно, у меня почему-то не работает функция DrawUserPrimitives с параметром TriangleList - ну и бог с ней! Зато работает всё более важное.
Сухой остаток:
Как видно из приведенных примеров, сочетание Managed DirectX 9 SDK, Visual Studio разных версий (и их инсталляций) и различных видеокарт таит в себе много еще подводных камней. Придется пробираться между этими рифами без лоции, только по устаревшему абрису г-на Миллера ("На это место уж нету карты, и мы идем по абрису."). А в этом случае обычно полагаются на интуицию: придется что-то неработающее, но не очень важное оставлять в тылу (хотя я, например, терпеть этого не могу), иначе вперед не продвинешься.
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
25.12.2013, 00:49 9
Цитата Сообщение от Гаврилов-50 Посмотреть сообщение
Я выбрал DirectX 9 - о нем и речь.
directx вы не выбрали, вы выбрали обёртку над directx, которая называется managed directx. Тем же самым являются slimdx и sharpdx. Последний активно поддерживается и постоянно обновляется, тем самым рекомендуется к использованию. slimdx поддерживает dx11, но давно уже не обновлялся. Использовать mdx вообще не стоит - MS закинули проект давным давно (как впрочем и xna, что кстати тоже является обёрткой, но с более богатыми средствами разработки - один content pipeline чего стоит, здорово упрощая загрузку текстур и прочего).

Цитата Сообщение от Гаврилов-50 Посмотреть сообщение
И что же, так и кидаться от одного средства к другому при первом же затыке?
вы не к чему не кидаетесь, все обёртки однотипны. Разница лишь в синтаксисе версий directx.
1
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
25.12.2013, 19:22  [ТС] 10
Вот именно, что разница в синтаксисе!
А где взять толковый учебник или курс лекций по SharpDX - такой же по толковости, как у Миллера?
И где взять сам SharpDX - такой, чтобы он действительно работал?
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
25.12.2013, 19:53 11
Цитата Сообщение от Гаврилов-50 Посмотреть сообщение
Вот именно, что разница в синтаксисе!
dx9 не рекомендуется использовать, api уходит на покой. Так что остаётся dx10 и dx11. Их синтаксис почти одинаковый, проще говоря dx11 это расширенная и улучшенная версия dx10.

Цитата Сообщение от Гаврилов-50 Посмотреть сообщение
И где взять сам SharpDX - такой, чтобы он действительно работал?
на официальном сайте http://sharpdx.org/

Цитата Сообщение от Гаврилов-50 Посмотреть сообщение
А где взять толковый учебник или курс лекций по SharpDX - такой же по толковости, как у Миллера?
на сайте есть документация на английском http://sharpdx.org/documentation (но для программиста это не должно быть проблемой ). Можно в гугле поискать что-нить на подобии этого http://habrahabr.ru/post/142025/
попадалась неплохая литература на английском по sharpdx, если найду скину ссылку.

ещё
http://www.ozon.ru/context/detail/id/3505815/
посмотрите на gamedev'е (русском http://www.gamedev.ru/forum/ и английском http://www.gamedev.net/index )
1
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
25.12.2013, 20:57  [ТС] 12
Я надеялся, что Вы посоветуете что-то кроме сайтов, что я пропустил.
Многолетняя практика (и, по моим наблюдениям, не только моя) показывает, что учить что-то сложное по сайтам, да еще англоязычным,- дохлый номер. После этого заявления я рискую вызвать на себя массовую и даже злобную критику, особенно тех, кто трудится над такими сайтами. Но уж потерплю, потому что в действительности так оно и есть. Можете меня назвать ретроградом, но с книгой (бумажной), стоящей на подставке рядом с монитором, работать на порядок проще, а значит, и во столько же раз быстрее осваивается материал. Это важно, особенно когда занимаешься не только этим делом, а и другими, срочными. Именно это определило мой выбор. Впрочем, спасибо. Конечно, посмотрю.
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
25.12.2013, 21:55 13
Цитата Сообщение от Гаврилов-50 Посмотреть сообщение
с книгой (бумажной), стоящей на подставке рядом с монитором, работать на порядок проще, а значит, и во столько же раз быстрее осваивается материал.
ну коли на то пошло, то и книга не есть самый лучший вариант. Курсы и реальный профессиональный человек, который рассказывает и показывает, плюс раздаточный материал
0
82 / 58 / 0
Регистрация: 29.01.2013
Сообщений: 254
Записей в блоге: 1
26.12.2013, 10:17  [ТС] 14
Ну, это уже "натаскивание". Самостоятельной работы над источниками и этот вариант не исключает. Я именно так и планирую: освоить хотя бы на троечку Managed DirectX 9 SDK, а потом, если необходимость не отпадет, перейти к более современным (и более сложным) версиям. И тут помогут ваши ссылки.
ВСЕМ: С наступающим Новым годом!
1
6 / 5 / 0
Регистрация: 22.01.2012
Сообщений: 38
18.09.2014, 16:39 15
Советую вам вообще слезать с этого убогова Visual studio. Это баганутое г**** и ничего толком на нем не сделать!
0
18.09.2014, 16:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2014, 16:39
Помогаю со студенческими работами здесь

Visual Studio 2005 + DirectX SDK
Доброе утро! У меня есть Visual Studio 2005. Какую версию DirectX мне лучше скачать и где, что-бы...

Разработка игр с Visual studio 2015 и DirectX Sdk
Проблема вот в чем: у меня стоит VS2015 и нужно подключить туда DX SDK, но при установке...

Visual studio 2010 и directx 9
Здравствуйте!Если написал не в той теме то перенаправьте пожалуйста.Знаю что такой вопрос уже...

Как установить directx sdk 2010
Здраствуйте, помогите пожалуйсто, у меня стоит Microsoft Visual C++ Professional 2010, я скачал с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru