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

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

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

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

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

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

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN111369656A(43)申请公布日2020.07.03(21)申请号202010141839.2(22)申请日2020.03.04(71)申请人杭州群核信息技术有限公司地址310019浙江省杭州市江干区九环路9号3幢2楼208室(72)发明人郁明李浪马轲(74)专利代理机构杭州九洲专利事务所有限公司33101代理人陈继亮(51)Int.Cl.G06T15/00(2011.01)权利要求书1页说明书4页附图3页(54)发明名称一种基于WebGL可编辑大场景渐进式实时渲染方法(57)摘要本发明公开了一种基于WebGL可编辑大场景渐进式实时渲染方法,涉及3D实时渲染领域,所述方法包括:1、基于BVH空间结构的层级空间关系管理;2、渐进式场景绘制。本发明的有益效果为:保留原始场景设计模型,支持可编辑更新操作,对大型三维场景进行渐进式渲染绘制,在不同能力的设备下、不同规模大小场景下,使得三维交互实时渲染环境保持流畅。在酷家乐设计工具的图形系统中,使用该技术使得用户可以在浏览器环境中对大场景进行设计编辑。CN111369656ACN111369656A权利要求书1/1页1.一种基于WebGL可编辑大场景渐进式实时渲染方法,其特征在于,所述方法包括:步骤1:基于BVH空间结构的层级空间关系管理,包括以下步骤:A.平衡BVH,采用平均分配子节点的方式构建BVH;B.基于WebWorker的BVH生成,采用的WebWorker技术,将BVH空间结构的生成逻辑迁移到Worker中去执行;C.检查Worker是否为完成状态;若为完成状态,则取出Worker生成的BVH结果并执行步骤D;反之,直接执行步骤D;D.判断场景是否发生变化;若发生变化,则执行步骤E;反之,则进入步骤2;E.判断当前Worker是否正在构建BVH;若正在构建,则进入步骤2;反之,则执行步骤F;F.收集场景信息,请求Worker生成BVH,并进入步骤2;步骤2:渐进式场景绘制,包括以下步骤:a.用户场景描述层面,整理出每一份完成webgldrawcall所需渲染信息的数据组合,即渲染描述;b.维护一份线性的关于渲染描述的中间数据结构,提升用户的非线性场景描述到线性渲染数据的转化性能;c.使用步骤1中生成的BVH信息,以BVH的一种剔除策略,从步骤b的中间数据结构中获得一定数量按该剔除策略排序的渲染描述存在渲染队列中;d.对于渲染队列中的物体,计算更多的额外信息,进行额外的优化排序;e.渲染处于渲染队列中的物体;f.检查帧耗时预算是否超标,若没有则重复步骤c;g.在下一帧时,若BVH中的物体没有获取完成所有的物体,或者场景没有任何可观测变化,或者相机没有变化;则会从步骤c开始继续进行下一帧绘制;否则,下一帧,完成相应的场景更新,并重置BVH的当前获取位置,并从步骤a开始继续执行此流程。2.根据权利要求1所述的基于WebGL可编辑大场景渐进式实时渲染方法,其特征在于:所述步骤2中步骤a所述的数据组合包括完成这个drawcall,所需的shader,uniform,attributebuffer,以及必要的状态设置。3.根据权利要求1所述的基于WebGL可编辑大场景渐进式实时渲染方法,其特征在于:所述步骤2中步骤c中使用优化的层次视锥剔除策略。2CN111369656A说明书1/4页一种基于WebGL可编辑大场景渐进式实时渲染方法技术领域[0001]本发明涉及3D实时渲染的领域,具体涉及一种基于浏览器运行的3D大场景实时渲染技术。背景技术[0002]三维场景是图形可视化应用的基础,随着业务的深入,更加细化的设计,三维的数据量和场景越来越大。对于设计软件,数据的更新要求使得数据需要独立存在,也更不利于数据合并等优化降低对硬件DrawCall数量的需求。另一方面,尤其是基于浏览器的WebGL三维显示技术,可以充分发挥硬件和底层图形接口的能力有限。比如还不能使用高级的OpenGL/DirectX/Valken等底层图形接口特性,多核/多线程使用有限,相比本地软件Javascript/浏览器有额外比较高的运行时消耗。作为普通的行业用户,通常使用的电脑设备都比较大众化。在软件使用便利性的同时,对于三维场景的实时渲染就提出了很大的挑战,速度和流畅性不够就无法正常进行交互的图形应用场景,尤其是设计编辑类的应用场景。[0003]一类静态场景浏览得应用,场景数据是静态不变的,传统的做法是通过预处理对数据进行轻量化减少数据量和分级LOD数据,降低DrawCall数量来提高绘制效率的优化来达到高效的三维大场景渲染。比如,对场景内的各模型进行数据合并,对贴图进行合并,对数据进行提取进行实例化绘制,模型LOD多级数据。有的使用服