Тесселяция[]
В D3D11 добавляется 3 дополнительных стадии конвейера визуализации, целью введения которых является эффективная тесселяция поверхностей.
Конвейер D3D11 включает три новых стадии между стадиями вершинного и геометрического шейдера. Две из них являются программируемыми (стадии оболочечного (hull shader) и domain шейдеров) и одна — конфигурируемая (стадия тесселяции).
Представленный конвейер оперирует сетками, заданными поверхностными патчами. Основными примитивами D3D11 являются треугольные и квадратные патчи. Форма каждого патча определяется числом контрольных точек. В вершинном шейдере эти точки трансформируются, скинятся и (или) морфятся последовательно.
Оболочечный шейдер вызывается для каждого патча. В качестве входных данных используются контрольные точки патча из вершинного шейдера. Оболочечный шейдер имеет два основных применения. Первое (опционально) — это конвертирование контрольных точек из одного представления в другое. Например, он позволяет реализовать метод, представленный в статье Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches. После этого шейдера контрольные точки пересылаются напрямую дальше, минуя тесселятор. Другое применение — вычисление подходящего параметра тесселяции, который затем передаётся на стадию тесселяции. Такой подход позволяет делать адаптивную тесселяцию, которая может быть использована в случае видозависимых уровней детализации (LOD). Параметр тесселяции определяется для каждой грани патча и варьируются в диапазоне от 2 до 64. Это означает, что каждая грань треугольного (или квадратного) патча может быть разбита на 2 (или максимум 64) грани.
Стадия тесселятора представлена фиксированным набором функции (хорошо конфигурируема), которые используют параметр тесселяции для подразбиения патча на несколько треугольников или квадов. Тесселятор не имеет доступа к контрольным точкам — все решения о разбиении принимаются на основе конфигурационных и тесселяционных параметров, передаваемых из оболочечного шейдера. Каждая вершина после стадии тесселяции передаётся в domain шейдер, причём передаются только координаты параметризации (parametrization coordinates).
Domain shader оперирует parametrization coordinates патча для каждой вершины раздельно, хотя имеется возможность получить доступ к трансформированным контрольным точкам для всего патча. Domain шейдер отправляет всю информацию о вершине (позицию, текстурные координаты, и т. п.) в геометрический шейдер (или на стадию клипирования, если геометрический шейдер не задан). По сути дела, он оценивает представление поверхности в каждой точке. На данной стадии может быть применён метод карт смещения (displacement mapping).
Скачайте DirectX для Windows 10 на русском бесплатно
Версия | Платформа | Язык | Размер | Формат | Загрузка |
---|---|---|---|---|---|
* скачайте бесплатно DirectX для Windows, файл проверен! | |||||
Directx 12 |
Windows 10 |
Отсутствует | 0,3MB | .exe |
Скачать |
Directx 11 |
Windows | Отсутствует | 45,1MB | .zip |
Скачать |
Directx 10 |
Windows | Отсутствует | 25,8MB | .zip |
Скачать |
Directx 9 |
Windows | Отсутствует | 100,3MB | .exe |
Скачать |
Обзор DirectX
DirectX (Директ икс) – это бесплатный пакет библиотек, необходимый системе для эффективной работы с мультимедиа – играми, звуком, анимациями. Нередко разработчики игр включают DirectX в состав установочного пакета, чтобы обеспечить зрелищность графики и объемный звук. Именно это программное обеспечение обычно отвечает за отражения, детализацию текстур, реалистичность теней, преломление лучей света и многое другое.
Скриншоты
Похожие программы
Adobe Flash Player — программа для воспроизведения flash-контента
Sony Vegas Pro — создание многодорожечных видео и аудио записей
Xvid Video Codec — библиотека для сжатия видео в стандарте MPEG-4
KMPlayer — мощный проигрыватель файлов звуковых и видеоформатов
Aimp — музыкальный проигрыватель с хорошим эквалайзером
SopCast — просмотр видео и аудиотрансляций в Интернете
iTools
Audacity — звуковой редактор, поддерживающий работу с несколькими дорожками
Reason
Camtasia Studio — программа для захвата видеоизображения с монитора компьютера
Windows Media Player — проигрыватель видео и аудио файлов от Microsoft
VLC Media Player — бесплатный кроссплатформенный медиапроигрыватель
DirectX — пакет библиотек, необходимый системе для работы с мультимедиа
Adobe Premiere Pro — программное обеспечение для нелинейного видеомонтажа
Adobe Audition
VKMusic — поиск и скачивание музыки из ВКонтакте, RuTube и YouTube
Windows Live Movie Maker
Fraps
K-Lite Codec Pack — набор кодеков для воспроизведения видео и аудиофайлов
Winamp — проигрыватель мультимедиа c поддержкой потокового контента
Realtek HD — пакет драйверов, предназначенный для HD Audio кодеков
Unity Web Player
MorphVOX Pro
VirtualDub
Freemake Video Converter
DivX — набор кодеков и утилит для воспроизведения аудио и видео
Adobe After Effects
Bandicam — программа для снятия скриншотов и записи видео с экрана
Ableton Live Suite
Steinberg Cubase
Pinnacle Studio — программа для обработки видео файлов
Movavi Video Editor — утилита для монтажа видеофайлов
iMovie — бесплатный видеоредактор от компании Apple
Sound Forge
Ace Stream Media
Virtual DJ — программа, имитирующая пульт диджея для микширования музыки
Action!
PowerDVD — проигрыватель мультимедийных файлов
GOM Player — медиапроигрыватель для Windows
Format Factory
CyberLink PowerDirector — видеоредактор с возможностью захвата видео с внешних источников
Finale
JetAudio — плеер с хорошим эквалайзером
Corel VideoStudio — профессиональный видеоредактор от компании Corel
Free Studio — пакет объединяющий более 40 мультимедийных программ
Avidemux — для создания новых и обработки готовых видео
Edius — программное обеспечение для нелинейного монтажа видео
ManyCam
Kodi — программа для воспроизведения мультимедиа
Daum PotPlayer — плеер с поддержкой всех мультимедийных форматов
ФотоШОУ PRO — программа для создания из фотографий видеороликов и слайд-шоу
Guitar Pro
MIRO
Shortcut
Light Alloy — бесплатный медиаплеер
GeForce Experience — автоматического поиск драйверов видеокарт компании Nvidia
HyperCam
Magix Music Maker — утилита для записи и обработки музыкальных дорожек
VideoPad Video Editor — частично бесплатный видеоредактор
Proshow Producer — условно-бесплатная программа для создания слайд-шоу
Free Video Editor — бесплатный видео редактор для нелинейного видео монтажа
Wondershare Filmora — условно-бесплатная программа для работы с видеофайлами
Zune
Аудио | Видео программы
Графические программы
Microsoft Office
Игры
Интернет программы
Диски и Файлы
Вычислительные шейдеры (Compute Shader)
Любому, кто уже знаком с использования GPU для выполнения задач общего назначения (GPGPU или General Purpose GPU), будет интересно услышать о новом вычислительном шейдере, который дает аппаратному обеспечению от различных производителей поддержку для программирования GPU на выполнение задач общего назначения. Многое уже было сделано ранее в направлении использования поистине огромных вычислительных мощностей GPU для решения крупных вычислительных задач на узкоспециализированных рынках. Вместе с вычислительным шейдером из DirectX 11 компания Microsoft делает возможным использование этих алгоритмов обычными клиентами на широком спектре аппаратных средств. Давайте посмотрим, какие новые возможности открывает перед разработчиками игр и других приложений использование GPU в задачах, отличных от рендеринга.
Главным образом это коммуникация данных между потоками и богатый выбор примитивов для случайного доступа и потоковых операций ввода/вывода. Эти функции позволяют создавать более простые и более быстрые реализации уже используемых методик, таких как создание изображений и постобработка, а также открывают новые методы, которые могут работать на аппаратных средствах Direct3D класса 11.
Улучшенная многопоточность в DirectX 11
Все прежние версии DirectX (а именно его Direct3D-части) были “заточены” прежде всего на работу с одноядерным центральным процессором и потому, можно сказать, имели лишь зачатки поддержки многопоточности. Но, поскольку в наше время даже у домохозяек зачастую стоят компьютеры с 2-4 ядрами и более (что уж говорить о геймерах!), в DirectX 11 были внесены изменения, позволяющие разработчикам получить больший контроль над тем, как взаимодействуют GPU и CPU. DirectX 11 становится возможным асинхронный доступ к устройствам, прежде всего благодаря двум новым ключевым особенностям объекта Direct3D 11 Device:
- Во-первых, это значительно усовершенствованный процесс синхронизации между Direct3D Device и драйвером, который позволяет делать асинхронные вызовы DirectX API. Direct3D 11 предоставляет разработчикам больше свободы при реализации параллелизма, разрешая при этом делать вызовы из нескольких независимых друг от друга потоков.
- Во-вторых, Direct3D Device 11 теперь поддерживает несколько так называемых контекстов визуализации. 1) главный прямой контекст (Immediate Context), который руководит передачей команд на исполнение в GPU и 2) дополнительные отложенные контексты (Deferred Contexts), которые разработчик может создавать в любых количествах, по мере необходимости. Работа с каждым таким контекстом, может выполняться в отдельном потоке/ядре. Это позволяет командам GPU накапливаться в рамках контекста, параллельно основным процессам визуализации, а после это поступать на выполнение в GPU, когда основной контекст уже выполнил задачу визаулизации и ждёт новых команд.
Поскольку этот функционал DirectX 11 реализован на программном, а не аппаратном уровне, то вы можете использовать эти возможности даже если в системе установленны видео-карты Direct3D с поддержкой только DirectX 10 и/или 10.1.
Как проверить совместимость видеокарты?
Рассмотрим все способы определения характеристик графического устройства.
Ознакомиться с характеристиками
Один из простых вариантов – найти информацию о видеокарте по ее названию. Для этого вам нужно знать точную модель вашего оборудования. Если есть возможность, то найдите упаковку или инструкцию. Но этот метод подойдет только для новых устройств. Еще проще узнать модель системными средствами Windows:
- Откройте «Диспетчер устройств».
- Раскройте список видеоадаптеров.
- Запомните или перепишите название вашего устройства.
Теперь остается воспользоваться официальным сайтом, поисковиком Google или Яндекс. Найдите полный список характеристик и посмотрите, какая версия DirectX поддерживается.
Указание в характеристиках DirectX 12 подразумевает поддержку всех предыдущих версий стандарта.
Сведения о системе
Штатными средствами Windows можно также определить характеристики железа. Через программу «Выполнить» введите команду dxdiag. Утилита соберет сведения о системе. После этого ознакомьтесь с информацией в первой вкладке. Здесь вы найдете версию DX, которая установлена на вашем компьютере.
Теперь переключитесь во вкладку «Монитор» и обратите внимание на блок «Драйверы». В строке, отмеченной на картинке, указывается поддерживаемая версия DirectX
Сторонний софт
Если вы проверили характеристики, и оказалось, что видеокарта и Windows поддерживают DirectX 11, следует обратить внимание на драйвер. Работа с данным стандартом может быть отключена из-за устаревшего ПО
Вам следует удалить текущий драйвер и скачать новый с официального сайта производителя.
Уровни функций Direct3D
В Direct3D появился новый механизм определения аппаратной поддержки — уровни функций. Благодаря уровням функций становится проще узнать о возможностях графического адаптера, поскольку можно запросить четко определенный набор функций GPU. Например, уровень «9 _ 1» применяет функциональные возможности графических адаптеров Direct3D 9, включая Shader Model 2. x. Поскольку 9 _ 1 является самым низким уровнем функций, можно рассчитывать, что все устройства поддерживают шейдер вершин и шейдер пикселей, которые были теми же этапами, что и программируемая модель шейдера Direct3D 9.
Ваша игра будет использовать D3D11CreateDevice для создания устройства и контекста устройства Direct3D. Вызывая эту функцию, вы предоставляете список уровней функций, которые поддерживает ваша игра. На основе этого списка функция вернет самый высокий поддерживаемый уровень функций. Например, если в игре можно использовать текстуры BC4/BC5 (компонент оборудования DirectX 10), в список поддерживаемых функций необходимо включить по меньшей мере 9 _ 1 и 10 _ 0. Если игра выполняется на устройствах с DirectX 9 и BC4/BC5, то D3D11CreateDevice вернет 9 _ 1. Затем ваша игра может переключиться на другой формат текстур (и более мелкие текстуры).
Если вы решили расширить игру Direct3D 9, добавив поддержку более высоких уровней функций Direct3D, лучше сначала закончить перенос существующего графического кода Direct3D 9. После переноса игры в Direct3D 11 будет проще добавить дополнительные пути отрисовки с более сложной графикой.
Подробное объяснение поддержки уровней функций см. в разделе Уровни функций Direct3D. Полный перечень функций Direct3D 11 см. в разделах Функции Direct3D 11 и Функции Direct3D 11.1.
Что делать и как исправить ошибку DX11 feature level 10.0 is required
В первую очередь, проверим совместимость видеокарты с 10 уровнем функций. Для этого, нажмите Win+R и введите dxdiag, чтобы открыть средство диагностики DirecX. Во вкладке «Система» сможем узнать, какая версия DirectX установлена
Перейдите во вкладку «Экран» и обратите внимание на графу «Уровни функций». Если у вас нет 10.0, то вытекает несколько сценариев устранения проблемы:
- Видеокарта работает с устаревшими драйверами.
- Если вы используете Windows 7\XP, то нужно установить дополнительное обновление платформы KB2670838.
- Обновить DirectX.
- Видеокарта не поддерживает 10.0 уровень. В этом случае, нужна более современная.
1. Запуск с внешней видеокарты
Некоторые компьютеры и ноутбуки имеют две графики GPU: Встроенную-процессорную, и внешнею видеокарту. Если запускать современные игры на старой встроенной графики, которая не имеет feature level 10.0, то ошибка вероятна из-за неё. Нужно просто отключить работу интегрированной графики, чтобы внешняя смогла работать корректно и определялась системой.
Нажмите Win+X и выберите «Диспетчер устройств» и разверните графу «Видеоадаптеры». Если у вас их два, то отключите встроенную графику нажав по ней правой кнопкой мыши. Перезагрузите ПК или ноутбук, чтобы Windows применила изменения и переподключилась на внешнюю карту.
2. Восстановление DirecX
- Веб-установщик исполняемых библиотек DirectX для конечного пользователя.
- Затем загрузите cредe выполнения DirectX для конечных пользователей (июнь 2010 г.).
3. Драйвера Видеокарты
Если драйвера для видеокарты не обновлялись, то их следует обновить. Я рекомендую не просто обновить через диспетчер устройств, а полностью удалить текущие из системы при помощи DDU. Обратитесь ниже к специальному руководству и не забудьте скачать последнюю версию драйвера с официального сайта производителя как AMD, Nvidia или Intel.
Как полностью удалить драйвера видеокарты Nvidia, AMD, Intel
4. Обновление платформы Windows 7
Если вы используете Windows 7, то ошибка DX11 feature level 10.0 is required to run the engine может появляться из-за того, что не установлен патч KB2670838 для Windows 7. Перейдите ниже на сайт Microsfot и загрузите обновление платформы. Если вы не знаете какая у вас разрядность Windows 7, то скачивайте обе и устанавливайте.
Обновление платформы для Windows 7
Смотрите еще:
- Как узнать, какая Видеокарта стоит на ПК или Ноутбуке с Windows 10
- Как скачать, установить и обновить DirectX на ПК
- Включить и Скачать DirectPlay для Windows 10
- Системная ошибка DirectX — Смотрите dxerror.log и directx.log
- Как удалить старые ненужные драйвера в Windows
Загрузка комментариев
Установка DirectX
Данной теме уже была посвящена одна из статей сайта IT Техник. Суть сводиться к тому, чтобы инсталлировать недостающие компоненты. Можно сначала узнать, какая версия ПО интегрирована на ПК.
Для этого:
нажмите Win + R на клавиатуре и введите команду:
спустя несколько секунд отобразиться информационное окно с нужными данными:
Если не помогло – значит переходим к следующей главе руководства.
Полезный контент:
- Что делать, если mscorsvw.exe грузит процессор?
- Как сделать резервную копию iPhone
- Game account is already linked to another user FaceIt — что делать?
- Исправляем ошибку playstv_launcher.exe
- Как устранить ошибку Steam api64 dll в GTA 5 и других играх
Можно ли включить поддержку DirectX 11?
Стоит начать с того, что поддержка DirectX реализована на аппаратном уровне. Производители NVIDIA и AMD на стадии создания видеокарты внедряют возможность работы с тем или иным ПО. В зависимости от выхода новых поколений графических адаптеров реализуется и поддержка DirectX. Если говорить конкретно об 11 версии, то большинство видеокарт, выпущенных после 2011 года, поддерживают данный стандарт. Производительность с DX11 в играх на бюджетных адаптерах того времени – это другой вопрос. Но запустить проекты, которые работают только с данным ПО, у вас получится.
Однако ряд компьютерных игр изначально работает только с DirectX 11, например, Crysis 3, графика в котором до сих пор на достойном уровне. Запустить данный шутер получится только после обновления оборудования.
Но не торопитесь «хоронить» свою видеокарту и отправляться в магазин за новой. Сначала нужно на 100% убедиться в том, что в устройстве не реализована поддержка данного набора API. Об этом мы поговорим ниже.
Другие возможности[]
Поддержка динамической линковки шейдеров (по аналогии Cg). Это позволяет разделить написание и компиляцию шейдеров света и материалов. Позднее связывание производится при выставлении шейдера. Этот подход является решением проблемы комбинаторного взрыва в случае различных источников света и материалов (он и некоторые другие проблемы обсуждаются в секции 7.9 книги Real-Time Rendering, 3rd Edition)
Добавлены два новых формата сжатых текстур. BC6 поддерживает широкий динамический диапазон RGB текстуры, используя при этом 1 байт на каждый тексель (взамен 6 байт в случае 6-битных RGB вещественных текстуры). BC7 поддерживает узкий динамический диапазон RGB или RGBA текстур. Он также использует 1 байт на тексель (как DXT5/BC3), но предоставляет значительно лучшее качество по сравнению с форматами текстур D3D10. Оба новых формата используют несколько типов блоков — утилита для сжатия выбирает соответствующий тип блока на основе его содержания.
Форматы блоков сжатия D3D9 и D3D10 основаны на идее, что каждый блок 4 × 4 из текселей содержит все свои значения в виде одной линии, и биты каждого текселя кодируют позицию в этой линии. Например, в DXT1/BC1 строка в пространстве RGB представляет две конечные точки RGB, и каждый тексель использует два бита, чтобы указать какой цвет используется из четырёх точек вдоль линии.
Новые форматы D3D11 поддерживают типы блоков с одной, двумя и даже тремя (в случае BC7) цветовыми линиями. Существует компромисс между числом линий и числом точек вдоль такой линии, поскольку каждый блок занимает одинаковый объём памяти. В принципе, блок 4 × 4 с двумя цветовыми линиями требует дополнительно 16 бит на каждый блок для задания какая линия каждого текселя была связана с ним (в случае трёх цветовых линий потребуется ещё больше бит). Для снижения требований по памяти поддерживаются только небольшой набор возможных моделей цветовых линий. Для каждого блока утилита упаковки выбирает лучший вариант из этого подмножества.
Direct3D 11 имеет более жёсткую спецификацию текстур. Результаты декомпрессии должны быть точными и субтексельная/субмип фильтрация должна обеспечивать точность не менее 8 бит.
Direct3D 11 позволяет использовать текстуры, имеющие максимальный размер в диапазоне от 8K-16K текселей. Отметим, что 16K х 16K DXT1/BC1 текстура занимает 128MB — не так много игр будет использовать такие большие текстуры, но это может быть подходяще для методик наподобие мегатекстуры. В общем, теперь в D3D11 ресурс может иметь размер до 2 Гб.
Аппаратное обеспечение может дополнительно поддерживать (опционально) вещественные числа с плавающей точкой двойной точности.
На Gamefest 2008 также был представлен слайд с множеством других новшеств, детали которых не были пояснены:
- Адресуемый потоковый вывод (Addressable Stream Out)
- Непрямая отрисовка (Draw Indirect)
- Улучшенный Gather4 (Improved Gather4)
- Instance programming model для геометрических шейдеров (Geometry shader instance programming model)
- Min-LOD texture clamps
- Conservative oDepth
- Pull-model attribute eval
- Read-only depth or stencil views
Как обновить Директ Икс для Windows 10 через установщик
Даже если в dxdiag отображается последняя версия DirectX, то это не значит, что его библиотеки обновлены. Это не всегда происходит в ходе стандартного обновления Windows, поэтому можно пойти другим путём:
Имейте ввиду, что загрузка с официального источника бесплатна и безопасна. А вот используя сторонние ресурсы, можно наткнуться на вирусы.
Двойным кликом запустите файл, который мы скачали, и разрешите ему вносить изменения на компьютер.
Обязательно изучите лицензионное соглашение, примите его условия и нажмите «Далее».
Вам ненавязчиво предложат установить панель Bing. Чтобы избежать этой участи, снимите галочку и клацните «Далее».
Дождитесь, пока пройдёт инициализация. Когда появится информация о размере загружаемого файла, следует нажать «Далее».
Теперь можно наблюдать за состоянием загрузки и установки компонентов.
В конце нажмите «Готово».
Несмотря на произведенное обновление, в dxdiag может по-прежнему отображаться старая версия DirectX. Такое часто бывает из-за того, что видеокарта на Вашем ПК просто не поддерживает технологии 12-й версии или имеет устаревшие драйвера. Тут на помощь придет либо обновление драйверов, либо апгрейд железа.
Выскакивает ошибка «не найден файл DLL»
Среди составляющих DirectX есть DLL-файлы, которые могут по тем или иным причинам отсутствовать на ПК. Проявляется это в виде сообщения об ошибки при запуске игр, где сказано, что такого файла нет. Ошибку можно исправить вышеописанным способом или просто загрузить данный файл отдельно.
Зайдите на сайт ru.dll-files.com.
В поисковой строке напишите название файла из ошибки и клацните на кнопку поиска.
В результатах появится ссылка с названием файла. Перейдите по ней.
Пролистайте следующую страницу и загрузите файл DLL, подходящий под разрядность Вашей системы.
Осталось распаковать и поместить этот файл в корень нужной папки:
- для 32-битной Windows 10 – папка «C:\Windows\System32»;
- для 64-битной Windows 10 – папка «C:\Windows\SysWOW64».
Альтернативный вариант – это использование программы Dll-Files Fixer 3. Она проделает эти действия автоматически. От Вас потребуется только:
Перейти во вкладку «Установить DLL-файлы».
Ввести название недостающего файла.
Нажать кнопку «Искать DLL-файлы».
Осталось нажать на появившуюся ссылку с названием файла.
Всё загрузится и сохранится в нужной папке.
Заключение
Обновление компонентов DirectX до последней версии должна обеспечить стандартная служба обновления Windows. Можно воспользоваться официальным установщиком, который сам определяет, что потянет Ваша видеокарта, и скачивает всё недостающее. Однако для начала не будет лишним обновить драйвера видеокарты.
Многопоточная визуализация
D3D10 позволяет передавать команды визуализации только из одного потока (на данный момент существует специальный многопоточный режим, но из-за низкой производительности Майкрософт не рекомендует использовать его). Как известно, передача команд визуализации через Direct3D предполагает использование дополнительных вычислительных ресурсов CPU. Учитывая тенденцию увеличения числа ядер центрального процессора, вводится поддержка более продвинутой многопоточности, чтобы распределять эту работу между несколькими потоками, тем самым производя её более эффективно.
Direct3D 11 даёт возможность создавать дисплейные списки из нескольких потоков и выполнять их из главного потока визуализации. Кроме того, устройство, которое создаёт ресурсы, было вынесено из контекста, который передаёт команды визуализации. Это позволяет создавать ресурсы асинхронно. Отложенные контексты (Deferred Contexts) используются для создания дисплейных списков и прямой контекст (Immediate Context) для передачи команд визуализации на GPU, включая обработку дисплейных списков, созданных в отложенных контекстах.
В отличие от других возможностей, в Direct3D 11 многопоточная визуализация реализуется программно через драйвер. Соответствующие драйверы D3D10 (возможно, даже D3D9) позволяют выполнять многопоточную визуализацию гораздо эффективней, чем ранее. Определённый уровень многопоточности будет доступен даже без новых драйверов, однако пока неясно, какие ограничения будут в этом случае.
Замена DirectPlay на сетевой код
Microsoft DirectPlay устарел. Если ваша игра использует сетевые службы, вам нужно предоставить сетевой код, соответствующий требованиям сертификации UWP. Используйте следующие API:
- Win32 и COM для приложений UWP apps (сеть) (Windows)
- Пространство имен Windows.Networking (Windows)
- Пространство имен Windows.Networking.Sockets (Windows)
- Пространство имен Windows.Networking.Connectivity (Windows)
- Пространство имен Windows.ApplicationModel.Background (Windows)
Следующие статьи помогут вам добавить сетевые возможности и объявить поддержку сети в манифесте пакета приложения.
- Подключение с помощью сокетов (приложения UWP на C#, VB, C++ и XAML) (Windows)
- Подключение с помощью WebSockets (приложения UWP на C#, VB, C++ и XAML) (Windows)
- Подключение к веб-службам (приложения UWP на C#, VB, C++ и XAML) (Windows)
- Основы работы с сетями
Обратите внимание, что все приложения UWP (включая игры) используют специфические типы фоновых задач для поддержки подключения, когда приложение приостановлено. Если вашей игре необходимо поддерживать подключенное состояние во время приостановки, см
раздел Основы работы в сети.
Работа над ошибками. DirectX 11
Выхода следующей версии API пришлось ждать почти два года. DirectX 11 был анонсирован еще на выставке Gamefest в 2008 году, но официальный релиз состоялся осенью 2009 года вместе с операционной системой Windows 7. Microsoft усвоила урок десятой версии API, поэтому 11-я итерация работала как с новой Windows 7, так и с Windows Vista.
Что касается новых возможностей, то в DirectX 11 в очередной раз была обновлена шейдерная модель, теперь до версии 5.0. Кроме этого, была улучшена производительность API в системах с многоядерными центральными процессорами. Все предыдущие версии разрабатывались с прицелом на одноядерные CPU. В конце концов, это стало своего рода бутылочным горлышком в производительности DirectX. Также в конвейер был добавлен вычислительный шейдер (Compute Shader) для поддержки программирования под задачи общего назначения. К примеру, всем известное быстрое преобразование Фурье работает через DirectX 11 намного быстрее, чем с помощью ранее применявшихся методов
Разработчики Microsoft также уделили внимание сжатию текстур, поэтому алгоритмы были значительно улучшены. Кстати, максимальный размер текстур также был увеличен с 4К до 16К
Но самым большим нововведением DirectX 11 стала поддержка тесселяции и переработанный конвейер визуализации, который был дополнен тремя новыми стадиями: hull-шейдером, domain-шейдером и непосредственно стадией тесселяции.
Тесселяция
В D3D11 добавляется 3 дополнительных стадии конвейера визуализации, целью введения которых является эффективная тесселяция поверхностей.
Конвейер D3D11 включает три новых стадии между стадиями вершинного и геометрического шейдера. Две из них являются программируемыми (стадии оболочечного (hull shader) и domain шейдеров) и одна — конфигурируемая (стадия тесселяции).
Представленный конвейер оперирует сетками, заданными поверхностными патчами. Основными примитивами D3D11 являются треугольные и квадратные патчи. Форма каждого патча определяется числом контрольных точек. В вершинном шейдере эти точки трансформируются, скинятся и (или) морфятся последовательно.
Стадия тесселятора представлена фиксированным набором функции (хорошо конфигурируема), которые используют параметр тесселяции для подразбиения патча на несколько треугольников или квадов. Тесселятор не имеет доступа к контрольным точкам — все решения о разбиении принимаются на основе конфигурационных и тесселяционных параметров, передаваемых из оболочечного шейдера. Каждая вершина после стадии тесселяции передаётся в domain шейдер, причём передаются только координаты параметризации (parametrization coordinates).
Domain shader оперирует parametrization coordinates патча для каждой вершины раздельно, хотя имеется возможность получить доступ к трансформированным контрольным точкам для всего патча. Domain шейдер отправляет всю информацию о вершине (позицию, текстурные координаты, и т. п.) в геометрический шейдер (или на стадию клипирования, если геометрический шейдер не задан). По сути дела, он оценивает представление поверхности в каждой точке. На данной стадии может быть применён метод карт смещения (displacement mapping).
Типичные ошибки пользователей
Причиной, почему не поддерживается Директ 11 ревизии, иногда становится сам пользователь, а вернее его компьютерная безграмотность. Direct X 11 версии работает только на операционных системах Windows не младше «Семерки».
Гипотетическая ситуация: вы собрали навороченный комп со всеми «прибамбасами», но по привычке установили проверенную временем «Хрюшу» или, прости Господи, вашу любимую сборку ZverCD.
В этом случае при попытке запуска современной игры, использующей новые библиотеки, всплывает ошибка, что нужен видеоадаптер с поддержкой 11-го поколения Директа. Как решить такую проблему? Элементарно — установить «Семерку», «Восьмерку» или «Десятку».
Еще одна проблема, почему не поддерживается нужная версия библиотек — некорректно работающие или криво установленные драйвера графического ускорителя. Рекомендую скачивать необходимое ПО только с официального сайта разработчика — Nvidia или AMD.
И последний вариант, когда ошибку можно устранить: вы давно не обновляли ни драйвера на видеокарту, ни сам Директ. Если игра использует какие-то свежие DLL, а это случается очень часто, приложение попросту не запустится. В большинстве случаев помогает обновление ПО.
Рекомендуемая плата AMD: Sapphire Radeon R9 380X Nitro 4GB GDDR5
Sapphire Radeon R9 380X Nitro 4GB GDDR5: высокая скорость за небольшие деньги
Снижения цен на карты AMD придется еще немного подождать
Однако тем, кто уже сейчас хочет сэкономить немного денег, имеет смысл обратить внимание на Sapphire Radeon R9 380X Nitro, которая стоит в среднем 19 тыс. руб
Уровень производительности карты располагается где-то между GeForce GTX 970 и GeForce GTX 960. GPU имеет тактовую частоту 1040 МГц. Объем видеопамяти составляет 4 Гбайт. В наших игровых бенчмарках R9 380X достигает по меньшей мере около 60 кадров/с во всех тестах 1080p. В новейших играх, конечно, для быстрой игры вам придется «подкрутить» графические настройки немного вниз.
Стоимость: примерно 19 тыс. руб.
Вычислительные шейдеры и неупорядоченная память[]
Direct3D 11 вводит новый тип шейдера — вычислительный шейдер (Compute Shader). Вычислительный шейдер вызывается как регулярный массив потоков. Потоки делятся на группы. Каждая группа имеет 32 Кб памяти, разделяемой между потоками группы. Таким образом потоки в группе могут обмениваться результатами, улучшая свою производительность. Также потоки могут производить чтения и записи с произвольным доступом к графическим ресурсам: текстурам, массивам вершин, рендер таргетам. Эти доступы к памяти неупорядочены, хотя синхронизация различных инструкций осуществляется, когда это действительно необходимо.
Пиксельные (фрагментные) шейдеры могут также читать по произвольному адресу, что позволяет записывать структуры данных, которые могут быть затем использованы в вычислительном шейдере, или наоборот. Стоит отметить, что пиксельные шейдеры всегда имели возможность произвольного доступа на чтение через текстурные лукапы.
Вычислительные шейдеры могут также производить операции такие, как summed-area tables, быстрое Фурье-преобразование значительно быстрее, чем ранее применяемые методы на графическом процессоре. На данный момент Microsoft исследует библиотеки, обеспечивающие подобные расчёты. Microsoft считает, что алгоритмы, такие как A-буфер визуализация и трассировка лучей могут также быть осуществлены эффективно, но на данный момент нет реальных показателей, свидетельствующих об их эффективности.
Вызов вычислительного шейдера заменяет все стадии конвейера визуализации. Тем не менее, можно смешивать вычислительные шейдеры и традиционный рендер путём использования их результатов. Например, обработка изображения после визуализации вычислительным шейдером (можно загружать дополнительные структуры данных).