Пример работы с Direct3D

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

DmSokol
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 27.02.2016 (Сб) 15:31

Пример работы с Direct3D

Сообщение DmSokol » 02.03.2016 (Ср) 0:27

Привет Всем!
На сайте vbstreets есть очень хорошая статья, в которой рассматривается интересный пример работы с Direct3D: http://www.vbstreets.ru/VB/Articles/66368.aspx
По-моему ее автор Mikle, автор замечательных статей, посвященных DirectX.
В статье говорится, что можно скачать исходник к проекту (папка N15), но я нигде не могу его найти.
Если у кого-то есть, выложите пожалуйста.
Спасибо!

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пример работы с Direct3D

Сообщение Mikle » 02.03.2016 (Ср) 9:19

DmSokol писал(а):По-моему ее автор Mikle

Нет, моя статья с примерами тут:
http://mikle.ucoz.com/load/0-0-0-11-20

DmSokol
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 27.02.2016 (Сб) 15:31

Re: Пример работы с Direct3D

Сообщение DmSokol » 02.03.2016 (Ср) 11:52

Mikle, может Вы мне поможете?
Моя задача состоит в том, чтобы в пространстве построить трассу шинопровода из примитивов.
Траекторию должен задавать пользователь. Пример, описанный в статье http://www.vbstreets.ru/VB/Articles/66368.aspx очень близок к моей идее. Но, к сожалению, я застопорился на зависшем в воздухе кубе.
Помогите, пожалуйста, построить произвольную трассу из примитивов: https://yadi.sk/i/ywVr_2yOpqd3c
Спасибо!
Последний раз редактировалось DmSokol 02.03.2016 (Ср) 12:06, всего редактировалось 1 раз.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пример работы с Direct3D

Сообщение Mikle » 02.03.2016 (Ср) 12:03

Чтобы что-то такое строить, нужны исходные данные о трассе, откуда они берутся, как выглядят?

DmSokol
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 27.02.2016 (Сб) 15:31

Re: Пример работы с Direct3D

Сообщение DmSokol » 02.03.2016 (Ср) 12:18

Габариты шинопровода зависят от номинального тока:
https://yadi.sk/i/cHMdcpAdpqhFr
Но, чтобы описать характерное прохождение трассы, можно воспользоваться одним размером, например 74x140 (мм) , длина произвольная.
Пользователь в пространстве указывает координаты начала (X,Y,Z), а потом нажимая кнопки (проложить прямо, поднять вверх на угол, опустить вниз на угол, повернуть вправо на угол, повернуть влево на угол) продолжает происовку трассы вручную.

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Пример работы с Direct3D

Сообщение Admiralisimys » 03.03.2016 (Чт) 0:25

DmSokol я бы разделил задачу на две составляющие. Собственно интерактивное построение в 3D и отображение ранее построенного: например в процессе сохранение программа сохраняет расположение и габариты объектов в файл.
Первое лично для меня видится не совсем тривиальной задачей.
По второму, если уже получается куб, то ничто не мешает в цикле расставить несколько таких.
По картинке (ШП.jpg) я насчитал 14 прямоугольных параллелепипедов.
Direct3D_SampleDemo.png

Сразу оговорюсь, это скрин демки на С++.
У вас нет доступа для просмотра вложений в этом сообщении.

DmSokol
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 27.02.2016 (Сб) 15:31

Re: Пример работы с Direct3D

Сообщение DmSokol » 03.03.2016 (Чт) 16:01

Admiralisimys, Вы правы! Логичней будет нарисовать 3D полилинию (как в AutoCAD), а затем заполнить траекторию примитивами. Интересно, есть метод в Direct3D для построения простых линий в пространстве с возможностью вычисления длин отрезков?

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Пример работы с Direct3D

Сообщение Admiralisimys » 03.03.2016 (Чт) 17:33

DmSokol ну прям такой функции как в GDI\GDI+ DrawLine в Direct3D (если говорим про 11 версию) конечно же нет, всё что он умеет рисовать ограниченно. Насчёт всей математики, конечно в самом Direct3D таких функций нет. Microsoft рекомендует для этих целей использовать DirectXMath. Но никто не запрещает использовать и стороннею математическую библиотеку, к примеру glm.
Но зачем потом измерять? Сразу при создании задать нужный размер.


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList