русский
Germany.ruForen → Архив Досок→ Webdesign und Hosting

Вопрос по Managed DirectX

120  
spongebob гость29.01.06 21:50
spongebob
NEW 29.01.06 21:50 
Всем доброго времени суток!
Вот начал изучать DirectX for Managed Code. До этого с программированием 3D графики вообще не сталкивался. Но вот не могу в данный момент найти овета на простой вопрос. Как создать и отобразить при помощи DirectX.Direct3D плоский многоугольник √ имеется ввиду многоугольник неправильной формы. Имеется некоторый набор точек, которыми этот многоугольник ограничен. Можно конечно использовать класс Line но мне необходимо получить закрашенный многоугольник. Создать Mesh и потом отобразить неприемлемо т.к. Нужно работать с многоугольниками, границы которых описаны очень большим количеством точек и имеют неправильную форму и вычислять количество и последовательность фэйсов это лишняя и не нужная головная боль. Буду рад если кто нибудь подскажет как это сделать.
С уважением spongebob
#1 
GANDJUBAS Ганджубас29.01.06 22:35
GANDJUBAS
NEW 29.01.06 22:35 
in Antwort spongebob 29.01.06 21:50
Я только на OpenGL писал, многово сказать не могу, но посмотрите тут:
http://www.two-kings.de/tutorials/dxgraphics/dxgraphics03.html
Принцип одинаковый. Но вроде в DirectX нет функции непосредсвенно для полигона (больше 3х углов).
Реально полигона (больше 3х углов) нет и в OpenGL. На уровне графиккарты все полигоны строятся из треугольников. Все современные карты на это оптимированны.
Чтобы отобразить плоскость неправильной формы (полигон), его нужно построить из отдельных треугольников.
в DirectX - состояние D3DPT_TRIANGLESTRIP
#2 
Tomasson мумеиси29.01.06 23:01
Tomasson
NEW 29.01.06 23:01 
in Antwort spongebob 29.01.06 21:50
скачай у майкрософта SDK к DirectX. Там есть Sample Browser. В нем есть примеры. Смотри на код и делай выводы:-)
У Tom Miller'а есть 2 книги по Managed DirectX. Не фонтан, но на сегодня это единственные книги по Managed DirectX.
#3 
spongebob гость30.01.06 13:56
spongebob
NEW 30.01.06 13:56 
in Antwort GANDJUBAS 29.01.06 22:35
Да вот именно что то такое как в OpenGL типа GL_POLYGON. Должна же все таки какая то возможность быть.
#4 
spongebob гость30.01.06 14:16
spongebob
30.01.06 14:16 
in Antwort Tomasson 29.01.06 23:01
скачай у майкрософта SDK к DirectX.
А как я до этого мог вообще изучать программирование под DirectX
Там есть Sample Browser. В нем есть примеры. Смотри на код и делай выводы:-)
А сам ты эти примеры смотрел? Если да то подскажи где тот который подходит под мой вопрос? Вполне возможно что я чего то не заметил.
У Tom Miller'а есть 2 книги по Managed DirectX. Не фонтан, но на сегодня это единственные книги по Managed DirectX.
Я знаю одну "Managed DirectX9 Graphics and Game Programming" не буду говорить, что книга не фонтан, только лишь изза того что не нашел в ней ответа на свой вопрос, хотя в общем и целом согласен, все очень поверхностно. А что еще за книга вторая, как называется?
#5 
Tomasson мумеиси30.01.06 15:13
Tomasson
NEW 30.01.06 15:13 
in Antwort spongebob 30.01.06 14:16
про книги напишу сегодня вечером, а о примерах и способах прорисовки ближе к концу недели, т.к. свободного времени пока нет:-)
#6 
spongebob гость30.01.06 15:46
spongebob
NEW 30.01.06 15:46 
in Antwort Tomasson 30.01.06 15:13
Заранее благодарен
С уважением spongebob
#7 
Tomasson мумеиси30.01.06 21:50
Tomasson
NEW 30.01.06 21:50 
in Antwort spongebob 30.01.06 15:46
У Tom Miller'а есть две книги по Managed DirectX.
1. Managed DirectX 9 Kick Start : Graphics and Game Programming
http://www.amazon.com/gp/product/0672325969
2. Beginning 3D Game Programming
http://www.amazon.com/gp/product/0672326612
Первая книга построена на примерах из Sample Browser'а. Там так раз есть то, что ты спрашивал:-). Но она написана уже давно и многое поменяли в новой версии. Хотя основные вещи остались как и прежде.
Вторая книга поновее и уже концентрируется на программировании игр. В ней рассмотрены три игры. От начала до конца. Но основ и подробностей (как рисовать по точкам, как рисовать многоугольники) там уже нет.
Так что, основной источник инфы для начала - это первая книга Миллера и примеры из Sample Browser'а. В Sample Browser'е не показаны все возможности, но тебе, по крайней мере, даны все структуры и функции.
Например, в примерах есть функция device.DrawPrimitives(). Среди ее параметров есть PrimitiveType. Если ты посмотришь в документацию, то ты увидешь, что PrimitiveType Enumeration имеет следующие members:
http://msdn.microsoft.com/library/en-us/directx9_m/directx/ref/ns/microsoft.dire...
LineStrip, TriangleFan, TriangleList, TriangleStrip должны тебя заинтересовать:-)
http://msdn.microsoft.com/library/en-us/directx9_m/directx/direct3d/gettingstart...
так же ищешь инфо о структурах, которые входят в класс CustomVertex.
Например: http://msdn.microsoft.com/library/en-us/directx9_m/directx/ref/ns/microsoft.dire...
VertexBuffer тебе тоже нужен будет:
http://msdn.microsoft.com/library/en-us/directx9_m/directx/ref/ns/microsoft.dire...
и т.д. и т.п.
Смотри примеры, читай в доке про каждый класс, функцию и параметры, которые встречаются в коде.
В SDK есть документация с описаниями и обьяснениями примеров.
Смотри также тут:
http://msdn.microsoft.com/library/en-us/directx9_m/directx/direct3d/direct3d.asp...
(версия Август 2005, но хоть что-то)
В последней версии много функциональности перенесли в effect framework (немного о нем можно прочесть во второй книге Миллера). Так что, кое что из прочитанного в доке уже может и не работать 8-)
Если нужны эти две книги, то давай мыло, скину их в эл. виде. Правда, код к ним уже не пашет (устарел), но Миллер периодически его обновляет:
http://www.thezbuffer.com/index/downloads.aspx
Могу еще посоветовать:
http://msdn.microsoft.com/directx/
http://www.mdxinfo.com/
http://www.thezbuffer.com/
http://www.gamedev.net/
Самая большая проблема, Managed DirectX изменяют быстрее, чем появляется инфа о нем :-)
Вот скоро должна выйти новая книга :-):
http://www.amazon.com/gp/product/0672326957
поглядим, может там уже будет стоящее описание.
Кстати, у тебя случайно нет вот этой книги в эл.виде?
http://www.amazon.com/gp/product/1590593197
#8 
Tomasson мумеиси30.01.06 21:57
Tomasson
NEW 30.01.06 21:57 
in Antwort spongebob 30.01.06 15:46
Вот можешь полюбоваться, что люди делают с Visual C# 2005 Express + SDK DX 9.0c
http://www.funmangames.com/haddd/index.php?pagina=videos&idioma=uk
там можно и tutorials посмотреть, и движок скачать.
#9 
spongebob посетитель31.01.06 01:07
spongebob
NEW 31.01.06 01:07 
in Antwort Tomasson 30.01.06 21:50
Я тебе в личку сообщение послал.
Еще раз Спасибо за инфу.
#10