按照维基的说法,实时绘制性能的衡量标准为每秒所能绘制的帧数即FPS
简单来说呢实时绘制是聚焦于生成和分析图像
由于实时系统有硬实时,firmed实时,软实时之分,而其与高性能计算的区别在于其对时间的严格要求,即只要有一次超时即会酿成严重的后果,而高性能计算的宗旨在于尽可能地快,并没有时间约定。虽然实时计算也需要快,但其强调的是在多任务系统中也需要保证在约定时间内完成相应操作并得出结果。
对于应用的GUI绘制而言,需要做到的是,实时绘制出来的一系列图像需要产生画面动起来了的感觉,绘制的技术有比如:ray-tracing(结尾有介绍) 和 rasterizing(像素网格位图技术)
相较于离线的绘制系统(也即是非实时图像系统)一般依赖于ray-tracing技术,可以耗费数小时甚至数天,但在实时绘制上,每张图像可能只有不到1/30秒的时间,所以实时绘制更多依赖于z-buffering triangle rasterization, 简单来说这种技术里面每个对象都解构成单独的三角形,然后这些三角形再一个一个绘制到屏幕上。
实时绘制的目标是在特定硬件条件上用尽可能少的性能损耗得到尽可能高质量的绘制,实时绘制成为可能主要是由于在特定硬件即GPU的进步所完成的,GPU可以每帧处理多达百万的三角,而且每个三角形内部支持数百万甚至数十亿个像素,但实时绘制的画质仍然与离线绘制存在很大的差距。
实时绘制的需求催生于用户操控界面显示的场景,而非电影电视等导演所操控的场景,在这些非实时场景中,他们可以花费任意长的时间来完成画面,但用户所掌控的场景需要在用户的操作之后马上响应以正确的显示图像,实时绘制由此而来。
ray-tracing是一种图形绘制技术,它的做法是通过追踪光线从图像中各像素穿过的路径,模拟其与各可见物体产生的光线效果。这种技术通常能比扫描绘制技术生成更真实的画面,但需要更多的计算量。这也使得它适用于提前生产画面的应用,比如静态图片,电影及电视效果等,而对于实时性能要求高的视频游戏等实时场景 则并不适合。ray-tracing可以实现的效果包括反射,折射,漫射,散射等现象
它根据想象中的观察者的视角观察光线在各个像素中的表现,计算各可见对象的颜色。