1 | |
Применение библиотек DirectX 9 SDK в Visual Studio 2010 (C#)22.12.2013, 13:41. Показов 4388. Ответов 14
Метки нет (Все метки)
Моя среда: 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
|
22.12.2013, 13:41 | |
Ответы с готовыми решениями:
14
Visual Studio 2012 не видит библиотек DirectX SDK DirectX SDK и Visual Studio 2010 Подключение directx sdk в Visual Studio 2010 Как подключить directx sdk к visual c++ 2010 |
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
|
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
|
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
|
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
|
25.12.2013, 00:49 | 9 |
directx вы не выбрали, вы выбрали обёртку над directx, которая называется managed directx. Тем же самым являются slimdx и sharpdx. Последний активно поддерживается и постоянно обновляется, тем самым рекомендуется к использованию. slimdx поддерживает dx11, но давно уже не обновлялся. Использовать mdx вообще не стоит - MS закинули проект давным давно (как впрочем и xna, что кстати тоже является обёрткой, но с более богатыми средствами разработки - один content pipeline чего стоит, здорово упрощая загрузку текстур и прочего).
вы не к чему не кидаетесь, все обёртки однотипны. Разница лишь в синтаксисе версий directx.
1
|
25.12.2013, 19:22 [ТС] | 10 |
Вот именно, что разница в синтаксисе!
А где взять толковый учебник или курс лекций по SharpDX - такой же по толковости, как у Миллера? И где взять сам SharpDX - такой, чтобы он действительно работал?
0
|
25.12.2013, 19:53 | 11 |
dx9 не рекомендуется использовать, api уходит на покой. Так что остаётся dx10 и dx11. Их синтаксис почти одинаковый, проще говоря dx11 это расширенная и улучшенная версия dx10.
на официальном сайте http://sharpdx.org/ на сайте есть документация на английском 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
|
25.12.2013, 20:57 [ТС] | 12 |
Я надеялся, что Вы посоветуете что-то кроме сайтов, что я пропустил.
Многолетняя практика (и, по моим наблюдениям, не только моя) показывает, что учить что-то сложное по сайтам, да еще англоязычным,- дохлый номер. После этого заявления я рискую вызвать на себя массовую и даже злобную критику, особенно тех, кто трудится над такими сайтами. Но уж потерплю, потому что в действительности так оно и есть. Можете меня назвать ретроградом, но с книгой (бумажной), стоящей на подставке рядом с монитором, работать на порядок проще, а значит, и во столько же раз быстрее осваивается материал. Это важно, особенно когда занимаешься не только этим делом, а и другими, срочными. Именно это определило мой выбор. Впрочем, спасибо. Конечно, посмотрю.
0
|
25.12.2013, 21:55 | 13 |
ну коли на то пошло, то и книга не есть самый лучший вариант. Курсы и реальный профессиональный человек, который рассказывает и показывает, плюс раздаточный материал
0
|
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 | |
18.09.2014, 16:39 | |
Помогаю со студенческими работами здесь
15
Visual Studio 2005 + DirectX SDK Разработка игр с Visual studio 2015 и DirectX Sdk Visual studio 2010 и directx 9 Как установить directx sdk 2010 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |