Войти
ПрограммированиеФорумОбщее

Свой 3d редактор на DirectX или XNA

#0
14:31, 4 янв. 2013

Здравствуйте! Хочу написать (для опыта) простенький 3d редактор, но не знаю какую технологию выбрать DirectX или XNA. Часто пишут, что XNA более современный, но судя по учебника и урокам по нем, он заточен в основном для игр, а вот НЕ игры на чем писать?


#1
14:58, 4 янв. 2013

> Часто пишут, что XNA более современный

XNA основан на DirectX.


kokon
> а вот НЕ игры на чем писать?

DirectX

#2
16:03, 4 янв. 2013

Интересно чем XNA заточен под игры? Вообще он ни под что не заточен, это фреймворк поверх DirectX.

#3
17:22, 4 янв. 2013

SoulSharer
XNA это фреймворк с процессингом мешей, шейдерами, обработчиком коллизий, 3D-операциями, звуком, сетью, обработчиком внешних контроллеров и рендером спрайтов. Сложно в таком случае сказать, что он ни подо что не заточен.

kokon
Можно взять в качестве игрового движка для написания 3Д редактора, 3Д-редактор Blender. Он вполне способен на такое.

#4
17:46, 4 янв. 2013

kokon
> он заточен в основном для игр
неа
ASD
> XNA основан на DirectX.
+1
kokon
> 3d редактор
WinApi, WinForms.

#5
18:49, 4 янв. 2013

decreat
> XNA это фреймворк с процессингом мешей, шейдерами, обработчиком коллизий,
> 3D-операциями, звуком, сетью, обработчиком внешних контроллеров и рендером
> спрайтов. Сложно в таком случае сказать, что он ни подо что не заточен.
Вы рассказываете это человеку, который работал с XNA, все что вы сейчас перечислили это набор классов, насчет обработчика коллизий выдуто из пальца, там такого никогда не было, были лишь проверки на вхождение и пересечение в стандартном пакете - не более. Тобишь весь функционал дополнительный попросту можно вообще не использовать, а написать свой, благо все для этого есть.

Шейдеры что в XNA, что в DX одни и теже, компилить для DX можно тоже самое используя fxc.exe и ID3DXEffect.
Все остальное что для 3д - туфта, зачастую переписывается.

Поэтому
decreat
> Сложно в таком случае сказать, что он ни подо что не заточен.
звучит глупо.
Ибо с XNA можно делать все что угодно, единственного что нет - это доступа к новым фичам DX10/11, которые хобби-разработчикам явно бессмысленны.

#6
20:24, 4 янв. 2013

SoulSharer
> которые хобби-разработчикам явно бессмысленны.
тут вы ошибаетесь, лично для меня это послужило причиной отказа от xna, который кстати уже умер

#7
20:48, 4 янв. 2013

Спасибо, за ответы. Остановлюсь на DirectX. А вот хочу сделать, чтобы можно было кликнуть мышкой по форме и в этом месте появился примитив. Я так понимаю, что надо экранные координаты перевести в мировые, чтобы DirectX понял в каком месте примитив создать. Можете подсказать как это сделать на c#. А то много чего пересмотрел, но все примеры на с++ и в основном выбор объектов. Это конечно тоже нужно будет впоследствии, но сейчас нужно получить мировые координаты курсора.

#8
0:32, 5 янв. 2013

SoulSharer
Хорошо, тогда иными словами: с какой целью в XNA заложен весь перечисленный мной функционал? И в качестве чего данный программный продукт позиционировали его разработчики?
Понятно, что можно и CMS на XNA написать при желании, но всему есть разумные границы.
Формулировка
>чем XNA заточен под игры? Вообще он ни под что не заточен
может сбить с толку.

kokon
Blender, опять же. 3Д-редактор с открытым исходным кодом.
http://www.blender.org/download/source-code/

#9
3:22, 5 янв. 2013

SoulSharer
> Интересно чем XNA заточен под игры? Вообще он ни под что не заточен, это
> фреймворк поверх DirectX.
Да вы что. Луп гейма наверно также просто запустить из любого другого не хна-шного проекта. Или рендерить не в его окно а на панель какую-нибудь.

Вообщем тут, я считаю, вы погарячились.

Вообще, имхо, опенгл для начала лучше всего. И математику придется написать самому, и много чего другого. Да и перспективнее, в плане промышленного использования.

#10
12:04, 5 янв. 2013
Blender, опять же. 3Д-редактор с открытым исходным кодом.

Не так-то просто с ним разобраться. Код скачал. Даже не знаю с чего начать)))

#11
16:41, 5 янв. 2013

kokon
Если недостаточно знаний, чтобы найти в готовом коде интересующий алгоритм, начинать нужно с приобретения этих самых знаний.
Сначала: http://pmg.org.ru/basic3d/index.html
Затем: http://pmg.org.ru/nehe/index.html

В принципе, можно пойти и методом реверс-инжиниринга, собрать блендер из исходников, чтобы запустился, а затем выкидывать оттуда целые блоки кода, которые явно не нужны. Чтобы осталось только базовое - 3Д курсор, выбрать примитив, создать примитив, отредактировать, повращать камеру.

Курсовой проект?

#12
19:20, 5 янв. 2013

decreat
Спасибо за ссылки. Нет, это не курсовая. Просто я уже 10 лет 1С занимаюсь, хочется что-то новое изучить, а 3d программирование меня всегда интересовало.

ПрограммированиеФорумОбщее

Тема в архиве.