当前位置: 首页 > 专利查询>英特尔公司专利>正文

大气散射的硬件加速仿真制造技术

技术编号:6632011 阅读:173 留言:0更新日期:2012-04-11 18:40
大气散射的硬件加速仿真。一种方法和系统可以包括具有逻辑的硬件纹理单元,所述逻辑用于接收图形场景的像素的视线的参数,以及确定所述视线的照度。可以将能够指示视线的内散射照度百分比的照度传送到软件模块,例如用于像素的渲染的像素着色器。

【技术实现步骤摘要】

大气散射可以涉及可见光子与大气中的诸如雾、云、悬浮微粒和其它单独气体分子之类的物质的交互作用。因此,大气散射效果可以与诸如3D(3维)计算机游戏、飞行模拟器和其它3D成像系统之类的视觉增强计算机图形应用程序有关。仿真大气散射的传统方法可以涉及在图形处理器内核上执行的一个或多个软件线程中计算视线(view ray)样本位置并且将每一个样本位置作为单独的阴影纹理查找请求提交给硬件纹理单元。因为这种方法会导致较高的延迟和性能的实质降低,所以大气散射仿真没有被较大程度地部署到3D计算机图形应用程序中。附图说明对本领域技术人员而言,通过阅读以下说明书和所附权利要求以及参考以下附图,本专利技术的实施例的各种优点将会变得显而易见,其中图1是根据一个实施例的仿真大气散射的方法的示例的流程图;以及图2是根据一个实施例的系统的示例的框图。具体实施例方式实施例可以提供包括存储的指令集合的计算机可读存储介质,其中,当由处理器执行所述存储的指令集合时,使得计算机计算图形场景的像素的视线并且将视线的参数发送到硬件纹理单元。这些指令还可以使得计算机从硬件纹理单元接收计算的视线的照度值。实施例还可以提供包括硬件纹理单元的系统,所述硬件纹理单元具有用来接收图形场景的像素的视线的参数以及确定视线的照度值的逻辑。此外,实施例可以包括为图形场景的像素计算视线的仿真大气散射的方法,其中, 所述计算由软件模块执行。该方法还可以提供将视线的参数发送到硬件纹理单元,所述硬件纹理单元基于该参数沿着视线选择多个样本位置。硬件纹理单元还可以将该多个样本位置与阴影纹理进行比较以获取相应的多个照度值,以及将多个照度值相加以获取视线的总照度值。该方法还涉及将总照度值发送到软件模块。视线可以被视为从观察者的眼睛位置延伸到图形场景的帧缓冲器像素的世界空间向量。因此该向量的长度可以与该像素的对应的深度缓冲器中的值成比例。要估计沿着视线的内散射,可以确定由场景中每一个光源照射的视线的比例。要作出这种确定,可以使用变换矩阵将视线变换为光的视图空间。然后可以在光的平截头体中沿着视线长度在多个样本位置处采样视线,累积对光可见(即,其深度值小于光的阴影纹理贴图的深度值)的每一个样本点的照度。将“照亮的”样本的数量与样本间距长度相乘可以构成近似于视线通过其累积照度的总可视距离的数值积分。可能需要每个视线的相当大数量的样本位置以减轻点采样技术所固有的混淆效应。现在转向图1,其示出了处理流程50。流程50通常可以用来在诸如计算机游戏、飞行模拟器和其它3D成像系统之类的实时3维(3D)计算机图形应用程序中仿真大气散射。 在所说明的示例中,流程50的一些部分可以发生在软件模块34,该软件模块34可以包括在图形或通用处理器上运行的像素着色器软件线程,然而,可以在固定功能硬件纹理采样器/ 单元30上执行流程50的其他部分。因此,可以将流程50实现为存储在机器或计算机可读介质中的可执行指令和使用电路技术的固定功能硬件的组合,其中,所述机器或计算机可读介质例如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、闪速存储器等, 所述电路技术例如专用集成电路(ASIC)、互补金属氧化物半导体(CM0Q或晶体管-晶体管逻辑(TTL)技术。例如,可以用一种或多种编程语言的任意组合来编写用于执行在软件模块34中示出的操作的计算机程序代码,其中所述一种或多种编程语言包括着色语言(其甚至可以被预编译或在运行时JIT/即时进行)、诸如C++等的面向对象的编程语言和诸如 “C”编程语言或类似编程语言的传统过程编程语言。此外,硬件纹理单元30可以实现为使用任意上述电路技术的嵌入式逻辑。特别地,所说明的处理框52提供了使用软件模块34来计算图形场景的像素的视线。所计算的视线的方程式/参数可以包括初始位置(X,1,Z)、表示每单元长度沿着每一个3D轴的位置变化的变化度的3D集合(dx,dy,dz)、视线长度(1)以及样本计数(η)。框 54提供了将视线的参数发送到硬件纹理单元30,其可以基于接收的参数在框56沿着视线选择多个样本位置。特别地,纹理单元30可以将视线的3D坐标投射到光的坐标系统以计算对应于视线的开始和结束点的2D(u,v)值、从光的角度的初始深度(t)、以及每个样本步长的这些值的变化度(dt,du, dv)。在每一个样本位置(i),可以将光的2D阴影贴图纹理中的样本的 (ui; Vi)位置内插为(u+i*du,v+i*dv)以及将样本的深度(、)内插为(t+i*dt),以获取多个样本位置。所说明的框58提供了将样本的内插深度(、)与存储在光的阴影贴图中位置 (Ui5Vi)的深度值进行比较以生成样本的照度值,并且将多个照度值相加以获取视线的总照度。例如,纹理单元30可以基于所述样本位置内插2D位置提取阴影纹理的部分/纹理元素(texel),并且进行测试以确定视线的样本位置是否被照射。如果内插深度小于存储在最近的阴影贴图纹理元素中的深度值,那么测试可以涉及考虑被照射的样本(例如,如果没有被照射,那么0 ;以及如果被照射,那么1),或者基于多个附近的纹理元素考虑被部分照射的样本(例如,用于2x2纹理元素比较的0、. 25、. 5、. 75或1)。可以基于其样本间距来加权每一个照度值,将加权后的多个照度值相加以获取视线的照度。因此,可以将能够指示视线的照度百分比的所计算的照度从硬件纹理单元30发送到软件模块34。框60提供了使用软件模块;34来基于视线的照度渲染像素。可以针对所述的图形场景的每一个像素重复处理流程50。通过使用硬件纹理单元30来选择视线样本位置、将样本位置与阴影纹理进行比较、以及将照度值相加,所说明的流程50消除了从硬件纹理单元到软件模块的多个单独纹理样本的耗时的转换。因此,大气散射效果的渲染可以更有效率并且可以显著地增强性能。 简单地说,软件模块34可以用单个纹理单元调用来取代许多单独的纹理查找,以检索视线的照射百分比的值。现在转向图2,其示出了计算系统10,其中,系统10可以是移动平台的一部分,所述移动平台诸如膝上型计算机、个人数字助理(PDA)、无线智能电话、媒体播放器、成像设备、移动互联网设备(MID)等,或它们的任意组合。系统10还可以是诸如个人计算机(PC)、 服务器、工作站等的固定平台的一部分。所说明的系统10包括中央处理单元(CPU) 12,其具有提供对系统存储器16的访问的集成存储器控制器(iMC) 14,所述系统存储器16可以包括双倍数据速率(DDR)同步动态随机存取存储器(SDRAM,例如,DDR3 SDRAM JEDEC Standard JESD 79-3C,2008年4月)模块。可以将系统存储器16的模块合并到单列直插存储器模块 (SIMM)、双列直插存储器模块(DMM) ^hSDMM(SODMM)等。CPU 12还可以具有一个或多个驱动器35和/或处理器内核(未示出),其中每一个内核可以具有指令提取单元、指令解码器、一级(Li)高速缓存、执行单元等的完整的功能性。CPU 12可以可替换地经由前侧总线或使系统10中的每一个部件互连的点到点构造与iMC 14的片外变型(也被称为北桥) 进行通信。CPU 12 还可以执行诸如 Mi本文档来自技高网...

【技术保护点】
1.一种方法,包括:计算图形场景的像素的视线,其中,所述计算由软件模块执行;将所述视线的参数发送到硬件纹理单元;基于所述参数沿着所述视线选择多个样本位置;将所述多个样本位置与阴影纹理进行比较以获取对应的多个照度值;将所述多个照度值相加以获取所述视线的照度,其中,由所述硬件纹理单元执行所述选择、比较和相加;以及将所述照度发送到所述软件模块。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D·霍尔顿
申请(专利权)人:英特尔公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1