预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN108876888A(43)申请公布日2018.11.23(21)申请号201810551302.6(22)申请日2018.05.31(71)申请人沈阳品尚科技有限公司地址110006辽宁省沈阳市和平区五里河街51号2407房间(72)发明人高天寒张一大(74)专利代理机构沈阳东大知识产权代理有限公司21109代理人胡晓男(51)Int.Cl.G06T15/06(2011.01)权利要求书1页说明书4页附图3页(54)发明名称一种光线追踪优化方法(57)摘要本发明提供一种光线追踪优化方法,包括:光线追踪优化的任务由GPU渲染端和CPU主机端来执行,其中CPU主机端负责模型解析和输出处理,GPU渲染端负责根据模型数据信息建立KD-Tree和光线追踪渲染。本发明通过合理使用GPU端的内存资源和应用OpenGL-CUDA图形互操作函数提高光线追踪的执行效率。同时本发明使用GPU端结合OpenGL-CUDA图形互操作函数,实现光线追踪结果的显示,使方法具有更好的跨平台性,有效解决数据频繁传输带来的效率问题。与传统的基于GPU上实现的光线追踪相比,渲染效率有明显提高,能够在较短时间内完成相同效果的模型渲染工作。CN108876888ACN108876888A权利要求书1/1页1.一种光线追踪优化方法,其特征在于,包括:光线追踪优化的任务由GPU渲染端和CPU主机端来执行,其中CPU主机端负责模型解析和输出处理,GPU渲染端负责根据模型数据信息建立KD-Tree和光线追踪渲染。2.根据权利要求1所述的方法,其特征在于,所述模型解析和输出处理,包括:CPU主机端加载场景模型,为其开辟内存/显存,解析场景模型,将解析后的模型数据信息分类,其中的场景三角片元数据和场景材质数据打包发送给GPU渲染端的纹理存储区,光源信息、视线位置信息、场景分辨率和递归最大深度信息打包发送给GPU渲染端的常量存储区。3.根据权利要求1所述的方法,其特征在于,所述根据模型数据信息建立KD-Tree,包括:创建场景中基本图元的轴对齐包围盒;边界确定,形成场景空间;若当前场景空间达到分割终止条件,则将其作为叶子节点插入到KD-Tree中,完成KD-Tree构造;否则:确定分割平面的位置,在当前场景空间中插入分割平面,将整个场景空间分成两个部分,即左侧空间和右侧空间,也即两个子节点;在左侧空间、右侧空间内,通过计算选择新的分割平面,将左侧空间、右侧空间分别分割成两个新的子空间作为两个新的子节点;直至达到分割终止条件时停止分割,得到最终的KD-Tree。4.根据权利要求3所述的方法,其特征在于,所述确定分割平面的位置,具体是选择子节点内分割成本最小的位置作为分割平面的位置。5.根据权利要求4所述的方法,其特征在于,所述分割成本采用如下公式计算:C(V)≈Kt+Ki(PlNl+PrNr)其中,V表示待计算的子节点,C(V)表示分割成本,Nl、Nr分别为左、右子节点中的图元数,Kt、Ki均为常数,Pl、Pr分别为光线进入左、右子节点的概率。6.根据权利要求1所述的方法,其特征在于,所述光线追踪渲染,包括:初始化当前光线簇,并与场景内物体进行相交测试;若当前光线簇与场景内物体相交,则记录交点处的颜色值,并将交点处的颜色值发送到OpenGL的帧缓存区;否则将场景的背景颜色值发送到OpenGL的帧缓存区;计算是否有次级光线簇,是,则将次级光线设为当前光线簇,否则维持当前光线簇;若当前光线簇缓存区非空且未到达预先设定的最大跟踪深度,则继续进行相交测试,否则通过调用OpenGL的图形互操作函数,显示渲染好的场景。7.根据权利要求6所述的方法,其特征在于,所述次级光线簇指反射光线簇或折射光线簇。2CN108876888A说明书1/4页一种光线追踪优化方法技术领域[0001]本发明属于计算机图形学技术领域,特别涉及一种光线追踪优化方法。背景技术[0002]光线追踪,是通过跟踪与物体发生交互作用的光线,得到物体表面上产生的反射、散射的路径,模拟出真实的虚拟场景。光线追踪过程中需要跟踪场景中的每一条光线,成像过程中计算开销很大。[0003]近年来GPU在并行处理方面的优势凸显,NVIDIA推出了OptiX光线跟踪引擎及通用并行计算框架(ComputeUnifiedDeviceArchitecture,CUDA)这一编程模型,使得GPU成为高性能计算领域研究热点。高性能计算不仅仅是多个核心同时计算,还要求高效发挥计算核心性能,需要程序员针对体系结构进行特殊优化,比如向量化、数据合并访存、提高cache命中率等。[0004]基于GPU存储体系的光线追踪优化主要有两种方法:[0005]第一种方法是Carr等人提出来的,把GP