Хотя растеризация продолжит играть важнейшую роль и в ближайшие годы, с появлением гибридного рендеринга, доля алгоритмов трассировки лучей в таких движках будет постепенно расти исходя из роста вычислительных возможностей будущих GPU.
При традиционном методе рендеринга (закрашивание) для расчета глобального освещения, отрисовки теней и других эффектов приходится использовать хитрые хаки, основанные на той же растеризации. В результате, за все эти годы GPU стали весьма сложными, научились ускорять обработку геометрии в вершинных шейдерах, качественно отрисовывать пиксели при помощи пиксельных шейдеров и даже применять универсальные вычислительные шейдеры для расчета физики, постэффектов и множества других вычислений. Но основа работы GPU все время оставалась той же.
У трассировки же лучей основная идея совершенно другая, при помощи трассировки имитируется распространение лучей света по 3D-сцене. Трассировка лучей может выполняться в двух направлениях: от источников света или от каждого пикселя в обратном направлении, далее обычно определяется несколько отражений от объектов сцены в направлении камеры или источника света, соответственно. Просчет лучей для каждого пикселя сцены менее требователен вычислительно, а проецирование лучей от источников света дает более высокое качество рендеринга. Для достижения фотореалистичности еще нужно учитывать характеристики материалов в виде количества отражаемого и преломляемого ими света, и для окончательного расчета цвета пикселя нужно провести еще и лучи отражения и лучи преломления. Их можно мысленно вообразить как лучи, отраженные от поверхности шара и преломленные ей. Такой улучшенный алгоритм трассировки лучей был изобретен уже несколько десятков лет назад, и эти дополнения стали большим шагом по увеличению реалистичности синтетической картинки. К сегодняшнему дню этот метод обрел множество модификаций, но в их основе всегда лежит нахождение пересечения лучей света с объектами сцены.
AMD продолжая продвигать открытые стандарты представила Radeon Raus 2/0 для API Vulkan от Khronos Group (Vulkan - это графический и вычислительный API нового поколения, который обеспечивает высокопроизводительный кросс-платформенный доступ к современным графическим процессорам, используемым в самых разных устройствах от ПК и консолей до мобильных телефонов и встроенных платформ).
Radeon Rays (ранее носившее название AMD FireRays) представляет собой высокоэффективное, высокопроизводительное, работающее на основе метода трассировки лучей программное обеспечение, ускоренное за счет использования ресурсов графического процессора. Прослеживая траектории световых лучей, проходящих через сцену фильма или игры, технология Radeon Rays имитирует эффект отражения и преломления лучей света в среде и их взаимодействия с виртуальными объектами, создавая потрясающе фотореалистичные 3D-изображения.
Технология Radeon Rays ориентирована на разработчиков контента, стремящихся использовать возможности графических, центральных и гибридных процессоров AMD в применении метода трассировки лучей. Асинхронные вычислительные ядра графических процессоров AMD, созданных на базе архитектуры GCN (Graphics Core Next), позволяют технологии Radeon Rays выводить данные для отображения в окне просмотра трассировки лучей, в то время как приложение одновременно управляет графическим ядром.
Radeon Rays 2.0 - высокоэффективная и высокопроизводительная библиотека для гетерогенных расчётов трассировки лучей почти на любой платформе (поддерживаются Windows, macOS и Linux). Библиотека Radeon Rays 2.0 разрабатывалась с прицелом на создание фотореалистичных игр: по аналогии с DXR разработчики могут использовать её для различных эффектов затенения и освещения, полагающихся на трассировку лучей в реальном времени. Библиотека Radeon Rays 2.0 совместима с открытым стандартом высокопараллельных расчётов общего назначения OpenCL 1.2 и использует такое преимущество Vulkan и ускорителей AMD с архитектурой GCN, как продвинутая поддержка асинхронных вычислений. AMD уже предлагала Radeon Rays 2.0 бесплатно всем заинтересованным разработчикам - последняя версия SDK может быть загружена с официальной страницы на GitHub. (Rays - лучи, FireRays - огненые лучи).
Graphics Core Next (GCN) - это кодовое имя как для серии микроархитектур, так и для набора команд. GCN был разработан AMD для своих графических процессоров в качестве преемника микроархитектуры/набора TeraScale. Первый продукт с GCN был запущен ещев 2011 году. GCN представляет собой микроархитектуру RISC SIMD (или, скорее, SIMT), контрастирующую с архитектурой VLIW SIMD TeraScale. GCN требует значительно больше транзисторов, чем TeraScale, но предлагает преимущества для вычислений GPGPU. Это упрощает компилятор и также должно привести к лучшему использованию.
GCN изготавливался на графических чипах 28 нм и 14 нм, доступных на некоторых моделях видеокарт Radeon HD 7000, HD 8000, 200, 300, 400 и 500 для AMD Radeon. GCN также используется в графической части AMD Accelerated Processing Units (APU), например, в PlayStation 4 и Xbox One APU. «Graphics Core Next» относится ко всему графическому процессору, следовательно, возможно, что одна и та же версия GCA (3D-движок) объединена с различными версиями DIF. AMD относится к DIF (интерфейс дисплея) как DCE (контроллер контроллера дисплея). Например, GPU Polaris имеют тот же GCA/GFX, что и их предшественник. Строго говоря, GCN первоначально относился исключительно к GCA.
Набор инструкций GCN принадлежит AMD, а также набору инструкций X86-64. Набор инструкций GCN был разработан специально для графических процессоров (и GPGPU). Семейство микроархитектур, реализующих идентично называемый набор инструкций «Graphics Core Next», увидело пять итераций. Различия в наборе команд довольно минимальны и не слишком отличаются друг от друга. Исключением является архитектура GCN пятого поколения, которая сильно модифицировала потоковые процессоры для повышения производительности и поддерживает одновременную обработку двух более низких чисел точности вместо одного большего числа точности.
AMD начала выпускать детали своего следующего поколения архитектуры GCN, называемого «вычислительным модулем следующего поколения» (в январе 2017 года). Новый дизайн увеличил количество инструкций за такт, более высокие тактовые частоты, есть поддержка HBM2, большего адресного пространства памяти. Чипсеты с дискретной графикой также включают «HBCC (контроллер пропускной способности с высокой пропускной способностью)», но не интегрированы в APU. Кроме того, новые чипы начали включать улучшения в единицах Rasterisation и Render. Процессоры потоков сильно модифицированы из предыдущих поколений для поддержки упакованной математической технологии Rapid Pack Math для 8-битных, 16-разрядных и 32-разрядных номеров.
Особенности архитектуры Graphics Core Next (GCN) делают её чрезвычайно эффективной, когда речь заходит о виртуальной реальности. На это есть основания: степень комфорта и реализма в виртуальной реальности напрямую зависит от задержек - чем ниже латентность, тем реалистичнее воспринимает игрок окружающий его виртуальный мир. В составе современных графических процессоров AMD Radeon имеются специальные блоки асинхронных вычислений (asynchronous compute engines, ACEs), которые и позволяют добиться нужного эффекта.
Архитектура Graphics Core Next (GCN) была создана, чтобы обеспечить высочайшее качество игрового процесса с учетом требований современных ПК, вывести на новый уровень дизайн и создание мультимедийного контента, а также выйти за рамки возможного в вычислительной производительности. Графические процессоры Radeon были специально созданы на базе архитектуры GCN, которая отличается высокой частотой пикселизации, обеспечивая высокое качество изображения. Она поддерживает самые современные и передовые игровые технологии, включая технологию Radeon FreeSync, рендеринг на основе технологии расширенного динамического диапазона (HDR), программные интерфейсы DirectX 12, Vulkan и др. Производительность графического процессора Radeon в DirectX 12 и Vulkan не имела себе равных. Эти программные интерфейсы позволяли разработчикам использовать весь потенциал невероятной мощности, которую может обеспечить графический процессор, что означает более высокую производительность и лучшее качество графики в играх.