Разработчики получили доступ к новым функциям DirectX 12

Разработчики получили доступ к новым функциям DirectX 12

Microsoft добавила некоторые новые функции в DirectX 12, которые разработчики могут использовать в своих играх. Среди них новый подуровень эффектов трассировки лучей DirectX и шейдеров.

Microsoft предлагает разработчикам сначала освоить создание трассировки лучей на основе существующих API уровня 1.0, а затем перейти на уровень 1.1, так они смогут лучше оценить преимущества нового уровня. Компания также продолжает работать с поставщиками графических процессоров и разработчиками игр, чтобы лучше раскрывать возможности аппаратного обеспечения.

Если коротко, то DХR уровня 1.1 включает в себя добавление дополнительных шейдеров к существующему объекту трассировки лучей, адаптивный алгоритм, определяющий количество лучей, и менее сложную и энергозатратную альтернативу полной системе трассировки лучей.

Также появятся новые шейдеры, являющиеся следующим поколением обработки геометрии.

Видео от Shazoo

Подписаться

26 Комментариев

  • Imlerith
    Комментарий скрыт. Показать

    Только вот DX12 не выстрелил, говорят очень сложно и дорого на нем игры разрабатывать

    -1
    • wabbajack
      Комментарий скрыт. Показать

      @Imlerith, Кто вам такое говорит?

      9
    • Imlerith
      Комментарий скрыт. Показать

      @wabbajack, не помню, кто-то из разработчиков говорил, что делать одно и то же намного сложнее в DX12, чем в DX11, соответственно и дороже

      ну и по количеству игр с DX12 это понятно

      2
    • MAX207
      Комментарий скрыт. Показать

      @Imlerith,

      не помню, кто-то из разработчиков говорил, что делать одно и то же намного сложнее в DX12, чем в DX11, соответственно и дороже

      Вот это да, оказывается API который умеет паралелить задачи, использую максимально потенциал многопоточных систем требует больше ресурсов для разработки чем старый API который это не умеет ??
      А они говорили что это даёт больше ресурсов ПК для улучшений игр ?? Более сложные геометрии, пространства, трассировка та же самая ?

      ну и по количеству игр с DX12 это понятно

      Почти все релизы имеют поддержку DX12 в которых на новых картах RTX буститься fps.

      7
    • Комментарий скрыт. Показать

      @Imlerith, сложнее лишь потому, что разрабам надо изучать новое, читать кучу документации.
      А дороже, потому что надо оплачивать переобучение работников под новые технологии. С dx11 в своё время то же самое было. Причина исключительно в разрабах и издателях игр. Одним лень учиться, другим жалко денег. Поэтому большинство ограничивается внедрением 1/20 от всего функционала Dx12, однако продолжает везде писать что их игры используют dx12, а журналисты и тестеры игр пишут всякую чушь про то, что dx12 якобы не даёт никаких преимуществ и прироста, тогда как на самом деле 90% разрабов даже половины возможностей dx12 никогда не использовали.

      12
    • Imlerith
      Комментарий скрыт. Показать

      @MAX207, вас в гугле забанили чтоле, в первой попавшейся статье о DX12 об этом и говорят

      Программирование под DX12 сложнее, и все преимущества нового API раскрываются полностью, только когда движок изначально разрабатывается, а не адаптируется под него.

      https://www.ixbt.com/live/3dv/dx11-i-dx12-a-est-li-mezhdu-nimi-raznica_2.html

      ну вот ещё

      Асинхронные вычисления команда IO использовала в технологиях сглаживания SSAA и модели затенения SSAO, а также в вычислениях, необходимых для работы системы освещения. И если верить Мейеру, работа оптимизации для нового API оказалась «слишком сложной». Другими словами, до тех пор, программисты перестали считать DirectX 12 волшебной палочкой, которая позволит расширить возможности в видеоиграх за счет высвободившейся мощности.

      http://gamebomb.ru/gbnews/15695

      5
    • Itachi
      Комментарий скрыт. Показать

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

      1
    • MAX207
      Комментарий скрыт. Показать

      @Imlerith, Все движки уже давно имеют поддержку полную. Яркий пример BF5 в DX12 выдаёт больше фпс чем на DX11.
      Ой только асинхронные вычисления реализованы силами CUDA (программно-аппаратная архитектура параллельных вычислений). А SSAA отношения к API DX12 не имеют.
      Слишком сложной по этому все крупные релизы были с поддержкой DX12 ?)
      @Itachi, ДА кто тебе это сказал ?? Все игры сейчас выходят с нативной поддержкой DX12, на которой она работает лучше...если железо современное которое и имеет поддержку уровня 12_1 и выше.

      Например карты уровня RTX и RX 5700 показывают лучшую производительность в DX12, потому что это нативный API стал для игры.
      Мелкие и средние проекты не могут себе позволить и выпускают на DX11.

      1
    • chaotic_neutral
      Комментарий скрыт. Показать

      @MAX207, яркий пример в виде одной игры(одного движка) - так себе пример.
      По теме: что на DX12, что на Vulkan все разрабы не убежали по одно простой причине: оба АПИ дают более низкий доступ к железу, но отсюда и больше ответственности ложиться на разработчиков и их ровнорукость. Затраты, на то, что бы добиться хотя бы того же результата на DX12, что сделано на DX11 не всегда сопоставимы с выгодой. Т. е. можно добиться огромного прироста в некоторых ситуациях, но так же можно потратить много времени и ресурсов на то, чего можно было бы достигнуть с DX11 гораздо быстрее.

      То, что на картах АМД DX12 идёт лучше, так это не новость. RTX карты просто на уровне архитектуры наконец совместимы, предыдущие поколения получали даже убавку в FPS(пруфы гуглим на ютубе).
      На заметку: Mankind Divided я так и не смог пройти на DX12 используя Vega 56, хоть и с большим фпс - регулярные вылеты и фризы.

      Так же не АПИ параллелит задачи сам, а разработчики могут его использовать, что бы параллелить процессы. Будут ли они это делать и на сколько качественно - вопрос открытый.

      Вкратце: DX12/Vulkan дают разработчикам гораздо больше контроля над ресурсами железа. Отсюда и потенциальная/возможная оптимизация и прирост производительности. Но, как известно, с большой силой приходит большая ответственность. (c)

      На эту тему CEO Stardock Corporation(Ashes of the Singularity) написал подробный пост затрагивая тонкости работы трёх апи, который расставляет все точки над Ё:
      https://www.gamasutra.com/blogs/BradWardell/20191007/351772/Living_with_Vulkan_and_DirectX_12.php

      Вот один из примеров статьи, почему все не бегут массово на DX12/Vulkan:
      What about memory management? In DirectX 11 if I overallocate memory for someone's 2GB GPU, it just throws the rest into main memory for a slow-down. On Vulkan and DX12, if you're not careful, your app crashes.(c)

      0
    • MAX207
      Комментарий скрыт. Показать

      @chaotic_neutral, Ну так в том и речь что поддержка на уровне движков у крупных фирм давно есть, ресурсы на это есть, прогресс есть, делать на DX12 более крупные проекты удобнее.
      Я и уточнил что это не для средних студий.

      1
    • BountyHunter
      Комментарий скрыт. Показать

      @Imlerith, ты же сам написал:
      "только когда движок изначально разрабатывается, а не адаптируется под него."

      Вот и все препоны к внедрению дх12.
      Никто просто не хочет тратить бабки на переписывания движков под очевидно что лучший (и из-за этого и сложнее ибо работает уже с несколькими потоками для рендеринга на видеокарте) АПИ.
      Скорее всего, под некст-ген уже будут появляться движки под дх12.
      Все тоже самое было и с переходом с 9 на 11.

      0
  • Human2016
    Комментарий скрыт. Показать

    Господи - какая радость!!! Всё ждем повышение фпс в 2 раза или во сколько там они говорили.

    1
  • Alex-Petr
    Комментарий скрыт. Показать

    Еще бы научились наконец оптимизацию на dx 12 делать лучше чем на dx 11 наконец... А то вечно на нем фпс хуже чем на dx11, хотя должно быть давно наоборот по идее.

    0
    • Romualdych
      Комментарий скрыт. Показать

      @Alex-Petr, FPS там выше. А вот стабильность хуже.

      2
    • Alex-Petr
      Комментарий скрыт. Показать

      @Romualdych, Где выше то, в другой вселенной?) В 20 играх уже пробовал - хуже всегда, да и по тестам посмотри что происходит - там прекрасно видно.

      0
    • OptiMMXIX
      Комментарий скрыт. Показать

      @Alex-Petr,

      Какая у вас видеокарта? У меня в данный момент RTX 2080, в DX12 всё работает лучше, до этого была GTX 1080Ti, вот на ней да, в DX12, тупило, вылетало, зависало и т.д. Но я всё равно пожалел, что с доплатой поменял карту. RTX пока что почти нигде нет, а где он есть, он какой-то странный, и без него могли обойтись. А прибавка в DX12 3-7 кадров, когда у тебя и так под под сотню, того не стоят.

      0
    • Alex-Petr
      Комментарий скрыт. Показать

      @OptiMMXIX, Gtx 1060, а rtx так и так не брал бы никаких, разве что 3060 когда она вышла бы чтобы обновиться. Так что мне не важно совершенно что там на rtx c dx 12, Под Паскали надо хоть немного оптимизировать а не только на последние видеокарты ориентироваться.

      0
    • OptiMMXIX
      Комментарий скрыт. Показать

      @Alex-Petr,

      С этим я не спорю. Но технологии на месте не стоят. Не выгодно постоянно вперёд на своём горбу тянуть старые железки. Пытаться оптимизировать под них системы, игры, софт, постоянно допиливать драйвера. Жаль конечно, но это факт. Я лично считаю, что технологии должны не более пары-тройки лет держаться, потом обновляться, соответственно при разумных ценах и возможности обмена, трейдина и прочих плюшек.

      0
  • Комментарий скрыт. Показать

    А вот интересно, может ли рейтрейсинг сделать честную пинхол-проекцию (смоделировать камеру-обскуру)? Для тех, кто не в курсе: это когда свет, проходя через маленькое отверстие, проецирует на противоположной стене перевёрнутое изображение того, что находится за отверстием. Как фотоаппарат или глаз, только с отверстием вместо линзы.

    2
    • chaotic_neutral
      Комментарий скрыт. Показать

      @dimauxus, but for what?

      0
    • AlexB
      Комментарий скрыт. Показать

      @dimauxus, да, в майнкрафте с рейтрейсингом на PTGI шейдере уже такое делали - светящееся сердце из блоков через отверстие в 1 блок в соседнюю комнату давало размытое перевернутое сердце.

      1
    • Комментарий скрыт. Показать

      @chaotic_neutral, для проверки того, насколько честно ведёт себя физика света в симуляции. В данном случае, по идее, ничего сложного для рейтрейсинга нет, поскольку это простейшие законы распространения света - тут даже преломления не требуется. Вот мне и стало любопытно. Сам же я это проверить не могу.
      Вот тут AlexB сообщает о реализации этого эффекта в Майнкрафте. Нюанс в том, что это была проекция прямого света. Это как раз очень даже просто. А меня же интересует проекция, скажем, залитой солнцем лужайки - и это была бы проекция как раз "непрямого освещения", вторичных, отражённых лучей. Для полноты картины, хоть это и не обязательно, спроецированная картинка должна освещать ещё и ту самую тёмную комнату, в которую она проецируется. И это будет всего лишь второе переотражение.Вот тогда я в рейтрейсинг реально уверую.

      1
  • Комментарий скрыт. Показать

    да топите это быстрее, слишком медлено развивается и тупит на зелёных видеокартах, вулкан куда перспективнее и разработка движется быстрее.

    0
  • Serj777
    Комментарий скрыт. Показать

    Кажется скрин,с так и не вышедшего Fable legends)

    0
  • Vik
    Комментарий скрыт. Показать

    Там новые шейдеры для мешей сделали, обновили механизм работы видеопамяти (теперь грузится то что нужно сейчас, а не всё). Вот это действительно важно. А то лучистые лучи кругом опять. :)

    1
Войдите на сайт чтобы оставлять комментарии.