CN106345118B - 一种渲染方法及装置 - Google Patents
一种渲染方法及装置 Download PDFInfo
- Publication number
- CN106345118B CN106345118B CN201610723529.5A CN201610723529A CN106345118B CN 106345118 B CN106345118 B CN 106345118B CN 201610723529 A CN201610723529 A CN 201610723529A CN 106345118 B CN106345118 B CN 106345118B
- Authority
- CN
- China
- Prior art keywords
- piecemeal
- clicked
- rendering
- rendered
- engine
- 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
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8082—Virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种渲染方法,包括如下步骤:获取当前显示画面上的所有对象,并将获取的所有对象根据显示层次关系排列在对象列表中;监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象;当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块;根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧;调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理。本发明还公开了一种渲染装置,可在2D游戏中实现3D对象的分块战斗。
Description
技术领域
本发明涉及游戏渲染领域,尤其涉及一种渲染方法及装置。
背景技术
在游戏中,在设计玩家与BOSS战斗时,常常采用分块战斗的玩法。在分块战斗时,需对被点击的分块进行特效显示,以表示分块正在被攻击。常见的玩法设计有如下几种:1、BOSS仅有一些特定分块可以被攻击,此时,玩家需先攻击这些分块,直到这些分块被消灭后才能攻击其他部分;2、通过攻击BOSS的特定的分块来降低BOSS的威力,例如,当消灭到BOSS的手部分块可以降低BOSS的攻击力或使得BOSS无法释放某些技能;3、在攻击特定分块时可以对BOSS造成更大的伤害。
对于2D游戏而言,分块技术比较常见的是用镂空的方式渲染BOSS的各个部分,如装备和衣服,然后再和人物本体组合拼接。
发明内容
由于2D游戏的分块设置难度较大,需要匹配不同分块对应的资源的动作和镂空位置以保证各个资源完全同步,程序方面在合成时也难以区分。而在3D游戏中,分块技术的设置较为容易,只需要对BOSS的3D模型进行子模块编辑,子模块更换或子模块贴图更换就可以实现分块的逻辑编辑。因而在以2D渲染为主的2D游戏中加入3D游戏的分块技术,可使美术和程序的实现比较简单,同时也可以省去繁琐的镂空和匹配2D图像的工作。
针对上述问题,本发明的目的在于提供一种渲染方法,包括如下步骤:
获取当前显示画面上的所有对象;其中,所述的所有对象包括至少一个2D对象和至少一个3D对象,所述的所有对象根据显示层次关系排列在对象列表中;且所述3D对象包括至少一个被注册了回调函数的分块;
监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象;
当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块;
根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧;
调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理。
优选地,所述监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象,具体包括:
监听用户的点击操作,并获取所述点击操作的坐标;
当判断所述坐标位于一个2D对象的像素包围盒中时,对所述2D对象进行标记;
将所述坐标转化为投影平面坐标,并以3D引擎中的虚拟摄像机位置为原点向所述投影平面坐标做射线,对所述射线与3D世界内的3D对象做求交操作,并对与所述射线具有相交关系的3D对象进行标记;
比较被标记的2D对象和/或被标记的3D对象的显示层次,并将所述显示层次处于最上层的对象设置为被点击的对象。
优选地,所述当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象的被点击的分块,具体为:
当判断被点击的对象为3D对象时,获取与所述射线有相交关系的面片所在的分块,并确定所述分块为被点击的分块。
优选地,所述根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧具体为:
根据所述对象的显示层次关系确定当前渲染的对象;
当判断当前要渲染的对象为2D对象时,将所述2D对象发送给2D引擎进行渲染,并将由所述2D引擎渲染得到的2D资源绘制在预先申请的与当前显示画面的大小对应的系统内存中;
当判断当前要渲染的对象为3D对象时,将所述3D对象发送给3D引擎进行渲染得到3D资源,并在确定预先申请的与当前显示画面的大小对应的系统内存中存储有由2D对象渲染得到的2D资源时,将所述2D资源及所述3D资源发送给显卡进行渲染,并再次申请与当前显示画面的大小对应的系统内存;
在完成对所述对象列表中的所有对象的渲染后,生成发送至显示屏的画面帧。
优选地,在获取当前显示画面上的所有对象之前,还包括:
在2d引擎中引入3d引擎的渲染和消息处理机制,并将3d引擎与当前显示画面的窗口关联,以创建得到2d渲染和3d渲染的混合环境及将3d引擎的渲染和消息处理循环机制加入到2D游戏逻辑的主循环机制当中。
本发明还提供一种渲染装置,包括:
对象获取单元,用于获取当前显示画面上的所有对象;其中,所述的所有对象包括至少一个2D对象和至少一个3D对象,所述的所有对象根据显示层次关系排列在对象列表中;且所述3D对象包括至少一个被注册了回调函数的分块;
对象监听单元,用于监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象;
分块确定单元,用于当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块;
混合渲染单元,用于根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧;
回调函数调用单元,用于调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理。
优选地,所述对象监听单元具体包括:
坐标监听模块,用于监听用户的点击操作,并获取所述点击操作的坐标;
2D点击判断模块,用于当判断所述坐标位于一个2D对象的像素包围盒中时,对所述2D对象进行标记;
3D点击判断模块,用于将所述坐标转化为投影平面坐标,并以3D引擎中的虚拟摄像机位置为原点向所述投影平面坐标做射线,对所述射线与3D世界内的3D对象做求交操作,并对与所述射线具有相交关系的3D对象进行标记;
比较模块,用于比较被标记的2D对象和/或被标记的3D对象的显示层次,并将所述显示层次处于最上层的对象设置为被点击的对象。
优选地,所述分块确定单元具体用于,当判断被点击的对象为3D对象时,获取与所述射线有相交关系的面片所在的分块,并确定所述分块为被点击的分块。
优选地,所述混合渲染单元具体包括:
对象确定模块,用于根据所述对象的显示层次关系确定当前渲染的对象;
2D对象渲染模块,用于当判断当前要渲染的对象为2D对象时,将所述2D对象发送给2D引擎进行渲染,并将由所述2D引擎渲染得到的2D资源绘制在预先申请的与当前显示画面的大小对应的系统内存中;
3D对象渲染模块,用于当判断当前要渲染的对象为3D对象时,将所述3D对象发送给3D引擎进行渲染得到3D资源,并在确定预先申请的与当前显示画面的大小对应的系统内存中存储有由2D对象渲染得到的2D资源时,将所述2D资源及所述3D资源发送给显卡进行渲染,并再次申请与当前显示画面的大小对应的系统内存;
画面传输模块,用于在完成对所述对象列表中的所有对象的渲染后,生成发送至显示屏的画面帧。
优选地,还包括:
环境创建单元,用于在2d引擎中引入3d引擎的渲染和消息处理机制,并将3d引擎与当前显示画面的窗口关联,以创建得到2d渲染和3d渲染的混合环境及将3d引擎的渲染和消息处理循环机制加入到2D游戏逻辑的主循环机制当中。
本发明实施例提供的渲染方法及装置,通过在2D游戏中引入3D对象的分块方法,并提供基于2D、3D的混合渲染机制和消息处理机制,从而基于3D对象的分块战斗模式也适用于2D游戏中,使得以2D渲染为主的2D游戏中玩家操控人物或者NPC的有涉及到分块逻辑的玩法,美术和程序的实现比较简单,并省去繁琐的镂空和匹配2D图像的工作。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的渲染方法的流程示意图。
图2是本发明实施例提供的当前显示画面的示意图。
图3是本发明实施例提供的对3D对象进行分块的示意图。
图4是本发明实施例提供的对象管理层次结构图。
图5是本发明实施例提供的消息处理机制图。
图6是本发明实施例提供的渲染装置的结构示意图。
图7是图6的对象监听单元的结构示意图。
图8是图6的混合渲染单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供了一种渲染方法,包括如下步骤:
S101,获取当前显示画面上的所有对象,并将获取的所有对象根据显示层次关系排列在对象列表中;其中,所述的所有对象包括至少一个2D对象和至少一个3D对象,且所述3D对象包括至少一个被注册了回调函数的分块。
如图2所示,在本发明实施例中,当前显示画面包括了至少一个2D对象02(所述2D对象可为游戏中NPC,玩家控制的游戏觉得,游戏中的场景画面等)及至少一个3D对象01(特别的,为游戏中的BOSS),其中,这些对象具有不同的显示层次关系,且这些对象根据显示层次关系依次排列在对象列表中。例如,对于一般的2D游戏而言,对象的显示层次是以屏幕中的显示位置来排序的,在屏幕中显示较上端的对象为离玩家视角比较远的对象,所以层次较低,要在离玩家近的对象的下方渲染。
在本发明实例中,为了实现BOSS的分块战斗,在制作3D对象时,需先对所述3D对象进行分块,并为每个分块注册一个回调函数,当所述3D对象被点击时,调用所述回调函数,以使所述分块根据所述回调函数的定义进行特殊显示,如可显示成红色或其他变色处理,使得用户可知道其正在攻击的部位。
如图3所示,一个3D对象是由多个面片组成,每个面片包括3个顶点,在进行编辑时,可选中需要分块的面片,并将这些面片编辑成一个子模块组,从而得到一个分块。例如,可对所述3D模块的左腿、右腿、武器、手部、身体、头部等分别进行分块。当然,将一个3D对象具体分为几块以及将哪些部分分为一块可根据实际的需要及战斗设定进行设置,本发明不做具体限定。
如图4所示,在本发明实施例中,对于需要处理分块的3D对象,在对象层次通过对象的id来管理,分块层次通过分块的id来管理,事件响应函数由事件类型标示管理(例如:鼠标双击,鼠标单击)。
S102,监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象。
如图5所示,在本发明实施例中,为了确定用户的点击操作,需先创建2d和3d混合的环境,并在2d引擎中引入3d引擎的渲染和消息处理机制。其中,2d引擎中通过获取鼠标的点击坐标的消息信息来绘制2d对象;将3d引擎与当前显示画面的窗口关联,获得窗口的点击信息,并处理点击信息。
在本发明实施例中,将3d引擎的渲染和消息处理循环加入到游戏逻辑的主循环之中,在消息处理时,先处理2d引擎的消息,然后处理3d引擎的消息,通过判断被点击到的2d、3d对象的层次关系来决定响应哪一个对象的点击事件。
具体地,所述步骤S102可包括如下步骤:
S1021,监听用户的点击操作,并获取所述点击操作的坐标。
在本发明实施例中,当用户通过鼠标或键盘或其他外部输入设备在所述当前显示画面上进行点击操作时,可获取所述点击操作的坐标。
S1022,当判断所述坐标位于一个2D对象的像素包围盒中时,对所述2D对象进行标记。
在本发明实施例中,可通过判定包围盒(包围盒的含义是指:图片在读取时会获得图片的长宽,在绘制时会知道图片的位置)的方式来判断鼠标的坐标是否在2D对象的像素包围中,如果坐标在某个2D对象的包围盒中,则判定该2D对象被点击到,否则为非被点击。
S1023,将所述坐标转化为投影平面坐标,并以3D引擎中的虚拟摄像机位置为原点向所述投影平面坐标做射线,对所述射线与3D世界内的3D对象做求交操作,并对与所述射线具有相交关系的3D对象进行标记。
S1024,比较被标记的2D对象和/或被标记的3D对象的显示层次,并将所述显示层次处于最上层的对象设置为被点击的对象。
S103,当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块。
具体地,由于所述3D对象是由一系列面片组成的,因此当判断被点击的对象为3D对象时,可通过获取与所述射线有相交关系的面片所在的分块,来确定所述3D对象被点击的分块。
S104,根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧。
具体地,
S1041,根据所述对象的显示层次关系确定当前渲染的对象。
S1042,当判断当前要渲染的对象为2D对象时,将所述2D对象发送给2D引擎进行渲染,并将由所述2D引擎渲染得到的2D资源绘制在预先申请的与当前显示画面的大小对应的系统内存中。
S1043,当判断当前要渲染的对象为3D对象时,将所述3D对象发送给3D引擎进行渲染得到3D资源,并在确定预先申请的与当前显示画面的大小对应的系统内存中存储有由2D对象渲染得到的2D资源时,将所述2D资源及所述3D资源发送给显卡进行渲染,并再次申请与当前显示画面的大小对应的系统内存。
S1044,在完成对所述对象列表中的所有对象的渲染后,生成发送至显示屏的画面帧。
具体地,首先申请和当前显示画面大小一样的内存空间用于存储2D引擎渲染的2D对象,以将渲染得到的2D资源绘制在该内存空间中。接着按照对象列表中的对象的顺序依次提交绘制,有两种情况:1、当提交的是2D对象时:绘制在当前申请的内存空间中;2、当提交的是3D对象:将当前内存空间中的2D资源提交3D引擎,然后提交3D对象给3D引擎进行渲染得到3D资源,并由显卡对2D资源和3D资源进行渲染,接着生成新的内存空间用于下一层2D对象的渲染绘制。3、重复步骤1,2直到对象列表中对象均被绘制。
S105,调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理。
在本发明实施例中,在完成渲染后,调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理,使得所述分块特殊显示,从而使得玩家可以达到分块攻击。
综上所述,本发明实施例提供的渲染方法,通过在2D游戏中引入3D对象的分块方法,并提供基于2D、3D的混合渲染机制和消息处理机制,从而基于3D的分块战斗模式也适用于2D游戏中,使得以2D渲染为主的游戏中玩家操控人物或者NPC的有涉及到分块逻辑的玩法,美术和程序的实现比较简单,并省去繁琐的镂空和匹配2D图像的工作。
请一并参阅图6,本发明还提供一种渲染装置,包括:
对象获取单元10,用于获取当前显示画面上的所有对象,并将获取的所有对象根据显示层次关系排列在对象列表中;其中,所述的所有对象包括至少一个2D对象和至少一个3D对象,且所述3D对象包括至少一个被注册了回调函数的分块。
对象监听单元20,用于监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象。
分块确定单元30,用于当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块。
混合渲染单元40,用于根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧。
回调函数调用单元50,用于调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理。
优选地,请一并参阅图7,所述对象监听单元20具体包括:
坐标监听模块21,用于监听用户的点击操作,并获取所述点击操作的坐标;
2D点击判断模块22,用于当判断所述坐标位于一个2D对象的像素包围盒中时,对所述2D对象进行标记;
3D点击判断模块23,用于将所述坐标转化为投影平面坐标,并以3D引擎中的虚拟摄像机位置为原点向所述投影平面坐标做射线,对所述射线与3D世界内的3D对象做求交操作,并对与所述射线具有相交关系的3D对象进行标记;
比较单元24,用于比较被标记的2D对象和/或被标记的3D对象的显示层次,并将所述显示层次处于最上层的对象设置为被点击的对象。
优选地,所述分块确定单元30具体用于,当判断被点击的对象为3D对象时,获取与所述射线有相交关系的面片所在的分块,并确定所述分块为被点击的分块。
优选地,请一并参阅图8,所述混合渲染单元40具体包括:
对象确定模块41,用于根据所述对象的显示层次关系确定当前渲染的对象;
2D对象渲染模块42,用于当判断当前要渲染的对象为2D对象时,将所述2D对象发送给2D引擎进行渲染,并将由所述2D引擎渲染得到的2D资源绘制在预先申请的与当前显示画面的大小对应的系统内存中;
3D对象渲染模块43,用于当判断当前要渲染的对象为3D对象时,将所述3D对象发送给3D引擎进行渲染得到3D资源,并在确定预先申请的与当前显示画面的大小对应的系统内存中存储有由2D对象渲染得到的2D资源时,将所述2D资源及所述3D资源发送给显卡进行渲染,并再次申请与当前显示画面的大小对应的系统内存;
画面传输模块44,用于在完成对所述对象列表中的所有对象的渲染后,生成发送至显示屏的画面帧。
优选地,所述渲染装置100还包括:
环境创建单元60,用于在2d引擎中引入3d引擎的渲染和消息处理机制,并将3d引擎与当前显示画面的窗口关联,以创建得到2d渲染和3d渲染的混合环境及将3d引擎的渲染和消息处理循环机制加入到2D游戏逻辑的主循环机制当中。
综上所述,本发明实施例提供的渲染装置100,通过在2D游戏中引入3D对象的分块方法,并提供基于2D、3D的混合渲染机制和消息处理机制,从而基于3D的分块战斗模式也适用于2D游戏中,使得以2D渲染为主的游戏中玩家操控人物或者NPC的有涉及到分块逻辑的玩法,美术和程序的实现比较简单,并省去繁琐的镂空和匹配2D图像的工作。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (10)
1.一种渲染方法,其特征在于,包括如下步骤:
获取当前显示画面上的所有对象,并将获取的所有对象根据显示层次关系排列在对象列表中;其中,所述的所有对象包括至少一个2D对象和至少一个3D对象,且所述3D对象包括至少一个被注册了回调函数的分块;
监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象;
当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块;
根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧;
当所述被点击的分块为被注册了回调函数的分块时,调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理,以使所述被点击的分块根据所述回调函数的定义在所述画面帧中进行特殊显示。
2.根据权利要求1所述的渲染方法,其特征在于,所述监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象,具体包括:
监听用户的点击操作,并获取所述点击操作的坐标;
当判断所述坐标位于一个2D对象的像素包围盒中时,对所述2D对象进行标记;
将所述坐标转化为投影平面坐标,并以3D引擎中的虚拟摄像机位置为原点向所述投影平面坐标做射线,对所述射线与3D世界内的3D对象做求交操作,并对与所述射线具有相交关系的3D对象进行标记;
比较被标记的2D对象和/或被标记的3D对象的显示层次,并将所述显示层次处于最上层的对象设置为被点击的对象。
3.根据权利要求2所述的渲染方法,其特征在于,所述当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象的被点击的分块,具体为:
当判断被点击的对象为3D对象时,获取与所述射线有相交关系的面片所在的分块,并确定所述分块为被点击的分块。
4.根据权利要求1所述的渲染方法,其特征在于,所述根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧具体为:
根据所述对象的显示层次关系确定当前渲染的对象;
当判断当前要渲染的对象为2D对象时,将所述2D对象发送给2D引擎进行渲染,并将由所述2D引擎渲染得到的2D资源绘制在预先申请的与当前显示画面的大小对应的系统内存中;
当判断当前要渲染的对象为3D对象时,将所述3D对象发送给3D引擎进行渲染得到3D资源,并在确定预先申请的与当前显示画面的大小对应的系统内存中存储有由2D对象渲染得到的2D资源时,将所述2D资源及所述3D资源发送给显卡进行渲染,并再次申请与当前显示画面的大小对应的系统内存;
在完成对所述对象列表中的所有对象的渲染后,生成发送至显示屏的画面帧。
5.根据权利要求1至4任意一项所述的渲染方法,其特征在于,在获取当前显示画面上的所有对象之前,还包括:
在2d引擎中引入3d引擎的渲染和消息处理机制,并将3d引擎与当前显示画面的窗口关联,以创建得到2d渲染和3d渲染的混合环境及将3d引擎的渲染和消息处理循环机制加入到2D游戏逻辑的主循环机制当中。
6.一种渲染装置,其特征在于,包括:
对象获取单元,用于获取当前显示画面上的所有对象,并将获取的所有对象根据显示层次关系排列在对象列表中;其中,所述的所有对象包括至少一个2D对象和至少一个3D对象,且所述3D对象包括至少一个被注册了回调函数的分块;
对象监听单元,用于监听用户的点击操作,并根据所述对象的显示层次及所述点击操作的坐标确定被点击的对象;
分块确定单元,用于当判断被点击的对象为3D对象时,根据所述坐标确定所述3D对象被点击的分块;
混合渲染单元,用于根据所述显示层次关系对所述对象列表内的对象进行渲染,以生成发送至显示屏的画面帧;
回调函数调用单元,用于当所述被点击的分块为被注册了回调函数的分块时,调用为所述被点击的分块注册的回调函数对所述被点击的分块进行处理,以使所述被点击的分块根据所述回调函数的定义在所述画面帧中进行特殊显示。
7.根据权利要求6所述的渲染装置,其特征在于,所述对象监听单元具体包括:
坐标监听模块,用于监听用户的点击操作,并获取所述点击操作的坐标;
2D点击判断模块,用于当判断所述坐标位于一个2D对象的像素包围盒中时,对所述2D对象进行标记;
3D点击判断模块,用于将所述坐标转化为投影平面坐标,并以3D引擎中的虚拟摄像机位置为原点向所述投影平面坐标做射线,对所述射线与3D世界内的3D对象做求交操作,并对与所述射线具有相交关系的3D对象进行标记;
比较被标记的2D对象和/或被标记的3D对象的显示层次,并将所述显示层次处于最上层的对象设置为被点击的对象。
8.根据权利要求7所述的渲染装置,其特征在于,所述分块确定单元具体用于,当判断被点击的对象为3D对象时,获取与所述射线有相交关系的面片所在的分块,并确定所述分块为被点击的分块。
9.根据权利要求6所述的渲染装置,其特征在于,所述混合渲染单元具体包括:
对象确定模块,用于根据所述对象的显示层次关系确定当前渲染的对象;
2D对象渲染模块,用于当判断当前要渲染的对象为2D对象时,将所述2D对象发送给2D引擎进行渲染,并将由所述2D引擎渲染得到的2D资源绘制在预先申请的与当前显示画面的大小对应的系统内存中;
3D对象渲染模块,用于当判断当前要渲染的对象为3D对象时,将所述3D对象发送给3D引擎进行渲染得到3D资源,并在确定预先申请的与当前显示画面的大小对应的系统内存中存储有由2D对象渲染得到的2D资源时,将所述2D资源及所述3D资源发送给显卡进行渲染,并再次申请与当前显示画面的大小对应的系统内存;
画面传输模块,用于在完成对所述对象列表中的所有对象的渲染后,生成发送至显示屏的画面帧。
10.根据权利要求6至9任意一项所述的渲染装置,其特征在于,还包括:
环境创建单元,用于在2d引擎中引入3d引擎的渲染和消息处理机制,并将3d引擎与当前显示画面的窗口关联,以创建得到2d渲染和3d渲染的混合环境及将3d引擎的渲染和消息处理循环机制加入到2D游戏逻辑的主循环机制当中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610723529.5A CN106345118B (zh) | 2016-08-24 | 2016-08-24 | 一种渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610723529.5A CN106345118B (zh) | 2016-08-24 | 2016-08-24 | 一种渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106345118A CN106345118A (zh) | 2017-01-25 |
CN106345118B true CN106345118B (zh) | 2019-07-30 |
Family
ID=57855808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610723529.5A Active CN106345118B (zh) | 2016-08-24 | 2016-08-24 | 一种渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106345118B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108553899A (zh) * | 2018-03-26 | 2018-09-21 | 北京幻灵科技有限责任公司 | 一种即点即玩游戏的开发装置及其方法 |
CN108525304B (zh) * | 2018-04-16 | 2021-06-22 | 网易(杭州)网络有限公司 | 一种图像分析方法、装置、存储介质及电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103052933A (zh) * | 2010-07-30 | 2013-04-17 | 欧特克公司 | 多尺度三维取向 |
CN103106640A (zh) * | 2000-03-31 | 2013-05-15 | 英特尔公司 | 分块的图形结构 |
CN103559730A (zh) * | 2013-11-20 | 2014-02-05 | 广州博冠信息科技有限公司 | 一种渲染方法及装置 |
CN103686140A (zh) * | 2013-12-30 | 2014-03-26 | 张瀚宇 | 一种基于预定场地的三维物体的投影制作方法 |
US8711144B2 (en) * | 2006-08-01 | 2014-04-29 | Siemens Medical Solutions Usa, Inc. | Perception-based artifact quantification for volume rendering |
CN104637089A (zh) * | 2015-02-15 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 三维模型数据处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020057385A1 (en) * | 2000-07-14 | 2002-05-16 | Mingui Sun | Data processing for fast transmission of webpages |
-
2016
- 2016-08-24 CN CN201610723529.5A patent/CN106345118B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106640A (zh) * | 2000-03-31 | 2013-05-15 | 英特尔公司 | 分块的图形结构 |
US8711144B2 (en) * | 2006-08-01 | 2014-04-29 | Siemens Medical Solutions Usa, Inc. | Perception-based artifact quantification for volume rendering |
CN103052933A (zh) * | 2010-07-30 | 2013-04-17 | 欧特克公司 | 多尺度三维取向 |
CN103559730A (zh) * | 2013-11-20 | 2014-02-05 | 广州博冠信息科技有限公司 | 一种渲染方法及装置 |
CN103686140A (zh) * | 2013-12-30 | 2014-03-26 | 张瀚宇 | 一种基于预定场地的三维物体的投影制作方法 |
CN104637089A (zh) * | 2015-02-15 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 三维模型数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106345118A (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105556565B (zh) | 片段着色器执行顶点着色器计算 | |
US8803879B1 (en) | Omnidirectional shadow texture mapping | |
CN105556571B (zh) | 使用计算着色器作为顶点着色器的前端 | |
CN104870063B (zh) | 用于云处理和叠加远程处理应用的流式视频帧上的内容的系统和方法 | |
US11442798B2 (en) | Software reliability simulation analysis method based on virtual reality and complex network | |
EP2469474A1 (en) | Creation of a playable scene with an authoring system | |
CN112561786A (zh) | 基于图像卡通化的在线直播方法、装置和电子设备 | |
CN106345118B (zh) | 一种渲染方法及装置 | |
CN108404414B (zh) | 图片的融合方法、装置、存储介质、处理器及终端 | |
CN109840946A (zh) | 虚拟对象显示方法及装置 | |
JPWO2015011741A1 (ja) | 画像処理プログラム、サーバ装置、画像処理システムおよび画像処理方法 | |
CN111097169B (zh) | 一种游戏图像的处理方法、装置、设备及存储介质 | |
CN113706504B (zh) | 一种残影处理方法、装置、存储介质及电子设备 | |
CN112987915B (zh) | 基于ast的应用于vr会议协同白板编辑任务的方法 | |
US10099135B2 (en) | Relative inverse kinematics graphical user interface tool | |
CN111167119B (zh) | 一种游戏开发展示方法、装置、设备及存储介质 | |
CN104778085A (zh) | 一种手游的游戏对战处理方法及装置 | |
CN108989268A (zh) | 会话展示方法、装置和计算机设备 | |
Wicke et al. | CSG tree rendering for point-sampled objects | |
WO2023024078A1 (zh) | 一种虚拟对象的控制方法、装置、电子设备及存储介质 | |
CN108986228A (zh) | 用于虚拟现实中界面显示的方法及装置 | |
JP2004073241A (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
Geris et al. | Balancing performance and comfort in virtual reality: A study of FPS, latency, and batch values | |
CN115705668A (zh) | 一种视图绘制的方法、装置及存储介质 | |
CN113350787A (zh) | 游戏角色渲染方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |