Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Заблокирован

DirectX - первые шаги

10.10.2012, 16:44. Показов 3468. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток. Хочу сразу сказать, что ранее не приходилось работать с графикой "дальше", чем GDI. Сейчас приступил к изучению DirectX (пока позиционируюсь на 9ой версии), и конечно, возникло не мало вопросов. Однако не смотря на обилие литературы в интернете, найти ответы весьма затруднительно. Большинство уроков не выходят за пределы пары шагов от инициализации, а в книгах, что мне попадались, либо рассмотрены примеры древних методов вывода двумерной графики, либо разработка на самопальных движках. Самой полезной пока для себя нашел "DirectX 9 Уроки программирования на C++" от Станислава Горнакова.

Если у кого-то есть возможность - посоветуйте литературу для начинающих. Меня интересует анимация мешей, методы отображения ландшафтов и в проекции материалы касательно разработки графического движка для игровой сферы.
Так же интересует информация о технологиях, которые не стоит использовать (вскоре не будут актуальны в новых версиях).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2012, 16:44
Ответы с готовыми решениями:

C++ первые шаги (абсолютно первые)
Привет, пользователи CyberForum. Я относительно давний юзер этого форума, и вот, наконец-то решил воплощать мечту в реальность, а именно...

первые шаги в c#
начал изучать c#.и вот столкнулся с первой проблемой. почем-то программа возводит в степень не то число что я ввел. using System; ...

Первые шаги!
Подскажите пожалуйста книгу по Vb.Net для чайников.

27
 Аватар для warchief
36 / 36 / 0
Регистрация: 09.08.2012
Сообщений: 132
12.10.2012, 06:24
Студворк — интернет-сервис помощи студентам

Не по теме:

Вот сайт без рекламы по директу 11, тоесть весь narod.ru, а ныне он куплен яндексом, тебе в руки
ОМГ, ты смешной... Я знаешь ли могу с таким же успехом тогда писать и на gameinstitute или у себя в блоге, тоже не будет рекламы... Только это нифига не вики и чтобы внести изменения надо произнеси заклинание в тысячу матов
Еще раз - чем тебе не нравится Wikia? Почему ты так упорно саботируешь сайт? Я с этого не получаю ни копейки, я на это трачу личное время которое мог бы потратить во фриланс. Я на это трачу нервы доказывая таким как ты что нет никакого злого умысла. Если бы это было ради рекламы, мне бы хватило двух трех статей, но сейчас там уже 30 страниц статей, в каждой статьей 30-50 страниц фомата А4


И хватит уже рекламировать http://d3dbegin.narod.ru/
У меня и то больше статей... А кроме того кто-то тут раньше разорялся о том что эти основы нафиг никому не нужны, потому что в интернете их и так полно.
0
Заблокирован
12.10.2012, 11:51  [ТС]
Цитата Сообщение от -=MASTER=- Посмотреть сообщение
Этот подарочеГ как раз и нацелен на то, что ты сначала изучил С++, а уж потом DiretX
Ога, все так и побежали читать про stl, обработку файлов, про форматы 3D моделей, про парсинг и т.п. Пару кликов в браузере и n-нная библиотека про работе с каким-либо форматом готова. А многие "гуру" в интернете советуют для этой цели отдельно инициализировать 9ый девайс, загружать файлы из него и плясать от этого.
Цитата Сообщение от warchief Посмотреть сообщение
Это как так? Как игра использующая DX11 будет хуже работать DX9... Чем она будет хуже работать? Тем более DX11 более оптимизирован чем DX9, за счет более близкой работы с видеокартой, плюс многопоточный рендер по умолчанию, и еще кое-какие плюшки от Windows которая тоже была оптимизирована.
Я думаю, что как раз 11-ая версия оптимизирована под 11ую версию, иными словами такого рода поддержка предполагает затрату дополнительных ресурсов. И по идее использование Dx9 на видеокартах не поддерживающих Dx11 даст большую производительность, чем Dx11.
Цитата Сообщение от warchief Посмотреть сообщение
А чем тебя треугольник не устроил? И зачем тебе динамическое создание вершин? Это же нагрузка на видеокарту, которая не нужна.
Такс, про постоянное создание во время рейдинга, я и не говорил. Проводить полное создание в инициализации??? Вот мне интересно, допустим у меня есть N-нная карта, которая состоит из 20 различных зон и порядка 500-1000 различных объектов. Мне от одного треугольника прыгать или грузить все этой в одной процедуре? Мне как-то кажется, что рациональней будет проводить дополнительную прогрузку, а не используемые объекты освобождать из памяти. Или я не правильно говорю?
0
 Аватар для warchief
36 / 36 / 0
Регистрация: 09.08.2012
Сообщений: 132
12.10.2012, 13:03
Цитата Сообщение от DefineFalseTrue Посмотреть сообщение
Я думаю, что как раз 11-ая версия оптимизирована под 11ую версию, иными словами такого рода поддержка предполагает затрату дополнительных ресурсов. И по идее использование Dx9 на видеокартах не поддерживающих Dx11 даст большую производительность, чем Dx11.
Вряд ли, все дело в DXGI, так что скорее всего не очень заметно


Цитата Сообщение от DefineFalseTrue Посмотреть сообщение
Такс, про постоянное создание во время рейдинга, я и не говорил. Проводить полное создание в инициализации??? Вот мне интересно, допустим у меня есть N-нная карта, которая состоит из 20 различных зон и порядка 500-1000 различных объектов. Мне от одного треугольника прыгать или грузить все этой в одной процедуре? Мне как-то кажется, что рациональней будет проводить дополнительную прогрузку, а не используемые объекты освобождать из памяти. Или я не правильно говорю?
Я забыл как называется этот новый модный ныне метод программирования... кажется дата-ориентированный.
Запусти WoW или скайрим - огромный мир, но почти никаких загрузок, запусти любую старую игру - и там через каждые пять шагов грузятся локации. Это новомодная методика.
Во-первых по памяти - есть пулы памяти. Выделяешь огромный кусок и потом им пользуешься заполняя данными, не создавая и удаляя куски памяти. Пул памяти можешь глянуть в исходниках doom 3, там наиболее читабельно
Во-вторых чтение данных с жесткого диска само по себе медленно из-за медленной работы ЖД, поэтому чтение файла, сколь не оптизируй этот процесс будет медленно. Но и память не резиновая так что без подзагрузок никак, надо балансировать.
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
12.10.2012, 16:04
Цитата Сообщение от warchief Посмотреть сообщение
Почему ты так упорно саботируешь сайт?
Да мне [цензура] на твой сайт
Цитата Сообщение от warchief Посмотреть сообщение
И хватит уже рекламировать http://d3dbegin.narod.ru/
И на этот тоже
Цитата Сообщение от warchief Посмотреть сообщение
Во-первых по памяти - есть пулы памяти. Выделяешь огромный кусок и потом им пользуешься заполняя данными, не создавая и удаляя куски памяти.
Бред сивой кобылы
0
 Аватар для warchief
36 / 36 / 0
Регистрация: 09.08.2012
Сообщений: 132
12.10.2012, 16:44
Да мне [цензура] на твой сайт
А чего же тогда везде пишешь о каком-то злом умысле, отстойном сайте который "неработает" и прочее?

И на этот тоже
А сам упоминаешь его в каждой теме

Бред сивой кобылы
Знаешь, я спишу это на то что тебе нравится меня критиковать, потому что иначе окажется что ты нуб не знающий примитивных вещей
http://ru.wikipedia.org/wiki/Объектный_пул

ну или хотя бы про placement new слышал?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> 
#include <new>
 
using namespace std; 
 
const int N = 5; 
char buffer[512];
 
int main () 
{ 
  double *pd; 
  int i; 
  pd = new (buffer) double [N] ; // использование массива buffer 
  
  for (i = 0; i < N; i++ ) 
    pd[i] = 1000 + 20.0 * i; 
        
  cout << "Memory addresses: \n" << " heap: " << pd << " static: " << (void *) buffer << endl;  
 
  system ("PAUSE");
  return true;
}
Угадай где будет размещен pd? нет не там где ты подумал а в buffer. Потому что здесь память не выделяется а берется из buffer, кстати delete здесь опасен - но это тебе домашним заданием, раз мастер может поймешь почему
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
12.10.2012, 18:15
Цитата Сообщение от warchief Посмотреть сообщение
Это как так? Как игра использующая DX11 будет хуже работать DX9... Чем она будет хуже работать? Тем более DX11 более оптимизирован чем DX9, за счет более близкой работы с видеокартой, плюс многопоточный рендер по умолчанию, и еще кое-какие плюшки от Windows которая тоже была оптимизирована.
Я говорю про видеокарты, которое не поддерживают DX11. Просто на просто DX11 приложение не заработает на таких видеокартах. Вы говорите, что для таких случаях есть feature level, который как-то заставляет это работать на таких видеокартах, если я вас понял. Но ведь это наверняка не бесплатно, может быть придется заплатить производительностью. Так я вас и спрашиваю на сколько производительность снизится, если вообще снизится.
0
 Аватар для warchief
36 / 36 / 0
Регистрация: 09.08.2012
Сообщений: 132
12.10.2012, 20:25
Цитата Сообщение от Chelioss Посмотреть сообщение
Я говорю про видеокарты, которое не поддерживают DX11. Просто на просто DX11 приложение не заработает на таких видеокартах. Вы говорите, что для таких случаях есть feature level, который как-то заставляет это работать на таких видеокартах, если я вас понял. Но ведь это наверняка не бесплатно, может быть придется заплатить производительностью. Так я вас и спрашиваю на сколько производительность снизится, если вообще снизится.
не могу точно ответить, так как нельзя проверить, но по идее проседать не должно, ибо драйвер DX написан так что все команды DX9-DX10-DX11 пересылаются в DXGI а вот он уже работает с видеокартой, то есть по идее так как интерфейс общий, то без разницы что юзаем, все равно будет одинаково обработано. А вообще вот
http://msdn.microsoft.com/en-u... s.85).aspx
http://blogs.msdn.com/b/chuckw... evels.aspx

Может я в чем-то и ошибаюсь, но феатре левел проверял на видеокарте поддерживающей только DX10 - работало
0
Заблокирован
12.10.2012, 21:08  [ТС]
Цитата Сообщение от warchief Посмотреть сообщение
Вряд ли, все дело в DXGI, так что скорее всего не очень заметно
За окончательную передачу к оборудованию отвечает GI, но обработка идет несколько ранее, либо стандартный обработчик, либо "контейнер" feature. Во всяком случае так по докам 10ой версии, мб изменили уже.
Цитата Сообщение от warchief Посмотреть сообщение
Запусти WoW или скайрим - огромный мир, но почти никаких загрузок, запусти любую старую игру - и там через каждые пять шагов грузятся локации. Это новомодная методика.
Если говорить про WoW, то там даже играть можно, пока идет скачивание клиента, однако это не значит, что он не грузится. Так же могу сказать про другой проект - Lineage, где локация разбита на N-нное количество зон и при использовании "старого железа" заметно сильное торможение игрового процесса при переход к стыковкам этих зон. Просто раньше в играх при переходе в другую зону мы получали окно с сообщением "подождите...", а теперь (из-за явного увеличения памяти и производительности оборудования) стала возможна фоновая загрузка. Поэтому в схеме проекта из 3 пунктов - инициализация, освобождение и процесс, явно чего-то не хватает.
Цитата Сообщение от warchief Посмотреть сообщение
Во-первых по памяти - есть пулы памяти. Выделяешь огромный кусок и потом им пользуешься заполняя данными, не создавая и удаляя куски памяти.
На практике пулы не применял, однако постоянно использую динамические массивы с методом автоматического расширения. Однако память там выделяется только на сам массив, а элементы (по умолчанию) не инициализируются, но в этом плане возможна корректировка.
Цитата Сообщение от warchief Посмотреть сообщение
Во-вторых чтение данных с жесткого диска само по себе медленно из-за медленной работы ЖД, поэтому чтение файла, сколь не оптизируй этот процесс будет медленно. Но и память не резиновая так что без подзагрузок никак, надо балансировать.
Вот об этом я и говорю, пока мне не понятно "сколько вешать граммов". Конечно, все зависит от конретной ситуации и абстрактно говорить, сколько 3D моделей загружать - нельзя. Более того, нужно предоставить возможность выбора в указанных рамках непосредственному пользователю, чтобы расчет шел от его машины, а не от N-нной. Но если брать в расчет те же плоскости на которых строится вся модель мира, то вопрос открытый. Что выгоднее, постоянно менять размеры, текстуру, положение фигуры или использовать шаблоны для стен, земли, воды, неба и т.п.
Цитата Сообщение от Chelioss Посмотреть сообщение
Так я вас и спрашиваю на сколько производительность снизится, если вообще снизится.
Меня, кстати, этот вопрос тоже весьма интересует. Ибо пока нет твердой уверенности в направлении. На примерах представленных в SDK происходит какой-то фильм ужасов, но ориентироваться на них трудно, ибо производительность - это последнее о чем думали авторы, создавая их. Сейчас еще постараюсь найти информацию об этом, т.к. есть необходимость создавать продукцию, которая будет использоваться на видеокартах не поддерживающих DX11 (речь не об играх, а оборудования будут менять в последнюю очередь).

Добавлено через 3 минуты
Цитата Сообщение от warchief Посмотреть сообщение
не могу точно ответить, так как нельзя проверить, но по идее проседать не должно, ибо драйвер DX написан так что все команды DX9-DX10-DX11 пересылаются в DXGI а вот он уже работает с видеокартой, то есть по идее так как интерфейс общий, то без разницы что юзаем, все равно будет одинаково обработано.
Немного не успел Ссылки посмотрю, но я все-таки сомневаюсь, что производительность отличаться не будет, вопрос на сколько.

Добавлено через 26 минут
A feature level does not imply performance, only functionality. Performance is dependent on hardware implementation.
Исходя из этого, DX конвектирует все в единый формат для 9, 10, 11... что-то я запутался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2012, 21:08

Первые шаги
Нужно ли знать java для разработки приложений под Android и в каком объеме? Предполагаю, что да. Если я прав, то какую версию java...

Первые шаги
Купил себе Робопика , да только не хочет он выполнять программу из брошурки , выглядит она так: #ymstude&lt;motor.h&gt; void main() ...

Первые шаги...
Скачал себе Borland C++ builder В учебники первая задача создать файл first.cpp Записать в нем следующее: #include...

Первые шаги.
Здравствуйте. Извините, может, за тупые вопросы. Но с языком С впервые сталкиваюсь. Использую среду прогр-я C-Free Standard 4.0. Открыл...

Первые шаги
Привет всем! Я хочу попробовать себя в контекстной рекламе. Тематику выбрали - кулинария. Я по бегуну посмотрел и ахнул, цена бида 2-3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru