1虚拟现实技术讲课老师:王洪群whq_lanzhou@163.com2第四章VR的计算体系结构绘制流水线基于PC的图形体系结构基于工作站的体系结构分布式VR体系结构3一、“VR引擎”在VR中所处位置对象的建模:几何结构、表面纹理、智能行为、以及硬度、惯性、表现塑性等物理建模开发平台,编程软件包:例如:WorldToolKit和Java3DVR引擎“VR引擎”:是任何VR系统的关键部分,它从输入设备中读取数据,访问与任务相关的数据库,执行任务要求的实时计算,从而实时更新虚拟世界的状态,并把结果反馈给输出显示设备。这个术语是一种抽象,从单个计算机到支持给定仿真的通过网络互联在一起的多个计算机。4绘制流水线“绘制”一般是指把组成的虚拟世界展示出来。例如:把三维几何模型转变成二维场景,也包括其它模态,如触觉反馈绘制流水线:指的是把绘制过程划分成几个阶段,并把它们指派给不同的硬件资源。图形绘制流水线触觉绘制流水线OpenGL图形绘制流水线的三个阶段GE—GeometryEnginesRU—RasterizerUnits5(1)应用程序阶段:由CPU通过软件方法完成。目的:读取虚拟世界几何数据库和来自鼠标、跟踪球、跟踪器或传感手套的用户输入。响应用户的输入和任务。(2)几何处理阶段:通过软件和硬件两种渠道来实现。模型变换光照变换场景投影剪裁映射(3)光栅化阶段:通常由硬件方法完成。目的:把几何处理阶段输出的顶点信息(例如颜色和纹理)转换成视频显示器需要的象素信息。通过应用软件所产生的图像被分成为两大类,即矢量图形和位图图像。光栅化是将一个图元转变为一个二维图像的过程。二维图像上每个点都包含了颜色、深度和纹理数据。将该点和相关信息叫做一个片元(fragment)。确定最佳逼近图形的象素集合,并用指定的颜色和灰度设置象素的过程称为图形的扫描转换或光栅化。6反走样(antialiasing)在光栅显示器上显示图形时,直线段或图形边界或多或少会呈锯齿状。原因是图形信号是连续的,而在光栅显示系统中,用来表示图形的却是一个个离散的象素。这种用离散量表示连续量引起的失真现象称之为走样(aliasing);用于减少或消除这种效果的技术称为反走样(antialiasing)。光栅图形的走样现象除了阶梯状的边界外,还有图形细节失真(图形中的那些比象素更窄的细节变宽),狭小图形遗失等现象。常用的反走样方法主要有:提高分辨率、区域采样和加权区域采样。反走样处理后的图象质量效果对比7绘制流水线举例HPVisualizefx卡流水线体系结构浮点数据整数数据象素格式8理想流水线的输出与真实流水线输出关于场景复杂度的函数对比理想流水线输出HP9000流水线的输出流水线瓶颈CPU-限制变换-限制填充-限制由于应用程序阶段出现的瓶颈瓶颈出现在几何处理阶段瓶颈出现在光栅化阶段9图形流水线的优化当出现瓶颈后,需要采取某种措施减少重复处理过程中的瓶颈,这些措施就称为流水线优化。CPU-限制(1)高速CPU取代低速CPU(2)降低场景复杂度,例如减少多边形数目,采用低分辨率模型(3)优化仿真软件,如通过编程技巧,用低精度的变量,减少除法数目13万个多边形1000个多边形10图形流水线的优化变换-限制(1)减少仿真中虚拟光源的数目(2)采用简单的明暗处理模式Phone光照模型反射光表面向量nssddpattdaaOKOKIfOKIIcoscos(单点光源)miinssiddpattdaaOKOKIfOKIIii1coscos环境光的光强度物体表面对环境光的慢反射系数观察者看到的波长为的光强度对象的慢反射颜色大气衰减因子波长为的点光源强度(多点光源)对点光源的漫反射系数镜面反射系数镜面反射颜色(3)采用简单的表面多边形类型11图形流水线的优化变换-限制(1)减少仿真中虚拟光源的数目(2)采用简单的明暗处理模式Gouraud明暗处理模型双线性光强插值是由Gouraud于1971年提出的,又被称为Gouraud明暗处理,它先计算物体表面多边形各顶点的光强,然后用双线性插值,求出多边形内部区域中各点的光强。它的基本算法描述如下:a)计算多边形顶点的平均法向。b)用Phong光照明模型计算顶点的平均光强。c)插值计算离散边上的各点光强。d)插值计算多边形内域中各点的光强。双线性光强插值的公式)]()([1122121ssayyIyyIyyI)]()([1144141ssbyyIyyIyyI)]()([1asasbbabsxxIxxIxxI(3)采用简单的表面多边形类型12图形流水线的优化面片明暗处理人的腿骨模型变换-限制(1)减少仿真中虚拟光源的数目(2)采用简单的明暗处理模式面片明暗处理Gouraud明暗处理(3)采用简单的表面多边形类型13图形流水线的优化填充-限制(1)减少显示窗口的尺寸(2)减少显示窗口的分辨率碰撞阶段触觉绘制流水线CPU1CPUn计算力力平滑力映射触觉纹理用户输入触觉接口力计算阶段触觉计算阶段主要是从数据库中加载三维对象的物理特性,包括表面柔性、光滑度、重量和表面温度等,执行碰撞检测基于各种物理仿真模型计算触点压力。还有力平滑和力映射。绘制触觉纹理,主要是绘制仿真过程的接触反馈分量。14二、基于PC的图形体系结构PC机的VR引擎15VRTeachingLaboratory使用的基于PC的VR引擎16PC图形加速卡IBMGT1000几何处理芯片IBMRC1000光栅处理芯片活动眼睛同步器、数字显示、模拟RGB视频ATIFireGL2最大16个光源27M无纹理Gouraud明暗处理多边形每秒410M个象素200M个纹理象素1280×1024下100Hz的刷新率ATIFireGL2ElsaGloriaIIIxBox17PC图形加速卡ATIFireGL2ElsaGloriaIIIxBoxElsaGloriaIIIGPU—geometryprocessorunit31M无纹理Gouraud明暗处理多边形每秒1000M个象素2000M个纹理象素1280×1024下120Hz的刷新率NVIDIA250MHz的GEForce218PC图形加速卡ATIFireGL2ElsaGloriaIIIxBoxxBox游戏平台可编程的流水线125M纹理Gouraud明暗处理多边形每秒1000M个象素NVIDIA300MHz的GEForce3UMA-unifiedmemoryarchitechture19图形基准测试非营利性组织标准性能评定公司(StandardPerformanceEvaluation.Co,简称SPEC)开发了基准测试程序:viewperf。Viewperf有标准的虚拟世界或应用程序组成。Viewperf6.1.2版提供了六个虚拟世界或应用程序viewset,测试:(1)AdvancedVisualizer:动画应用程序,包含11个测试;(2)DesignReview:三维计算机模型检查软件包,5个测试;(3)DataExplore:可视化应用程序,10个测试;(4)Lightscape:辐射度可视化应用程序,包含4个测试;(5)MechanicalCAD:MCAD设计应用程序,12测试;(6)Pro/Designer:ProCDRS工业设计应用程序,包含10个测试。研究令人信服的基准测试程序也是一种研究方向20四、基于工作站的体系结构世界主流工作站制造商SunMicrosystems公司Hewlett-Packard公司SiliconGraphics公司(SGI)工作站--多处理器体系结构SunBlade1000工作站UltraPortArchitecture,简称UPAViewperf基准测试得分比PC图形卡低21SGIInfiniteReality体系结构每秒可绘制860,000个Gouraud明暗处理纹理多边形HIP--HostInterfaceProcessorDMA--直接存储器存取方式图象被分片并行绘制显示列表高速缓存对InfiniteReality绘制能力的影响---速度提高6倍22四、分布式VR体系结构“分布式VR引擎”:是指使用两个或多个绘制流水线的VR引擎。这些流水线可以执行图形或触觉计算,可以位于一台计算机中,也可以位于多台协作的计算机中,或者位于集成在一个仿真系统中的多台远程计算机中。23多流水线的同步需要同步的原因若缺少垂直扫描方式上的同步,由于磁场干扰,导致图象闪烁。对于减少系统延时、建立一致的刷新率,从而减少仿真病同步的方法(1)软件同步法,在并行流水线的应用程序阶段,让其都开始新的一帧。(2)帧缓冲器交换同步。(3)帧视频同步。24多流水线的同步软件软件和帧缓冲器交换软件、帧缓冲器和视频25多流水线的同步Genlock和multiview同步交换同步Genlock可以重置PC机的内部视频电路26图形和触觉流水线的同步联合定位绘制流水线“联合定位绘制流水线系统”:是由一台带有多流水线图形加速卡的计算机,或者并排放置的计算机(每台指定一个不同的绘制流水线),或者是它们的任意组合。多流水线图形卡WildcatII511027联合定位绘制流水线双流水线体系结构不需要genlock(同步锁相)和外部multiview电缆图形卡中最快的28PC集群使用一台PC机的问题PC机的AGP插槽有限,wildcat占两个插槽共享AGP总线时,总线阻塞,吞吐量变小32台绘制服务器4台控制服务器用于平铺视觉显示的ChromiumPC集群控制服务器,对OpenGL命令进行8位编码分块划分查表解码29PC集群WireGL通信模式与广播通讯模式下帧刷新率与集群PC数目的关系比较只有绘制服务器状态与网络缓冲区中的数据不同时,控制服务器才给其发送30四、分布式虚拟环境“分布式虚拟环境”:是指它驻留在两台或两台以上的网络计算机上,这些计算机共享整个仿真的计算负荷。分布式虚拟环境使得远程计算机能够访问和参与仿真,两个或多个用户共享一个分布式VR,用户之间可以合作和协作的。“合作的(collaborate)”:是指他们依次执行给定的仿真任务,在某一时刻只有一个用户与给定的虚拟对象交互。“协作的(cooperate)”:是指他们同时与给定的虚拟对象交互。确定分布式虚拟环境的网络类型应该考虑的主要因素:(1)用户的行为;(2)交互的多模态(图形、语音和触觉);(3)用户数目;(4)出现通讯故障时仿真的抗毁性;(5)能忍受的延迟级别;(6)通信的可靠性和可量测性等。设计分布式虚拟环境的两个重要问题就是:网络类型和带宽。31两个用户共享的虚拟环境32多用户共享的虚拟环境的网路拓扑TCP/IP单播包的形式中心服务器,执行压缩和爆发式传送的平滑多用户虚拟环境的逻辑连接副本副本副本单服务器多服务器环形网33多用户共享的虚拟环境的网路拓扑单播包的形式多用户虚拟环境的逻辑连接多播包的形式UDP通讯模式多播包的形式UDP通讯模式点到点LAN通过路由器到WAN