Сохраненный режим
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2014 г. ) |
Сохраняемый режим в компьютерной графике является основным шаблоном проектирования API в графических библиотеках. [1] в котором
- графическая библиотека , а не клиент , сохраняет сцену (полную объектную модель ) примитивов рендеринга , подлежащую рендерингу , и
- клиентские не вызывают непосредственно вызовы графической библиотеки рендеринг, а используют обширное косвенное обращение к ресурсам, управляемым и, таким образом, сохраняемым библиотекой графической . [2] Это не исключает использования двойной буферизации . [3]
Немедленный режим является альтернативным подходом. Исторически сложилось так, что сохраняемый режим был доминирующим стилем в графического интерфейса ; библиотеках [4] однако оба могут сосуществовать в одной библиотеке и на практике не обязательно являются исключающими. [5]
Обзор
[ редактировать ]В режиме сохранения вызовы клиента не вызывают непосредственно рендеринг, а вместо этого обновляют абстрактную внутреннюю модель (обычно список объектов), которая поддерживается в пространстве данных библиотеки. Это позволяет библиотеке оптимизировать процесс фактического рендеринга наряду с обработкой связанных объектов. [2]
Некоторые методы оптимизации рендеринга включают в себя:
- управление двойной буферизацией [6] [7]
- обработка скрытых поверхностей путем выбраковки задней грани [8] / отсечение окклюзии ( Z-буферизация ) [9]
- передача только данных, которые изменились от одного кадра к другому, из приложения в библиотеку
Примером сосуществования с немедленным режимом в одной библиотеке является OpenGL . [ сомнительно – обсудить ] [ не удалось пройти проверку ] [10] OpenGL имеет функции немедленного режима, которые могут использовать ранее определенные объекты на стороне сервера ( текстуры , буферы вершин и буферы индексов , шейдеры и т. д.) без повторной отправки неизмененных данных. [11] [12]
Примеры систем рендеринга с сохранением режима включают Windows Presentation Foundation , [2] SceneKit на macOS, [13] и ФИГС .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Джин, Жефан (май 2006 г.). «Параллельная визуализация графики в сохраненном режиме для сред совместного проектирования» . 2006 10-я Международная конференция по компьютерной совместной работе в дизайне . стр. 1–6. дои : 10.1109/CSCWD.2006.253142 . ISBN 1-4244-0164-Х . S2CID 5825966 .
- ^ Перейти обратно: а б с Куинн Радич (30 мая 2018 г.). «Сохраненный режим и немедленный режим» . Win32-приложения . Майкрософт . Проверено 21 декабря 2019 г.
- ^ Стивихимс. «Запросы предикции — приложения Win32» . Learn.microsoft.com . Проверено 9 декабря 2022 г.
- ^ Фельдмайер, Алекс (12 октября 2013 г.). «Программирование графического интерфейса» . Технический отчет UWP по информатике и программной инженерии . Проверено 22 декабря 2019 г.
Сохраненный режим уже много лет является стандартом. Почти каждый графический интерфейс находится в сохраненном режиме.
- ^ Куинн Радич. «Сохраненный режим и немедленный режим — приложения Win32» . docs.microsoft.com . Проверено 21 августа 2020 г.
- ^ «Двойная буферизация OpenGL» . Проверено 7 мая 2020 г.
- ^ «Двойная буферизация DirectX» . Проверено 7 мая 2020 г.
- ^ «Отсечение лиц OpenGL» . Проверено 7 мая 2020 г.
- ^ «Отсечение окклюзии DirectX» . Проверено 7 мая 2020 г.
- ^ «ОпенГЛ» . Проверено 4 мая 2020 г.
- ^ «Поддержка драйверов OpenGL» . Разработчик NVIDIA . 19 августа 2013 г. Проверено 21 августа 2020 г.
- ^ «OpenGL — отраслевой фонд высокопроизводительной графики» . Группа «Хронос» . 19 июля 2011 г. Проверено 21 августа 2020 г.
- ^ Вейхер, Марсель (24 февраля 2017 г.). Настройка производительности iOS и macOS: Cocoa, Cocoa Touch, Objective-C и Swift . Аддисон-Уэсли Профессионал. ISBN 9780133085532 . Проверено 22 декабря 2019 г.
С другой стороны, SceneKit и SpriteKit — это API с сохраненным режимом.