CN114627221B - 一种场景渲染方法、装置及运行器、可读存储介质 - Google Patents
一种场景渲染方法、装置及运行器、可读存储介质 Download PDFInfo
- Publication number
- CN114627221B CN114627221B CN202111487651.4A CN202111487651A CN114627221B CN 114627221 B CN114627221 B CN 114627221B CN 202111487651 A CN202111487651 A CN 202111487651A CN 114627221 B CN114627221 B CN 114627221B
- Authority
- CN
- China
- Prior art keywords
- dynamic
- scene
- rendering
- determining
- grid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000003860 storage Methods 0.000 title claims description 18
- 230000003068 static effect Effects 0.000 claims description 52
- 238000004590 computer program Methods 0.000 claims description 16
- 230000000007 visual effect Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 241001494479 Pecora Species 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000002775 capsule Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例公开了一种场景渲染方法,该方法包括:在场景中确定包含主角摄像机视椎范围在内的动态格子区域,所述动态格子区域能随着摄像机视椎范围在场景中移动而移动;根据主角在场景中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件;根据所述模型文件对场景中动态格子区域内的模型进行渲染。通过该技术方案可以优化视椎裁剪,减轻计算压力,提高渲染效率。
Description
技术领域
本申请涉及场景渲染技术领域,尤其涉及一种场景渲染方法、装置及运行器、可读存储介质。
背景技术
在各种游戏、地图等图形渲染中,经常面临对大场景的渲染。大场景中的模型数量一般较多,在渲染时,会将该场景中的所有模型提交给GPU进行渲染工作,由此导致显卡的压力增大、性能降低,无法应用到对实时性要求较高的渲染中。
对此,一种场景渲染做法是引入“场景管理”的概念,仅将摄影机视椎(参见图1所示,在3D渲染中,将人眼比作一个摄像机,摄像机的可视范围形成一个视线椎体,即主角摄像机视椎)范围内的模型,提交GPU进行渲染。这种方式大大减少了场景中渲染对象的数量,有利于提高渲染性能。但是,该方法新增加的步骤是必须判断场景中的每个模型与视椎之间的关系,即遍历场景中的所有模型的包围盒,以确定其在视椎范围内部还是外部:如果在摄像机视椎范围内,则将该模型加入渲染队列,提交显卡进行渲染;如果在外部,则在当前渲染中予以舍弃。因此,尽管这种方式大大减少了渲染对象的数量,然而这种判断场景内全部模型与视椎之间关系的做法,相当“粗暴”。在场景中的模型数量较多时,给GPU带来较大的资源利用压力极为明显。
发明内容
本申请实施例提供一种场景渲染方法、装置以及运行器、可读存储介质,用于解决或改善现有技术在场景渲染中存在的问题。
一方面,本申请实施例提供的场景渲染方法包括:
在场景中确定包含主角摄像机视椎范围在内的动态格子区域,所述动态格子区域能随着摄像机视椎范围在场景中移动而移动;
根据主角在场景中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件;
根据所述模型文件对场景中动态格子区域内的模型进行渲染。
优选地,所述场景被划分为若干静态格子,每个静态格子关联对应的模型文件,所述静态格子与动态格子大小相同,所述根据主角在场景中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件,具体包括:
根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子;
确定各个所述静态格子对应的各自模型文件。
优选地,所述主角摄像机视椎在预定第一间隔的水平角度和/或预定第二间隔的垂直角度下对应的各个姿态,预先关联对应着动态格子区域中相应的动态格子,所述根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子,具体包括:
根据主角在场景中的位置确定当前主角摄像机视椎在水平角度和/或垂直角度对应的当前姿态;
根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子;
根据所述摄像机视椎范围内的动态格子确定在场景中动态格子覆盖的静态格子。
优选地,所述方法还包括:为预定第一间隔的水平角度和预定第二间隔的垂直角度下对应的每个姿态,以及每个姿态关联对应的动态格子,设定姿态关键值,将所述姿态关键值缓存到数组;所述根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子,具体包括:
根据所述当前姿态确定当前姿态对应的姿态关键值;
根据所述姿态关键值查询所述数组,确定所述动态格子区域中摄像机视椎范围内的动态格子。
优选地,所述方法还包括:
在场景中确定包含主角摄像机视椎范围在内的动态格子区域时,根据所述主角摄像机视椎射线起点与动态格子区域中各个动态格子之间的距离,确定各个动态格子的渲染等级,不同的所述渲染等级渲染的精细程度不同;所述根据模型文件对场景中动态格子区域内的模型进行渲染,具体包括:
根据模型文件以及所述渲染等级对场景中动态格子区域内的模型进行渲染。
另一方面,本申请实施例还提供了一种场景渲染装置,所述装置包括:格子区域确定单元,模型文件确定单元和渲染单元,其中:
所述格子区域确定单元,用于在场景中确定包含主角摄像机视椎范围在内的动态格子区域,所述动态格子区域能随着摄像机视椎范围在场景中移动而移动;
所述模型文件确定单元,用于根据主角在场景中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件;
所述渲染单元,用于根据所述模型文件对场景中动态格子区域内的模型进行渲染。
优选地,所述场景被划分为若干静态格子,每个静态格子关联对应的模型文件,所述静态格子与动态格子大小相同,所述模型文件确定单元包括静态格子确定子单元和模型文件确定子单元,其中:
所述静态格子确定子单元,用于根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子;
所述模型文件确定子单元,用于确定各个所述静态格子对应的各自模型文件。
优选地,所述主角摄像机视椎在预定第一间隔的水平角度和/或预定第二间隔的垂直角度下对应的各个姿态,预先关联对应着动态格子区域中相应的动态格子,
所述静态格子确定子单元,用于根据主角在场景中的位置确定当前主角摄像机视椎在水平角度和/或垂直角度对应的当前姿态;以及
根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子;以及
根据所述摄像机视椎范围内的动态格子确定在场景中动态格子覆盖的静态格子。
再一方面,本申请实施例提供了一种运行器,该运行器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现如上所述的方法的步骤。
又一方面,本申请实施例提供的计算机可读存储介质,在所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的方法的步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:对视椎裁剪实现大大优化,只要遍历动态磁场格子区域,将该区域内的包围盒和摄像机视椎做检测,即可判断哪些需要进行渲染:如果动态格子在视椎的视野范围之外,该动态格子对应的静态场景全部不再做视椎检测,进而不进行渲染;如果动态格子在视椎的视野范围之内,可根据需要决定对静态场景内的格子进行视椎检测。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为渲染过程中的主角摄像机视椎示意图;
图2为摄像机视椎与场景中模型的关系示意图;
图3为本申请实施例提供的一种渲染方法流程示意图;
图4为本申请实施例中涉及的“动态磁场格子”示意图;
图5为本申请实施例动态磁场格子与摄像机视椎关系示意图;
图6为本申请实施例中渲染级别示意图;
图7为本申请提供的渲染装置实例结构示意图;
图8为本申请的运行器实施例的结构示意图。
具体实施方式
在游戏画面等应用场景中,画面中的对象数量往往众多,这些对象经过渲染后,才能较好地呈现在画面中。为实现渲染,需要识别场景中的模型。如前述背景技术中介绍,为减少渲染对象的数量,可以仅仅渲染视椎范围内的模型对象,但是,这种方式增加视椎与模型对象关系的判断,“视椎”的区块可能不大,但是场景中的模型数量可能多,对于计算机而言,只有通过“计算”才能检测某个模型是否在视椎范围之内,由此仍然需要将场景内的全部模型与视椎进行比较,由此也将因模型数量的宏大,引起GPU的资源利用压力。
为了更好的说明现有技术存在问题,以清晰呈现本申请实施例的技术方案,下面结合附图再进行详细说明。参见图2,图中示出了摄像机视椎的区域,以及场景中的模型,图中各种规则或不规则的物体,称为模型,在模型的***,基于计算机的特殊性,存在一个覆盖包围模型的“包围盒”,包围盒呈现了模型的外轮廓,可以根据具体情况表现为球体、圆柱体、胶囊体或者其他形状。视椎所在的区域是视椎的视线椎体在场景平面上的交平面,在该交平面的区域里,形成三种关系:一是模型所在包围盒完全在该平面内;二是模型所在包围盒完全在该平面外,三是跨越该视椎平面的模型。对于第一种、第三种均会纳入到渲染序列之中,对于第二种则没有必要进行渲染。由此,判断一个视椎平面与场景中的模型之间的关系,便是解决渲染数量大的“关键一招”。如前所述,在现有技术中,在加载待渲染对象时是通过遍历所有模型,从而“筛选”出需渲染的对象来进行渲染。但是,这种方式依然对计算机资源消耗巨大,特别是那些离视椎平面非常远的模型,其必要性将受到怀疑。
现有技术面临的困境正是本申请技术方案的“前进方向”。参见图3、图4,图3示出了本申请实施例的技术方案的流程,图4示出了解决本申请技术方案重要的概念“动态磁场格子”。为实现精细化的管理,在本申请实施例中,将场景划分为若干个大小等同或不等同的小“格子”,每个模型所在的包围盒可能占有一个或多个格子。当然,这里的“格子”可以是实际存在的“格子线”,也可以是虚拟的仅通过格子数据来表征的“格子线”。场景服务于“动作”。在一个场景中,必然存在某项“活动”,而这些活动存在一个“主角”。该主角有多种表现形式,一种可能是它为游戏中的“真正”人物角色,该主角人物的视线就是主角视线,玩游戏者的注意力将随着该人物的移动而出现焦点跟随,这种情况下游戏人物主角视线与游戏操作者视线重合;另一种可能,则是以操作计算机的操作者的视角来观察场景中模型所形成的视线主角,而没有真正的主角人物,比如,在场景中始终存在一个游戏的观察视角,这个视角所在的方向就是主角视线所在的方向。
在确定好主角视线(摄影机视椎)后,实施步骤S301:以摄像机视椎中主角位置为中心,在场景中构建预定大小的格子区域。从二维角度来说,该格子区域的范围,通常最好是等于或大于当前摄像机视椎在场景平面上的区域;从三维角度来说,格子区域最好是能包含摄像机视椎在场景中延伸的最远距离。由此,格子区域的大小可以进行动态调整,比如在本次渲染活动中,可以是64×64像素点构成的格子区域,在下次渲染活动中,则可以是32×32像素点构成的格子区域。这里的“格子区域”不同于普通的仅对全部场景进行划分的静态网格(静态格子),其主要特点包括它具有动态性,其始终以主角为中心,主角向何方向移动,该格子区域也随之移动,形成主角的“势力范围”,这种势力范围如同磁铁一样,紧紧依附于主角,可称为“动态磁场格子”。这个称呼中的“动态”,表明了其与静态格子的差别,静态格子是在一次场景中划分的固定格子(下一次场景中也可能发生变化),在一次渲染活动中,通常不会随着在该场景中活动的主角的变化而变化,而动态格子则是如影随形地跟随主角,主角动,该区域就动。这个称呼中的“磁场”,表明了其与主角之间的依附关系,如同两片磁铁一般,在当前场景渲染中不分离。但是,需要说明的是,动态磁场格子随主角而动,并不意味着主角在场景中的每一个位置,动态磁场格子(格子区域)都一定要大小完全相同,实际上其可相同,也可不同。在场景中模型多、模型紧密,则可以让格子区域小一点,相反,则可以大一些。当然,主角每有一个位置,动态磁场格子相同,是有利于计算机进行信息处理的。
在确定主角的动态磁场格子后,当需要进行模型渲染时,则可以实施步骤S302:根据主角在场景中的位置和动态格子区域,确定动态磁场格子所覆盖模型的对应场景地块文件(模型文件),步骤S303:加载这些地块文件对场景中动态格子区域内的模型进行渲染。如果是在移动过程中,则同时可以卸载主角原来位置的场景地块文件。主角持续移动,该动态加载、卸载过程,随之持续进行,从而能够实现超大场景的无缝加载和卸载。为说明该过程,继续参照图例。如图5所示,该图示出了动态磁场格子占据场景中预先划分好的静态格子的情况。在图中,将超大场景进行了格子划分(19×19像素点),在这个划分了格子的场景中,当前主角移动到的所在位置为(7,6)像素点格子,以主角为中心,形成了3×3像素点的格子区域,该格子区域包括D1、D2、、、D8、D9共计9个静态格子。如果主角移动到另一个地方,则以其中心的格子区域将随之移动,围绕在主角周围。在该格子区域内,摄像机视椎所在的格子主要是D1、D2、D4、D5。那么,在渲染时,首先可以排除在渲染之外的格子,是格子区域之外的大部分区域,这些除外区域内格子的模型,不在视线范围内,可以不用关心,因为他们并不影响当前主角视线对模型的呈现,相当于完全没有看见。其次,即便在动态磁场格子的格子区域范围之内的格子,也不是都需要渲染的,而仅仅是位于视椎范围内的四个格子(D1、D2、D4、D5)才有必要渲染。由此,本申请实施例将本要对场景19×19像素点进行全域范围遍历,以动态检测某个待渲染的模型是否在视椎范围的“浩大工程”,缩小到格子区域范围内的3×3像素点的范围,并最终确定仅仅对4个格子内的模型进行渲染,大大减少渲染模型的数量,从而显著地提高渲染效率。
如上所述,本申请实施例对视椎裁剪进行了大大优化,只要遍历动态磁场格子区域,将该区域内的包围盒和摄像机视椎做检测,即可判断哪些需要进行渲染:如果动态格子在视椎的视野范围之外,该动态格子对应的静态场景全部不再做视椎检测,进而不进行渲染;如果动态格子在视椎的视野范围之内,可根据需要决定对静态场景内的格子进行视椎检测。所谓根据“需要”,取决于对现实效率的追求,如果对其做视椎检测,能大大缩小渲染数量,则可进行该项工作,尤其对于视椎范围内模型数量较少的情况;如果对其做视椎检测,对渲染数量的减少贡献不大,那么进行该项工作必要性不强,可直接进行格子区域范围的渲染。
上述方案已完整地表达出本申请的核心内容,但是,在此基础上,进行进一步优化是完全可行的,以便更加显著地提升效率。在前述方案中提到,在实际应用中,将考虑把动态磁场格子的大小予以固定、相对于主角的位置也固定,比如前述以主角所在位置为中心,构建的是3×3像素点的动态磁场格子,无论主角移动到哪个位置,其磁场格子区域相对于主角而言,均是不变的。尽管如此,即便主角相对于磁场格子区域的“位置”可能不变,但主角在磁场格子区域范围内的摄像机视椎,却可能发生变化,由此每次进行的渲染格子虽然局限在“动态磁场格子”范围之内,但可能是不同的。那么,为了进一步优化效率,基于动态磁场格子和摄影机视椎之间的关系在初始化时已确定,可根据摄影机视椎的水平角度(0~360°)、垂直角度(0~180°)等情况,每隔一个区间(例如,每间隔10°)设定一个KEY值,把每个KEY值对应的摄像机视椎范围内的动态磁场格子全部缓存成数组。当操作摄像机使得主角的视角发生变化时,先确定当前摄像机视椎的位置,进而确定对应的KEY值,依据该KEY值从预先存储的数组中查找其覆盖的动态磁场格子,如果已经缓存过,则可直接对保存的动态格子内的模型进行渲染;如果未查找到,才通过计算确定当前视椎覆盖到的格子,进而对其格子内的模型进行渲染。由于对摄像机视椎的每个状态均可按照预定间隔进行缓存,从而能够确保基本上均可查找到对应的数组,迅速找到待渲染的格子(格子内模型),大大提高了渲染效率。
在前述优化方向中,并未对格子区域中的模型进行区分。实际上,在实际应用过程中,相对于摄影机视椎而言,必然有些模型远离视椎射线起点,有些靠近视椎射线起点。不可否认的是,不同距离远近的模型,在主角视线中的“影像”是不同的,既然影像不同,那么在渲染时也可以有所差别。这便是一个新的优化方向,即依据模型与摄影机视椎距离远近来确定渲染程度。参见图6,三只同样的羊,靠得近的,自然看得更清晰,离得远的,显然会模糊不清。对于近者,应当细致渲染以求更高清晰度,对于远者,只需大的轮廓渲染到位即可。例如图中,当摄像机视椎射线起点距离羊5米时,以最左侧的模型精细度对羊进行渲染;距离30米时,以中间的模型精细度对羊进行渲染;距离100米时,以最右侧的模型精细度对羊进行渲染。由此,在动态磁场格子生成时,可以根据模型距离摄影机视椎射线起点的距离,一次性计算动态磁场格子(实际表征了格子内的模型)的渲染等级(例如根据包围盒大小确定渲染分级),在加载时将格子区域内的每个模型进行分层处理:当“动态磁场格子”中的格子渲染级别为1时,包围盒体积为XXXm3以上的LOD几倍为XX等级;当“动态磁场格子”中的格子渲染级别为2时,包围盒体积为XXXm3以上的LOD几倍为XX等级。通过这种方式,在根据摄像机视椎距离一次性计算动态磁场格子的渲染等级的操作,是确定动态磁场格子时完成的,而不是对进入视野范围内的模型每帧都根据摄像机视椎距离和模型的包围盒动态计算渲染级别,在渲染状态下渲染级别不再发生变化,大大减少了对资源的损耗,运行无需CPU动态计算,降低了GPU的渲染压力。
上述内容详细介绍了本申请提供的场景渲染方法的各种实施例。与上述内容同样的道理,上述的方法可以虚拟为场景渲染装置。参见图7,该图即示出了场景渲染装置的一个实施例,该装置包括:格子区域确定单元U71,模型文件确定单元U72和渲染单元U73,其中:
格子区域确定单元U71,用于在场景中确定包含主角摄像机视椎范围在内的动态格子区域,所述动态格子区域能随着摄像机视椎范围在场景中移动而移动;
模型文件确定单元U72,用于根据主角在场景中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件;
渲染单元U73,用于根据所述模型文件对场景中动态格子区域内的模型进行渲染。
上诉装置实施例可以取得与前述方法相同的技术效果,为避免重复,此处不再赘言。该装置实施例可以进一步进行各种优化。比如模型文件确定单元U72,其功能以不同的实现方式,在组成结构上便可能发生相应的变化。当然,在对其优化之前,如果为满足优化的需要,还应当对一些条件进行交代,以便优化得以更可靠的实现。一种可行的方式是该模型文件确定单元依赖于静态格子实现,那么就应当将场景划分为若干静态格子,而每个静态格子关联对应的模型文件,同时静态格子与动态格子大小相同,这样模型文件确定单元U72就可以包括如下子单元:静态格子确定子单元U721和模型文件确定子单元U722,其中:
静态格子确定子单元U721,用于根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子;
模型文件确定子单元U722,用于确定各个所述静态格子对应的各自模型文件。
此外,上述装置实施例还可以进一步优化。比如对静态格子确定子单元进行细化。在主角摄像机视椎在预定第一间隔的水平角度和/或预定第二间隔的垂直角度下对应的各个姿态,且预先关联对应着动态格子区域中相应的动态格子的情况下,从功能上而言,静态格子确定子单元,可以用于根据主角在场景中的位置确定当前主角摄像机视椎在水平角度和/或垂直角度对应的当前姿态;以及根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子;以及根据所述摄像机视椎范围内的动态格子确定在场景中动态格子覆盖的静态格子。这种在功能上的要求,对应着相应的结构,而相应的结构则可以采用必要的元器件来得以实现。
除上述主题的装置外,本申请的实施例还提供一种运行器。参照图8,该图示出了运行器的一个实施例的结构示意图,所述运行器80中包含存储器81、处理器82及存储在所述存储器81上并可在所述处理器82上运行的计算机程序,所述计算机程序被所述处理器82执行时实现上述记载的基于区块链的数据处理方法的步骤。与此道理类似,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种场景渲染方法,其特征在于,该方法包括:
在场景平面中确定包含主角摄像机视椎范围在内的动态格子区域,所述动态格子区域以主角为中心,能随着摄像机视椎范围在场景平面中移动而移动,所述动态格子区域大于主角摄像机视椎在场景平面上的区域或者包含摄像机视椎在场景平面中延伸的最远距离;所述视椎所在的区域是视椎的视线椎体在场景平面上的交平面;所述场景被划分为若干静态格子,每个静态格子关联对应的模型文件,所述静态格子与动态格子大小相同;所述主角摄像机视椎在预定第一间隔的水平角度和/或预定第二间隔的垂直角度下对应的各个姿态,预先关联对应着动态格子区域中相应的动态格子;
根据主角在场景平面中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件;
根据所述模型文件对场景平面中动态格子区域内的模型进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述根据主角在场景中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件,具体包括:
根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子;
确定各个所述静态格子对应的各自模型文件。
3.根据权利要求2所述的方法,其特征在于,所述根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子,具体包括:
根据主角在场景中的位置确定当前主角摄像机视椎在水平角度和/或垂直角度对应的当前姿态;
根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子;
根据所述摄像机视椎范围内的动态格子确定在场景中动态格子覆盖的静态格子。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:为预定第一间隔的水平角度和预定第二间隔的垂直角度下对应的每个姿态,以及每个姿态关联对应的动态格子,设定姿态关键值,将所述姿态关键值缓存到数组;所述根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子,具体包括:
根据所述当前姿态确定当前姿态对应的姿态关键值;
根据所述姿态关键值查询所述数组,确定所述动态格子区域中摄像机视椎范围内的动态格子。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在场景中确定包含主角摄像机视椎范围在内的动态格子区域时,根据所述主角摄像机视椎射线起点与动态格子区域中各个动态格子之间的距离,确定各个动态格子的渲染等级,不同的所述渲染等级渲染的精细程度不同;所述根据模型文件对场景中动态格子区域内的模型进行渲染,具体包括:
根据模型文件以及所述渲染等级对场景中动态格子区域内的模型进行渲染。
6.一种场景渲染装置,其特征在于,所述装置包括:格子区域确定单元,模型文件确定单元和渲染单元,其中:
所述格子区域确定单元,用于在场景平面中确定包含主角摄像机视椎范围在内的动态格子区域,所述动态格子区域以主角为中心,能随着摄像机视椎范围在场景中移动而移动,所述动态格子区域大于主角摄像机视椎在场景平面上的区域或者包含摄像机视椎在场景平面中延伸的最远距离;所述视椎所在的区域是视椎的视线椎体在场景平面上的交平面;所述场景被划分为若干静态格子,每个静态格子关联对应的模型文件,所述静态格子与动态格子大小相同;所述主角摄像机视椎在预定第一间隔的水平角度和/或预定第二间隔的垂直角度下对应的各个姿态,预先关联对应着动态格子区域中相应的动态格子;
所述模型文件确定单元,用于根据主角在场景平面中的位置和所述动态格子区域确定用于渲染所述动态格子区域内模型的对应模型文件;
所述渲染单元,用于根据所述模型文件对场景平面中动态格子区域内的模型进行渲染。
7.根据权利要求6所述的装置,其特征在于,所述模型文件确定单元包括静态格子确定子单元和模型文件确定子单元,其中:
所述静态格子确定子单元,用于根据主角在场景中的位置和所述动态格子区域确定所述动态格子区域当前在场景中覆盖的静态格子;
所述模型文件确定子单元,用于确定各个所述静态格子对应的各自模型文件。
8.根据权利要求7所述的装置,其特征在于,所述静态格子确定子单元,用于根据主角在场景中的位置确定当前主角摄像机视椎在水平角度和/或垂直角度对应的当前姿态;以及
根据所述当前姿态以及姿态预先关联对应的动态格子,确定所述动态格子区域中摄像机视椎范围内的动态格子;以及
根据所述摄像机视椎范围内的动态格子确定在场景中动态格子覆盖的静态格子。
9.一种运行器,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至5中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111487651.4A CN114627221B (zh) | 2021-12-08 | 2021-12-08 | 一种场景渲染方法、装置及运行器、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111487651.4A CN114627221B (zh) | 2021-12-08 | 2021-12-08 | 一种场景渲染方法、装置及运行器、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114627221A CN114627221A (zh) | 2022-06-14 |
CN114627221B true CN114627221B (zh) | 2023-11-10 |
Family
ID=81898904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111487651.4A Active CN114627221B (zh) | 2021-12-08 | 2021-12-08 | 一种场景渲染方法、装置及运行器、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114627221B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130015320A (ko) * | 2011-08-03 | 2013-02-14 | (주)마이어스게임즈 | 게임엔진, 게임실행방법, 게임저작툴, 및 이들의 기록매체 |
US9519986B1 (en) * | 2013-06-20 | 2016-12-13 | Pixar | Using stand-in camera to determine grid for rendering an image from a virtual camera |
CN106569816A (zh) * | 2016-10-26 | 2017-04-19 | 搜游网络科技(北京)有限公司 | 一种渲染方法及装置 |
CN107705364A (zh) * | 2016-08-08 | 2018-02-16 | 国网新疆电力公司 | 一种基于三维地理信息的沉浸式虚拟展示*** |
CN109011559A (zh) * | 2018-07-26 | 2018-12-18 | 网易(杭州)网络有限公司 | 游戏中虚拟载具的控制方法、装置、设备和存储介质 |
JP6513241B1 (ja) * | 2018-01-30 | 2019-05-15 | 株式会社コロプラ | プログラム、情報処理装置、及び情報処理方法 |
CN111127615A (zh) * | 2019-12-26 | 2020-05-08 | 四川航天神坤科技有限公司 | 一种三维模型的数据调度方法、装置及电子设备 |
CN111354067A (zh) * | 2020-03-02 | 2020-06-30 | 成都偶邦智能科技有限公司 | 一种基于Unity3D引擎的多模型同屏渲染方法 |
CN112057849A (zh) * | 2020-09-15 | 2020-12-11 | 网易(杭州)网络有限公司 | 游戏场景渲染方法、装置及电子设备 |
CN112396682A (zh) * | 2020-11-17 | 2021-02-23 | 重庆市地理信息和遥感应用中心 | 一种三维场景下视觉递进的模型浏览方法 |
CN112691381A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN113457137A (zh) * | 2021-06-30 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | 游戏场景生成方法、装置、计算机设备及可读存储介质 |
CN113509721A (zh) * | 2020-06-18 | 2021-10-19 | 完美世界(北京)软件科技发展有限公司 | 阴影数据确定方法、装置、设备和可读介质 |
CN113570691A (zh) * | 2020-04-27 | 2021-10-29 | 北京蓝亚盒子科技有限公司 | 用于体素模型的存储优化方法、装置及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7872648B2 (en) * | 2007-06-14 | 2011-01-18 | Microsoft Corporation | Random-access vector graphics |
WO2018086399A1 (zh) * | 2016-11-14 | 2018-05-17 | 华为技术有限公司 | 一种图像渲染的方法、装置及vr设备 |
US10863154B2 (en) * | 2018-02-20 | 2020-12-08 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
CN109260708B (zh) * | 2018-08-24 | 2020-01-10 | 腾讯科技(深圳)有限公司 | 地图渲染方法、装置以及计算机设备 |
EP4005201A1 (en) * | 2019-07-28 | 2022-06-01 | Google LLC | Methods, systems, and media for rendering immersive video content with foveated meshes |
-
2021
- 2021-12-08 CN CN202111487651.4A patent/CN114627221B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130015320A (ko) * | 2011-08-03 | 2013-02-14 | (주)마이어스게임즈 | 게임엔진, 게임실행방법, 게임저작툴, 및 이들의 기록매체 |
US9519986B1 (en) * | 2013-06-20 | 2016-12-13 | Pixar | Using stand-in camera to determine grid for rendering an image from a virtual camera |
CN107705364A (zh) * | 2016-08-08 | 2018-02-16 | 国网新疆电力公司 | 一种基于三维地理信息的沉浸式虚拟展示*** |
CN106569816A (zh) * | 2016-10-26 | 2017-04-19 | 搜游网络科技(北京)有限公司 | 一种渲染方法及装置 |
JP6513241B1 (ja) * | 2018-01-30 | 2019-05-15 | 株式会社コロプラ | プログラム、情報処理装置、及び情報処理方法 |
CN109011559A (zh) * | 2018-07-26 | 2018-12-18 | 网易(杭州)网络有限公司 | 游戏中虚拟载具的控制方法、装置、设备和存储介质 |
CN111127615A (zh) * | 2019-12-26 | 2020-05-08 | 四川航天神坤科技有限公司 | 一种三维模型的数据调度方法、装置及电子设备 |
CN111354067A (zh) * | 2020-03-02 | 2020-06-30 | 成都偶邦智能科技有限公司 | 一种基于Unity3D引擎的多模型同屏渲染方法 |
CN113570691A (zh) * | 2020-04-27 | 2021-10-29 | 北京蓝亚盒子科技有限公司 | 用于体素模型的存储优化方法、装置及电子设备 |
CN113509721A (zh) * | 2020-06-18 | 2021-10-19 | 完美世界(北京)软件科技发展有限公司 | 阴影数据确定方法、装置、设备和可读介质 |
CN112057849A (zh) * | 2020-09-15 | 2020-12-11 | 网易(杭州)网络有限公司 | 游戏场景渲染方法、装置及电子设备 |
CN112396682A (zh) * | 2020-11-17 | 2021-02-23 | 重庆市地理信息和遥感应用中心 | 一种三维场景下视觉递进的模型浏览方法 |
CN112691381A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN113457137A (zh) * | 2021-06-30 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | 游戏场景生成方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114627221A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8970580B2 (en) | Method, apparatus and computer-readable medium rendering three-dimensional (3D) graphics | |
US9013479B2 (en) | Apparatus and method for tile-based rendering | |
WO2008067483A1 (en) | Ray tracing a three dimensional scene using a grid | |
CN105096375B (zh) | 图像处理方法和设备 | |
US9390545B2 (en) | Apparatus and method for traversing hierarchical acceleration structure | |
CN114529658A (zh) | 一种图形渲染方法及其相关设备 | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
US20160005191A1 (en) | Mipmap generation method and apparatus | |
US10762594B2 (en) | Optimized memory access for reconstructing a three dimensional shape of an object by visual hull | |
CN114627221B (zh) | 一种场景渲染方法、装置及运行器、可读存储介质 | |
US20140146042A1 (en) | Apparatus and method for processing primitive in three-dimensional (3d) graphics rendering system | |
US11908079B2 (en) | Variable rate tessellation | |
CN114596195A (zh) | 一种地形数据处理方法、***、装置及计算机存储介质 | |
GB2605360A (en) | Method, Apparatus and Storage Medium for Realizing Geometric Viewing Frustum of OCC Tree in Smart City | |
CN114418829A (zh) | 静态场景遮挡处理方法、装置、电子设备及可读介质 | |
KR102306774B1 (ko) | 영상 처리 방법 및 장치 | |
CN116188552B (zh) | 基于区域的深度测试方法、装置、设备及存储介质 | |
US11380047B2 (en) | Methods and apparatus for order-independent occlusion computations | |
US20230298261A1 (en) | Distributed visibility stream generation for coarse grain binning | |
CN117076405A (zh) | 一种地理信息数据的动态显示方法以及相关设备 | |
KR20230028373A (ko) | 비닝 하드웨어에서 세분화 재생 제어 | |
CN117453095A (zh) | 一种三维对象选择方法、装置、介质和设备 | |
TW202217745A (zh) | 用於擴展式分箱的可配置圍邊支援 | |
CN116778069A (zh) | 一种立体图形渲染方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |