Две точки зрения на графику
Несмотря на то что у библиотек Quartz и OpenGL немало общего, у них имеются и существенные отличия.
Библиотека Quartz состоит из функций, типов данных и объектов, предоставляющих возможность рисовать непосредственно в представлении или изображении, находящемся в оперативной памяти. В Quartz представление или изображение трактуется как рисуемое на виртуальном холсте, следуя так называемой модели художника (painters model). Это оригинальное название означает, что команды рисования применяются подобно накладываемой на холст краске.
Если художник сначала раскрасит весь холст красной краской, а затем нижнюю его половину — синей краской, то холст получится наполовину красным и наполовину синим (если синяя краска непрозрачная) или фиолетовым (если синяя краска полупрозрачная). По такому же принципу действует и виртуальный холст в библиотеке Quartz. Если заполнить все представление сначала красным цветом, а затем нижнюю его половину — синим цветом, то представление получится наполовину красным и наполовину синим, в зависимости от того, было ли второе рисующее действие непрозрачным или полупрозрачным по своему характеру. Каждое рисующее действие накладывается на виртуальный холст поверх любых предыдущих рисующих действий.
С другой стороны, библиотека OpenGL ES реализована как конечный автомат (state machine). Это понятие усваивается немного труднее, поскольку оно не сводится к простой метафоре, подобно рисованию на виртуальном холсте. Вместо действий, оказывающих непосредственное воздействие на представление, окно или изображение, в библиотеке OpenGL ES поддерживается виртуальный трехмерный мир. По мере добавления объектов в этот мир библиотека OpenGL отслеживает состояние всех присутствующих в нем объектов.
Вместо виртуальных холстов библиотека OpenGL ES предоставляет вам виртуальное окно в ее трехмерный мир. Вы вводите объекты в трехмерный мир и определяете местоположение вашего виртуального окна относительно этого мира. Затем средства OpenGL ES рисуют то, что вы видите в это окно, в зависимости от его настройки и расположения различных объектов относительно друг друга.
- Дата: 9-01-2015, 17:04