Mac OS X 包含好几种技术用来支持对2D/3D内容的渲染以及动画,下面开始介绍它们各自的特点。
1. Quartz
Quartz 是Mac OS X图形与窗口环境(Windowing Environ-ment)的核心,它提供对2D图形的渲染,更可以对一个复杂的模型进行实时的渲染,复合以及图形的反齿锯。
Quartz整合了一套客户端API(Quartz 2D)和一个窗口服务器(Quartz Compositor). 客户端API提供管理图像上下文(Graphics Context)和绘制简单图形、图片、文本和其他内容的命令。而窗口服务器管理显示器、设备驱动环境(Device Driver Environment)和提供必要的服务给客户端,其中包括基础窗口管理,事件派发和光标行为管理。
Quartz 2D客户端API被包含在一个“包罗框架(Umbrella Framework)”中——applicationservices.framework,把这个框架添加到工程中您就可以使用Quartz了。这个包罗框架包含有Core Graphics框架(CoreGraphics.framework),它定义了Quartz 2D的接口、数据类型以及常量。
Quartz Services API提供了对窗口服务器(window serv-er)的一些底层特性的直接调用能力,您能通过这些API得到当前已连接的显示硬件(connected display harDWare)的信息,锁定某个显示器来经行专门的用途,或只是调节显示器属性,比如分辨率、像素色深或显示器刷新率。Quartz Ser-vices API也提供一些远程 *** 作Mac OS X的支持,比如,您能通过它来移动另一台Mac上的光标位置、经行点击 *** 作等等。
更多信息关于Quartz 2D API,请看Quartz 2D Pro-gramming GuIDe。想更多了解Quartz Services API,请看Quartz display Services Programming top-ics(http://developer.apple.com/documentation/GraphicsImaging/Conceptual/QuartzDisplayServicesConceptual/Introduction/Introduction.html)。
Quartz的呈象架构基于pdf,这种存储“介质”非常精确并且能在各种设备上还原(打印机、传真机、显示器)。在打印之前,您能够把文档保存成pdf文件以便预览打印、传真效果。
Quartz 2D 特性
• 高品质的渲染
• 支持与分辨率无关的UI(Resolution independent UI)
• 为所有的图像与文字提供抗齿锯
• 显示透明窗口内容
• 内部数据压缩
• 为所有的打印机提供一套一致的功能集合
• 自动将内容生成为pdf格式的数据,支持打印、传真以及保存成pdf文档
• 通过colorSync管理颜色
图2 是Quartz Compositor 与其他渲染技术的关系,QuickTime和OpenGL几乎不依赖Quartz Compositor,因为它们各自有自己的一套窗口调用。
2. Cocoa Drawing
Cocoa 应用程序环境提供了许多对Quartz特性的面向对象的封装。Cocoa支持绘画简单的图形,如线、矩形、贝塞尔曲线(BezIEr Paths)等。由于Cocoa Drawing是基于Quartz的建立的,所有Cocoa产生的绘画调用都被与其他Quartz 2D内容整合到了一起。如果您愿意,您甚至可以把Quartz的渲染调用(以及从其他的系统图形技术产生的渲染调用)混合到Cocoa的代码中来。
更多关于Cocoa Drawing的信息,请看Cocoa Drawing GuIDe(http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Introduction/chapter_1_section_1.html).
3. OpenGL
Open是一套专门为开发可移植的3D图形程序的工业标准。Mac OS X中的OpenGL框架(OpenGL.framework)提供对OpenGL库的高度优化的实现,即保证保质量的图像又提供高性能表现。 OpenGL提供了一套全面而强大的图像处理函数,包括材质映射(Texture MapPing)、被遮盖平面的消去(HIDden Surface Removal)、Alpha通道混合(透明效果)、抗齿锯(anti-aliasing)、像素 *** 作(Pixel Operations)、视图和模型的切换(VIEwing and Modeling transformations)、大气环境效果(雾、烟)以及其他的特效。 从Mac OS X 10.5开始,OpenGL支持利用多线程来处理图像数据,同时也支持像素缓存对象(Pixel Buffer Objects)、64位寻址、Shader Programming API中的改进。 想了解更多关于如何在Mac OS X中使用OpenGL的信息,请看OpenGL Programming GuIDe for Mac OS X(http://developer.apple.com/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/chapter_1_section_1.html).
4. Core Animation
Core Animation(在Mac OS X 10.5中被引入) 是一套Objective-C类的集合,用来实现复杂的2D渲染和动画。使用Core Animation,您可以创建小到一个简单窗口、大到像Front-Row风格的用户界面,并且得到非凡的动画性能,无需使用OpenGL或其他底层绘图技术。
(This performance is achIEved using server-sIDe content caching,which restricts the compositing operations performed by the server to only those parts of a vIEw or window whose contents actually changed.)
Core Animation编程模式的核心是“层次对象(Layer object)”,它在很多方面和Cocoa VIEw很类似。就像VIEw一样,您能够安排‘层’的继承关系,改变他们的尺寸和位置,告诉他们何时重绘自身。和VIEw不同的是,‘层’不支持事件处理(Event Handling)、万能辅助支持(Accessibility)、拖拽 *** 作(Drag and drop).
‘层’在程序中可以独立于视图和窗口,也可以和它们挂钩。Cocoa和Carbon都可以通过Core Animation在NSVIEw中的整合使窗体带有动画效果。层还支持一下类型的内容:
■ Quartz Composer
■ OpenGL 内容
■ Core Image 滤镜特效
■ Quartz 和 Cocoa 渲染内容
■ QuickTime 回放与捕捉
Core Animation的特性属于Quartz Core框架(QuartzCore.framework)。想了解更多有关Core Animation的信息,请看Animation OvervIEw(http://developer.apple.com/documentation/GraphicsImaging/Conceptual/Animation_Overview/Introduction/chapter_1_section_1.html)。
5. Core Image
Core Image在Mac OS X 10.4(Tiger)中首次被引入,它提供了一套框架使您能够实现复杂的可视化行为。Core Image使用基于GPU的硬件加速。它的设计是基于插件的架构(Plug-in based architecture),通过创建Image Units,您能够扩展Core Image的能力,获得您期望的效果。 Core Image自带的Image Units允许您:
• 裁剪图片
• 调整色彩,包括调整白平衡
• 应用色彩效果,比如综褐色化(sepia tone)
• 模糊或锐化图片
• 组合图片
• 为图片或视频添加过渡效果
• 提供实时的控制,如色彩调节
• 支持体育、生动或其他视频模式
• 应用线性光照效果,如聚光灯效果(spotlight effects)
您可以在代码中同时使用内建的或自定义的Image Units。Image Unit利用硬件向量单元,Quartz,OpenGL和QuickTime来加速视频与图片数据的处理。最后数据的光栅化(Rasterization)由OpenGL来负责,后者尽可能得利用图形硬件加速。
Core Image是Quartz Core框架(QuartzCore.framework)得一部分。想了解更多关于如何使用Core Image和如何创建自己得Image Unit,请看Core Image Programming GuIDe(http://developer.apple.com/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_intro/chapter_1_section_1.html)和Core Image Reference Collection(http://developer.apple.com/documentation/GraphicsImaging/Reference/CoreImagingRef/intro/coreimage_intro.html)。想了解更多关于Core Image中的内建滤镜的信息,请看Core Image Filter Reference(http://developer.apple.com/documentation/GraphicsImaging/Refer-ence/CoreImageFilterReference/Reference/reference.html)。
6. Image Kit
Image kit在Mac OS X v10.5中被首次引入,他是一个Objective-C框架,能够让您轻松地在程序中整合强大的图片服务(Imaging services)。这个框架利用Quartz,Core Image、OpenGL和Core Animation的特性,提供一条先进的开发途径,他能够:
• 显示图片
• 旋转,裁剪和其他图像编辑 *** 作
• 浏览图片
• 利用内建的拍照窗口捕获照片。
• 显示幻灯片
Image Kit框架是Quartz框架(Quartz.framework)的一套自框架。想了解更多关于如何使用Image Kit的信息,请看Image Kit Programming GuIDe(http://developer.apple.com/documentation/GraphicsImaging/Conceptual/ImageKitProgrammingGuide/Introduction/chapter_1_section_1.html)和Image Kit Reference Collection(http://developer.apple.com/documentation/GraphicsImaging/Reference/ImageKitReferenceCollection/intro/imagekit_intro.html)
以上是内存溢出为你收集整理的图形与多媒体技术——图像渲染技术全部内容,希望文章能够帮你解决图形与多媒体技术——图像渲染技术所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)