| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > кто работал в Direct3D |
| Автор: shara 1.7.2004, 11:55 |
| я вообщето довольно хорошо знаком с 3D графикой, но в основном все алгоритмы разрабатывал и писал сам (после прочтения соответственной литературы). решил попробовать на вкус этот Direct3D. есл кто-то работал и знает Direct3D то напишите: 1 как быстро он работает. ведь обращение к его ресурсам требует больших затрат времени чем работа с собственными 2 сложно-ли прейти на Direct3D после того как сам писал 3D проги 3 стоит-ли вообще его изучать 4 недостатки и приимущества 5 ну и вообще хотелосьбы услышать мнение умных людей 6 может кто-то и подскажет где в интернете можно почитать (желательно на русском) |
| Автор: DENNN 1.7.2004, 12:17 |
| Последние годы стараюсь не пользоваться. Главные проблемы, которые не видны сразу - те же что и все остальные с технологиями COM от МС. В связи с этим с интересом жду, когда они нагло заявят что COM вчерашний день и начнут выпускать подобную технологию, но на .NET Есть конечно и положительные стороны. Главное - н рынке очень много не дорогих видеокарт, которые аппаратно потдерживают не только базовые функции DirecX, но и всевозможные шейдеры и пр.. Такая вещь, как аппаратное сжатите текстур в формате DirectX, конечно очень здорово помогает "разогнать" 3D графику, но для этого к счастью не нужно стоить все приложение на DirectX. Мое резюме следующее: необходимо хотя бы отчасти уделить этому время, чтобы представлять о чем идет речь. Кроме того такие знания могут пригодится при поиске работы (мнение работодателя не всегда совпадает с твоим в вопросе что лучше использовать). P.S. по настоящему интересные коммерческие проекты и некомерческие которые я знаю от применения DirectX только проиграли бы. |
| Автор: Baa 1.7.2004, 21:40 | ||
|
| Автор: cardinal 2.7.2004, 02:15 | ||
Вот и мне на CeBit 2004 сказали, что так чтобы игрушку написать DirectX пойдет, а вот если тебе модели профессионально рисовать (из Cad'ов там импортировать и т.д.) и заниматься крутыми вещами, то лучше OpenGL, так как в нем больше всякого разного наворочено и ты не оказышься в тупике, как это может произойти с DirectX. Это не мое мнение, я в этом пока слаб... |
| Автор: chipset 2.7.2004, 04:41 |
| Я собираюсь переходить на D3D поскольку новые версии OGL'a не выходят что не есть хорошо А в инете глянь сайт http://www.xdev.ru (наподобии NeHe да ещё на нативном русском). |
| Автор: kruchinin 2.7.2004, 09:36 | ||
интересно в каком? |
| Автор: Sun 2.7.2004, 10:47 |
| Direct3D - классная штука. Достаточно запустить несколько примеров из DirectX SDK чтобы это прочувствовать. На мой взгляд DirectX сейчас самое полноценное API для разработки игр (кто не согласен - покажите достойную альтернативу). Хотя если тебе нужно делать переносимое приложение, то лучше конечно использовать OpenGL. |
| Автор: DENNN 2.7.2004, 14:07 | ||||
Дело не в том, что там что-то наворочено, а как раз наоборот. Один из недостатков использования D3D именно в том что что многие пути работы выбраны за тебя разработчиками и тебе ничего другого не остается, как использовать предлагаемые способы и механизмы. В OGL все наоборот - ты работаешь с примитивами. Делай что хочешь - хочешь соббственную логику освещения, хочешь законы геометрии искази. Все в твоих руках, нужно только желание и знание математики. Конечно эффективнось написания кода вначале разработки другая. Как пример: агенты, обслуживающие клиентов 1С, дописывают свои модули в средах визуального проектирования. Код, который при этом получается, с точки зрения программиста может быть ужасен. Зато за 1-2 часа ты получаешь работающее приложение. Так и с D3D в играх - путь от начала "ваяния" до первых результатов намного короче. Конечно, недостатки есть и у OGL. Так до сих пор нет стандартного механизма потдержки теней. Каждый раз приходится находить оптимальный алгоритм для данной задачи (зато и ресурсы используються только необходимые а не весь гигантский конвейер). У нас в России о больших технологиях на OGL к сожалению (а может и к счастью) известно не очень много. Так если ты компании 3dlabs предложишь встроить потдержку D3D в их карты - они даже отвечать тебе не станут, потому что решат: человек не сильно в данном вопросе разбирается. А у меня в офисе стоят две карты Wildcat - монстры, на которых стереоизображение летает.
Ну и что дальше? А если взглянуть на рекламные образцы работы WinXP тоже можно такие выводы сделать. А если на сравнительные графики Win2003 с другими ОС, то после этого всем Linuxam повесится? |
| Автор: Sun 2.7.2004, 16:22 | ||
Обругать что-то всегда легче и приятней чем похвалить. Если у тебя нет серьезной комманды системных программистов, математиков и проектировщиков, боюсь что шансов создать хоть что-то приближенное к DirectX у тебя ноль. Самый большой минус DirectX - непереносимость, но она никогда и не планировалась переноситься на другие платформы, хотя если бы ее перенесли на Linux я был бы всеми руками и ногами за |
| Автор: Гость_DENNN 2.7.2004, 17:01 | ||
Интересно получается Значит использовать библиотеки, которые собрали вместе и назвали D3D это хорошо. А если я возьму намного более богатую бибилиотеку open source под OpenGL, то это вроде как я халтуру сделал? Насчет "создать хоть что-то приближенное к DirectX" так никто и не станет ничего подобное делать. Сделать сложную систему еще не означает сделать хорошую систему. Если ты задашся целью и посмотришь на развитие DirectX, то можно увидеть примерно следующую картину: начиная с 3-4 версии это уже была система, на которой можно было при желании сделать небольшую и красивую программу. Потом пошло версия 4-5 где во всю развивался режим Retained Mode. Это было как раз то, что ты описываешь: Эпосмотрите как можно легко создать трехмерное приложение. Вам нужно сосредоточиться на своей |
| Автор: Guest 2.7.2004, 17:21 | ||
| задачи, а всю трудную работу за вас сделает он (сцену отрисует когда нужно, свет, тени просчитает, матрицы координат преобразует). Уже в 5-6 версии внутри разработчиков видимо стали приходить к выводу, что они загнали себя в тупик, решив построить универсальный механизм "сделай все за меня". В 7 версии не было введено НИ ОДНОЙ новинки в Renained mode, зато Immediate mode развивался во всю. А чуть позже во всех офицальных документах вписывалась замечание, что Retained mode более разрабатывать не будут и постепенно выведут из движка. Приложения, написанные под 6-7 версию могут неверно обрабатываться логикой 9 или приводить к неверным вызовам интерфейсов COM-объектов. Так о чем таком "замечательном" мы говорим? Насчет обругать всегда легко, то по отношению комне ты применяешь ту же методику. Тебе не кажется? Этот топик не флеймовый и ругаться мне совершенно не охота, но чтоб вопрос закрыть о моей компетентности вот две ссылки на проекты, которые я могу сразу дать http://www.datageo.info/projects-saleh.html http://www.datageo.info/soft-GeoGlobe.html А насчет
Почитай отзывы по поводу предложения создания виндоусподобного реестра в в Linux - ответ на это высказывание будет похожим. |
| Автор: Sun 2.7.2004, 18:26 |
| Согласен что для разработки CAD или GIS систем использовать D3D особого смысла нет и лучше использовать OpenGL (хотя во многих инженерных пакетах под Windows включена поддержка того и другого). Но как стандартное игровое API оно уже доказало право на жизнь и если речь идет о создании игр, то DirectX IMHO не самый плохой выбор. offtop: DENNN не суди строго, просто тема интересная и хотелось подисскутировать. Помотрел сайт - здорово! Всегда мечтал чем-то таким заниматься. |
| Автор: shara 3.7.2004, 07:39 | ||
а на чём прогу писать - на С++ конечно же, так-что он тут при всём при том. ну народ спасибо - начитался ваших отзывов теперь такой умный хожу, наверное пойдука я учить этот OpenGL он то мне всёже ближе. если я правильно понял то главная разница между Direct и Open в том что Direct делает всё за тебя а в Open ты сам создаёшь алгоритмы по которым будет производится работа с объектами. А какие средства для работы или так сказать удобства, предоставляет Open програмисту? |
| Автор: DENNN 5.7.2004, 12:03 | ||
С каждой версией все меньше и меньше Не знаю правда все новвоведения 9 версии, но суть в том что постепенно они тоже пытаються передать контроль программеру |
| Автор: Maniac 6.4.2006, 04:52 |
| К текущему времяни могу сказать, что 9-я версия хороша) По крайней мере для создания игр. Тем более, что современные игры практически все пишуться на DirectX (с поддержкой шейдеров). Сам работал и с OpenGL, правда не долго, могу сказать одно DirectX не прост в изучении, код получается не особо интуитивно понятен как в OpenGL (который кстате легок в изучении), но больше всего меня потрясла поддержка различных математических функций, которые выполняются 'на ура' как быстро (пересечение луча с Mesh объектом и т.д.) и встроенная поддержка работы с Mesh моделями вообще. По большей части могу сказать, что DirectX 9 мне больше понравился. А насчет того, что он все делает 'за тебя' это так, но не все, в любом случае у программиста есть отличная возможность: использовать свои алгоритмы/новшества, либо пользоваться встроенными - а это гибкость! На счет переносимости, согласен, нет. А нужна ли она с экономической точки зрения если вы разработчик игр? У большенства пользователей установлен Windows, особенно у начинающих (которые тоже не против поиграть). Так зачем же выбирать OpenGL без шейдеров, когда можно использовать отточенный (к текущему моменту) DirectX с большими возможностями (читать: лучшими продажами игры)? Вот и ответ. Подчеркну, что мое высказывание касается только программирования игр, для бизнес приложений, CAD/CAM систем и т.п. OpenGL - лучший выбор (т.к. в этих системах не требуется real-time графика, а если и нужна, то не настолько требовательная к качеству, по сравнению с играми) |