Перейти к содержимому

Приветствуем вас на Форуме PHILka.RU
Вы вошли на форум как ГОСТЬ. Убедительно просим вас зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.
войти - или зарегистрироваться!
Фотография

DirectX 11 программно?, возможно или нет.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1
dezmand07

dezmand07

    Elit Member

  • Участники
  • 1 149 сообщений
прежде всего хотелось бы сказать что я понимаю под DirectX:
состав DX9
DirectX 9 - Aero (визуализация)
DirectX 9 - Batch (те самые треугольники)
DirectX 9 - Alpha Blending (альфа-наложение - палитра цветов)
DirectX 9 - Texture Load (если кратко то загрузка текстур в память видеокарты)
DirectX 9 - ALU (скалярные мультипроцессоры (входящие в потоковые мультипроцессоры), предназначенные для расчетов с плавающей точкой)

состав DX10 = DX9+
DirectX 10 - Geometry (один из типов шейдоров для построения объектно-ориентированной модели)
DirectX 10 - Constant Buffer (буфер для создания констант и оптимизации шейдоров)

состав DX11 = DX10+
DirectX 11 - Tessellation (тесселяция - способ в компьютерной графике, с помощью которого возможно увеличить количество полигонов в полигональной трёхмерной модели, используя кривые Безье. При этом каждый полигон модели разбивается на заданное число связанных полигонов, которые выстраиваются в соответствии с общим направлением поверхности модели. Таким путём можно сначала создать простую модель, а затем быстро и просто повысить её детализацию.)

вообще для каждой структуры, описанной мною выше, есть целая наука и поэтому я был краток и не стал расписывать что да как.
_____________________________________________________________________

вот задался я таким вопросом. Если рассматривать DX11 как аппаратную часть видео чипа (чем собственно она и является), то конечно нет. Производители видеокарт уделяют очень большое внимание именно блокировки аппаратной части, чтобы никто не смог туда залезть, поэтому в сети так мало какой-либо информации о исходных данных той самой аппаратной начинки. Но если рассматривать DX11 как какой-то "механизм" передачи данных между теми или иными блоками обработки видео, то теоретически такая программа могла бы существовать. Ведь посмотрите, видеокарты с DX11 это по сути видеокарты DX10 с добавленной технологией увеличения детализации. Нам известно как работать с шейдерами всех типов: Vertex, Pixel, Hull, Domain, Geometry и Compute (на форуме по программированию компьютерных игр _http://gamedev.ru/ ребята неплохо с ними работают). И я не зря привёл понятие тесселяции из Википедии, в нём очень хорошо понятен смысл именно программной реализации высокой детализации. Так может быть это не так уж и далеко от истины.

вот моё мнение. Прошу особо ногами не бить и не писать в теме что-то типа такого "...этого не может быть, потому что не может быть..."

PS: тема создана в первую очередь для тех кто знаком с языками Си, DirectX SDK и OpenCL для более тонкого подхода к вопросу, а не простого флуда. Хоть я и не профи в программировании, но понимаю многое, надеюсь пословица "Одна голова хорошо, а две лучше " сработает :rolleyes:

Сообщение отредактировал dezmand07: 31 Январь 2011 - 19:32


#2
dezmand07

dezmand07

    Elit Member

  • Участники
  • 1 149 сообщений
это цитата из одной интересной статьи

Классическое определение представляет DirectX как совокупность интерфейсов прикладного программирования - Application Programming Interface, API, для удобного программирования приложений под операционные системы Microsoft Windows, главным образом, для программирования игр.
Говоря проще, разнообразные библиотеки–API из комплекта DirectX, представляют собой готовые наборы функций для облегчения труда программистов. Теперь им не нужно каждый раз создавать ряд типичных процессов для работы со звуком, видео и т.п., для этого в комплекте DirectX имеется ряд стандартных "кубиков" и инструментов для создания мультимедийных приложений и игрушек под Windows.
Между прочим, до появления DirectX так всё и было: разработчики новых программ и игр каждый раз были вынуждены учитывать в своём коде неисчислимое количество разнообразных видеокарт, звуковых плат, устройств ввода. Ситуация облегчилась после того как в 1995 году появилась первая версия Microsoft DirectX, представляющего собой набор мультимедийных API для работы с 2D и 3D графикой, аудио, устройствами ввода, и программисты получили возможность использовать все возможности новых "железяк" без непосредственного программирования под каждую.
На самом деле историю появления DirectX стоит начинать с 1992 года, когда, согласно историческим справкам, компания RenderMorphics начала разработку 3D графического API под названием Reality Lab для медицинского оборудования и приложений CAD. Компания RenderMorphics была куплена Microsoft в феврале 1995 года, уже после появления двух успешных версий API, в результате чего первая версия 3D графического API - Direct3D, была представлена в пакетах DirectX 2.0 и DirectX 3.0 под Windows 95.
До сегодняшнего дня главным эволюционным скачком в развитии интерфейсов DirectX было добавление программных пиксельных шейдеров в восьмой версии. Никакие последующие инновации даже близко не могут сравниться с тем, что произошло сейчас.
DirectX 10 — это принципиально новая разработка, которая раньше была известна под кодовым названием Windows Graphics Foundation. Впервые за десятилетнюю историю «игровые» программные интерфейсы были полностью переделаны с нуля. Можно практически не сомневаться, что из-за DX 10 все геймеры перейдут на Windows Vista, поскольку новые API не будут работать ни в какой операционной системе, кроме Vista.
Среди самых значительных преимуществ, которые несет в себе DX 10 — совершенно новые трехмерные эффекты, на порядок лучшая детализация 3D-объектов и движущихся объектов, снижение нагрузки на центральный процессор. Дополнительно к этому, гораздо реалистичнее под DX 10 начали смотреться небо, облака, дым, шерсть, лес, отражения на воде и других поверхностях.
С точки зрения разработчика главным нововведением в DX 10 является новая модель драйверов (Windows Display Driver Model), не менявшаяся со времен Windows NT4. Каждый драйвер должен состоять из двух частей: User Mode Driver (UMD) и Kernel Mode Driver (KMD).

а это не без известная реализация DX10 на ХР

19-летний Коди Броушез (Cody Brocious), организатор проекта Alky, выпустил демонстрацию своих библиотек, позволяющих запускать игры для DirectX 10 на Windows XP, а также на Windows Vista в том случае, если в компьютере не установлена видеокарта с поддержкой DirectX 10.
Эти библиотеки являются своеобразным компилятором команд DirectX 10 в команды DirectX 9. Демонстрация позволяет запускать примеры из DirectX 10 SDK на Windows XP и видеокартах прошлого поколения.
Кроме этого, они увеличивают аппаратную совместимость даже в самой Windows Vista за счет компиляции геометрических шейдеров непосредственно в машинные коды там, где это невозможно сделать аппаратным путем.

прочитав всё это можно сделать следующий вывод: последним directx без поддержки dx11 стал дистрибутив с библиотекой Mar2009_d3dx10_41.cab, поддержка dx11 появилась в дистрибутиве с библиотекой Aug2009_d3dx11_42.cab. Видеокарты с поддержкой включительно до directx 10 не имеют аппаратных шейдоров, которые работали бы с библиотеками с маркировкой d3dx11. По этому на ум сразу приходит мысль - а почему бы не задействовать эти библиотеки какой-нить программой, как в свою очередь "...компилятором команд DirectX 10 в команды DirectX 9..."
Она должна уметь следующее: программа (не без участия видеокарты) должна обрабатывать участок компьютерной графики с n-ым количеством полигонов до той степени пока количество треугольников не образует объём, как это происходит в видеокартах с dx11.
приведу скрины из ролика на youTube (_http://www.youtube.com/watch?v=wtNHmj7vznI&feature=related), что именно должна делать эта программа
dx10 - Изображение
dx11 - Изображение

#3
Selev

Selev

    Elit Member

  • Участники
  • 1 501 сообщений
Я много прочитал на эту тему. Когда пытался понять преимущества ОС висты и семёрки над ХР. Вывод который я сделал из всего прочитанного лично для себя такой - директ начиная с десятого это приставочная технология, на Sony-PS3 директ, уровня 9.5.
Но он не увеличивает красивости на столько, что бы это было явным, на разных форумах видел сравнения скринов. Разницу видно не всегда и только в динамике, когда например взрыв, или в игре идёт снег. Мягко говоря вся эти цитаты по поводу переходов геймеров, туда не знаю куда , больше смахивает на очередной пиар. Помню когда интел выпустила первый 4-хядерник, по сети мелькали репортажи как это проц на ITсалоне охраняли 4 автоматчика в масках спецподразделений.... Зааачем?
Тож самое с директом, он в основном снижает нагрузку на процессор за счёт ресурсов видеокарты. И действительно сильно облегчает труды программистов. Но нам то что от этого. Тем более програмёры к сожалению пошли по совершенно неожиданному пути, они пишут кусок в игре под десятым директом, остальное делают на девятом. Но всю игру лочат под 10-ый, что не даёт ничего кроме тормозов. Далеко ходить не надо . Разлоченный кризис на девятом директе летает, как Фар-Край на седьмом джифорсе.

#4
dezmand07

dezmand07

    Elit Member

  • Участники
  • 1 149 сообщений
Selev я понимаю что вы хотите сказать - разницу между dx9 и dx11 непосредственно в играх увидеть сложно, а если таковая и есть, то на качестве картинки это не скажется (она никак не станет кинематографической). Другое дело увидеть разницу в том же Unigine Heaven Benchmark - из одной сплошной 2D текстуры каменной лестницы она вдруг превращается в многополигональную текстуру в трёх осях. И поэтому смысла в такой разработки нет, и этим никто не занимается.
мне интересен другой вопрос - реально ли повторить трюк с "dx10 на ХР" на видеокартах не имеющих поддержки dx11? Хотя то, что сделал этот парень и то, что хочу получить я разные вещи. Его целью было сделать программную поддержку dx10 на ОС, моя цель - сделать программную поддержку dx11 на видеокарте. В его работе есть один интересный факт "...позволяющих запускать игры для DirectX 10 на Windows XP, а также на Windows Vista в том случае, если в компьютере не установлена видеокарта с поддержкой DirectX 10..." Мне этот трюк опробовать не удастся, т.к. не имею в распоряжение видеокарту класса dx9, но было бы интересно узнать так ли это или нет.

#5
Selev

Selev

    Elit Member

  • Участники
  • 1 501 сообщений
Это сделать не реально. Программно сделать можно, хотя и для этого нужно быть видимо не самым плохим программистом, а лучше иметь команду. При этом геймеры получат возможможность играть на ХР в игры под директ 10 и 11, им для это всего лишь понадобится проц чуть мощнее рекомендуемых требований. Но вот реализовать всё остальное на ХР не получится. Потому что на висте и семёрке реализована поддержка многопроцессорности. На семерке например можно объединить 10 компов в сеть, и решать на всех одну задачу одновременно. На ХР такой финт не выйдет. Вот в этом по моему и кроется вся закавыка.

#6
dezmand07

dezmand07

    Elit Member

  • Участники
  • 1 149 сообщений
я ХР вообще не рассматриваю, причём тут эта ОС. Зачем изобретать колесо если dx11 уже реализован в windows 7, остаётся лишь программно задействовать его в обработке видеокарты, в которой нет этой аппаратной части. И мне всё же кажется что это вполне реально.

Сообщение отредактировал dezmand07: 30 Январь 2011 - 19:24


#7
Selev

Selev

    Elit Member

  • Участники
  • 1 501 сообщений
А ...вон о чём речь. Типа улучшение кпд использования аппаратных ресурсов у видеокарт. Но это наверное на уровне драйверов решаемо.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Вы вошли на форум как ГОСТЬ. Просим вас войти или зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.