[发明专利]一种体素化游戏世界的渲染方法有效
申请号: | 201510836751.1 | 申请日: | 2015-11-26 |
公开(公告)号: | CN105513118B | 公开(公告)日: | 2018-07-10 |
发明(设计)人: | 李杨 | 申请(专利权)人: | 北京像素软件科技股份有限公司 |
主分类号: | A63F13/52 | 分类号: | A63F13/52;G06T15/00 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆;胡彬 |
地址: | 102200 北京市昌平区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 顶点位置 立体像素 渲染 外部面 外部 缓冲区 游戏世界 种体 管线压力 继续执行 减小 返回 | ||
本发明公开了一种体素化游戏世界的渲染方法。所述方法,包括:步骤1、判断第i个立体像素是否为外部立体像素,若是,执行步骤2,否则,i=i+1,直至i=N,N为立体像素总个数,返回执行步骤1;步骤2、计算所述第i个立体像素所有外部面的顶点位置,并将所述顶点位置存入顶点缓冲区,继续执行步骤3;步骤3、根据所述顶点缓冲区的顶点位置,渲染所述外部面。本发明提供的技术方案,通过判断外部立体像素的外部面并计算所有外部面的顶点位置,根据顶点位置只渲染外部面,减小了渲染管线压力,提高了渲染效率。
技术领域
本发明实施例涉及计算机图形技术领域,尤其涉及一种体素化游戏世界的渲染方法。
背景技术
三维游戏中构建虚拟游戏世界普遍采用多边形网格建立模型,而体素风格的游戏世界则通过立体像素构建游戏世界。立体像素(以下简称“体素”)包含了关于对象形状的重要信息,体素数据结构简单均匀,相对于网格建立的模型更易修改,其修改更接近于现实世界的情况,即添加立体物或者在另一个立体物中减去立体物。体素化的游戏世界的场景具有两个对现代游戏愈加重要的特点,即可破坏性与可创造性。体素风格的游戏,例如《我的世界》。
体素化游戏世界构建过程中,对每个立体像素进行标识,例如,若立体像素被标识为0,则表示该立体像素的每个面都位于内部,不可见;若立体像素被标识为1,则表示该立体像素有一个面或者多个面是可见的。
渲染时只渲染二进制标识位为1的立体像素,若某立体像素有k(k<8)个面是可见的,而其他(8-k)个面都不可见,现有技术中,在渲染k个可见面的同时,其他(8-k)个面也被渲染,延长了渲染时间,加大了渲染管线压力,降低了渲染效率。
发明内容
本发明提供一种体素化游戏世界的渲染方法,克服了现有技术中渲染外部立体像素时渲染外部立体像素所有面,造成的渲染管线压力大以及渲染效率低的缺陷。
本发明公开了一种体素化游戏世界的渲染方法,包括:
步骤1、判断第i个立体像素是否为外部立体像素,若是,执行步骤2,否则,i=i+1,直至i=N,N为立体像素总个数,返回执行步骤1;
步骤2、计算所述第i个立体像素所有外部面的顶点位置,并将所述顶点位置存入顶点缓冲区,继续执行步骤3;
步骤3、根据所述顶点缓冲区的顶点位置,渲染所述外部面。
进一步地,当所述立体像素面的相邻位置存储有另一立体像素时,所述立体像素面为内部面,否则所述立体像素面为外部面,所述内部面和外部面由第一标识进行标记。
进一步地,当所述立体像素面全部为内部面时,所述立体像素为内部立体像素,当所述立体像素面中存在至少一个外部面时,所述立体像素为外部立体像素,所述内部立体像素和外部立体像素由第二标识进行标记。
进一步地,所述第一标识为一个比特的二进制数;所述第二标识为一个比特的二进制数。
进一步地,步骤2、计算所述第i个立体像素所有外部面的顶点位置,并将所述顶点位置存入顶点缓冲区,具体包括:
步骤20、初始化所述第i个立体像素的面编号j=0;
步骤21、判断所述第i个立体像素的面编号j是否小于立体像素面总数M,若是,执行步骤22,否则,执行所述步骤3;
步骤22、判断所述第i个立体像素的第j个立体像素的面是否为外部面,若是,执行步骤23,否则,执行步骤24;
步骤23、计算所述第i个立体像素的第j个立体像素面的顶点位置,并将所述顶点位置存入所述顶点缓冲区,继续执行步骤24;
步骤24、所述立体像素面编号j=j+1,继续执行步骤21。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京像素软件科技股份有限公司,未经北京像素软件科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510836751.1/2.html,转载请声明来源钻瓜专利网。