Uploaded by Konstantin Bondar

MetalBasic

advertisement
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: bondar.k.dev@gmail.com
Всем спасибо.
Кто хочет может остаться глянуть демку.
Download