Basic: Metal render pipeline _ Бондар Константин Software Engineer О чем будем говорить_ • Что такое Metal • Основы визуализации (rendering) • MetalKit render pipeline 2 Metal • Metal - низкоуровневый фреймворк для выполнения задач на видеокарте. Разработан в 2014 и обновлен до второй версии в 2017 • Современная и оптимизированная замена OpenGL • Ближайшие по архитектуре аналоги для других платформ это • • • Текст Плоские картинки 3d модели и их анимации Вершины и треугольники Rendering pipeline_ Юху, а теперь в Метале • MTLDevice • MTLFeatureSet • MTKView • MTKViewDelegate MTLCommandQueue • MetalApp - client • GPU - server • CPU - Частые, но последовательные команды • GPU - Не так часто, но много параллельных команд MTLCommandBuffer • CommandBuffer - создать и использовать можно часто и «дешево» • CommandQueue - создать и использовать сложно и «дорого» MTLCommandEncoder • MTLRenderCommandEncoder - что-то, куда-то рендерить • MTLComputeCommandEncoder - сделать параллельную операцию • MTLBlitCommandEncoder - работа с ресурсами. Копирования и прочие операции с буферами данных и текстурами. Установка состояний Рисование Отправка в буфер комманд Установка буферов Рисование примитивов (треугольники) MTLRenderPipelineState Установка глубины цвета для финальной текстуры Установка шейдеров Установка описание структуры данных Установка глубины цвета для вспомогательных текстур Установка шейдеров Шейдеры_ Тип данных который принимает вершинный шейдер В возвращаемом типе мы должны отдать как минимум позицию Превращение модели в прекцию Вычисление освещенности пикселя по Фонгу зная нормаль к источнику освещения Описание данных в буфере Где 0 это позиция, а 1 - цвет Что дальше? • Изучать модели освещения • Изучать подходы к построению кадра • И пробывать пробывать и еще раз пробывать). Полезные ссылки • Да, да, оф. документация. • Курс от Рея, за видео ко мне в личку • Курс по математической части комп. графики • Ну и гуглите любое непонятное слово до полного понимания. Email: [email protected] Всем спасибо. Кто хочет может остаться глянуть демку.