一种在三维场景中渲染文字的方法技术

技术编号:15392629 阅读:87 留言:0更新日期:2017-05-19 05:23
本发明专利技术涉及计算机技术领域,公开了一种在三维场景中渲染文字的方法,包括以下步骤:(1)将字符串分拆成字符;(2)为每个字符构建网络模型;(3)为每个字符生成对应的纹理贴图;(4)将纹理贴图与网络模型一一对应;(5)提交GPU渲染。本发明专利技术解决了在三维场景中任意位置渲染文字的需求。通过在三维场景中构建网格使文字成为模型,并给模型对应纹理,使文字更简便地可以直接使用GPU渲染固定管线进行渲染。并对所有文字纹理进行了合并工作,使纹理可以得到复用,减少CPU向GPU提交纹理数据的次数,降低了渲染的时间消耗,使文字渲染更高效。

A method of rendering text in a three-dimensional scene

The present invention relates to the field of computer technology, and discloses a method for rendering in 3D scene text, which comprises the following steps: (1) will be split into a character string; (2) to construct the network model for each character; (3) to generate the corresponding texture of each character; (4) the texture mapping and network model correspondence; (5) submitted GPU rendering. The invention solves the requirement of rendering characters at any position in the three-dimensional scene. By building the mesh in the 3D scene, the text becomes the model, and the texture is rendered to the model so that the text can be rendered directly using the GPU rendering fixed pipeline directly. And all the text texture is merged, so that the texture can be reused, reducing the number of CPU to submit the texture data to GPU, reducing the time consumption of rendering, rendering text rendering more efficient.

【技术实现步骤摘要】
一种在三维场景中渲染文字的方法
本专利技术涉及计算机
,特别是涉及一种在三维场景中渲染文字的方法。
技术介绍
三维模型广泛用任何使用三维图形的地方。实际上,它们的应用早于个人电脑上三维图形的流行。许多计算机游戏使用预先渲染的三维模型图像作为sprite用于实时计算机渲染。现在,三维模型已经用于各种不同的领域。在医疗行业使用它们制作器官的精确模型;电影行业将它们用于活动的人物、物体以及现实电影;视频游戏产业将它们作为计算机与视频游戏中的资源;在科学领域将它们作为化合物的精确模型;建筑业将它们用来展示提议的建筑物或者风景表现;工程界将它们用于设计新设备、交通工具、结构以及其它应用领域;在最近几十年,地球科学领域开始构建三维地质模型。三维模型本身是不可见的,可以根据简单的线框在不同细节层次渲染的或者用不同方法进行明暗描绘(shaded)。但是,许多三维模型使用纹理进行覆盖,将纹理排列放到三维模型上的过程称作纹理映射。纹理就是一个图像,但是它可以让模型更加细致并且看起来更加真实。三维文字渲染在三维模型中也有广泛的应用,但是三维引擎中原有的文字渲染方式只能渲染在屏幕固定位置上,无法达到在三维场景内任意位置渲染的要求。为了实现在三维场景中任意位置渲染文字,在三维场景中构建网格建立模型,生成对应文字的纹理图片,把纹理与模型结合,使用渲染模型的方式(通过GPU固定管线提交纹理,提交对应的顶点与纹理坐标)来渲染文字。并且考虑内存的消耗与渲染的压力,需要对文字纹理实行最大程度的复用。
技术实现思路
本专利技术针对现有技术中硬件要求高、渲染效率低的缺点,提供了一种在三维场景中渲染文字的方法。为了解决上述技术问题,本专利技术通过下述技术方案得以解决。一种在三维场景中渲染文字的方法,包括如下步骤:(1)获取到字符串后,将字符串拆分成一个个字符,然后拆分后的字符按照实体字符和格式字符分成两类,格式字符用于格式对齐,实体字符用于渲染;(2)将步骤(1)拆分字符串中的每一个实体字符为一个独立单元,通过获取的三维空间信息中,包括的文字渲染的中心点坐标,根据中心点坐标为每一独立单元在三维空间中构建网格并建立模型;(3)对每一类文字字体创建一个管理对象,每个管理对象为每类字体的字库,用于管理已经生成的用于表现实体字符可视效果的纹理,在管理过程中对多个字符产生的纹理数据进行合并,得到一个大纹理,并且记录了纹理被合并的字符的纹理贴图信息;(4)每一个独立单元内的字符,在字符对应文字字体的字库中,进行查找对应的纹理贴图信息,查找到时,把查找到的纹理贴图信息与构建的网格对应;如果未查找到,实时生成所需纹理贴图,把生成的纹理贴图信息导入字库管理,并把生成的纹理贴图信息与构建的网格模型对应;(5)最后根据步骤(2)构建的网格模型和步骤(4)生成的纹理贴图信息,通过图形API向GPU提交渲染指令,把文字渲染在三维场景中。作为优选,步骤(1)中,实体字符为文字和标点符号,需要被渲染;格式字符为空格符和换行符,不需要被渲染。作为优选,步骤(2)中,构建网格的过程为将三个顶点之间连线,构建成一个三角面片。作为优选,步骤(3)中,纹理贴图信息包括纹理位置信息和纹理大小。本专利技术由于采用了以上技术方案,具有显著的技术效果:本专利技术解决了在三维场景中任意位置渲染文字的需求。通过在三维场景中构建网格使文字成为模型,并给模型对应纹理,使文字更简便地可以直接使用GPU渲染固定管线进行渲染。并对所有文字纹理进行了合并工作,使纹理可以得到复用,减少CPU向GPU提交纹理数据的次数,降低了渲染的时间消耗,使文字渲染更高效。附图说明图1是本专利技术一种在三维场景中渲染文字的方法的流程示意图;图2是本专利技术一种在三维场景中渲染文字的方法的效果示意图。具体实施方式下面结合附图与实施例对本专利技术作进一步详细描述。如图1至图2所示,一种在三维场景中渲染文字的方法,包括如下步骤:(1)获取到字符串后,将字符串拆分成一个个字符,然后拆分后的字符按照实体字符和格式字符分成两类,格式字符用于格式对齐,实体字符用于渲染,实体字符为文字和标点符号,需要被渲染;格式字符为空格符和换行符,不需要被渲染;(2)将步骤(1)拆分字符串中的每一个实体字符为一个独立单元,通过获取的三维空间信息中,包括的文字渲染的中心点坐标,根据中心点坐标为每一独立单元在三维空间中构建网格并建立模型,构建网格的过程为将三个顶点之间连线,构建成一个三角面片;(3)对每一类文字字体创建一个管理对象,每个管理对象为每类字体的字库,用于管理已经生成的用于表现实体字符可视效果的纹理,在管理过程中对多个字符产生的纹理数据进行合并,得到一个大纹理,并且记录了纹理被合并的字符的纹理贴图信息,纹理贴图信息包括纹理位置信息和纹理大小;(4)每一个独立单元内的字符,在字符对应文字字体的字库中,进行查找对应的纹理贴图信息,查找到时,把查找到的纹理贴图信息与构建的网格对应;如果未查找到,实时生成所需纹理贴图,把生成的纹理贴图信息导入字库管理,并把生成的纹理贴图信息与构建的网格模型对应;(5)最后根据步骤(2)构建的网格模型和步骤(4)生成的纹理贴图信息,通过图形API向GPU提交渲染指令,把文字渲染在三维场景中。字符串由一个个独立的字符组成,其中可以根据作用不同将字符分成实体字符和格式字符两类,格式字符是用于格式对齐的字符,实体字符需要被渲染。每一个实体字符为一个独立单元,通过对应的三维场景坐标,为每一独立单元在三维场景中创建顶点,构建网格,建立具体的三维模型。每一个实体字符还需要生成对应的纹理,来表现具体字符的可视效果。为每一类文字字体创建一个管理已经生产的所有纹理的管理对象,这里简称为字库。在字库中保存了具体的纹理,这个纹理为多个字符生产的纹理数据进行合并得到的大纹理,字库还管理了当前已生产的所有字符对应的纹理信息,包括存在于这个大纹理中的纹理坐标与大小。实体字符通过字库查找纹理信息,如未查找到,实时生成纹理数据,导入字库管理,进行纹理合并后,获取纹理信息。把获取的纹理信息与构建的模型对应,为模型的每个网格顶点给定对应的纹理坐标。最后通过图形API向GPU提交渲染指令,把文字渲染在三维场景中。实施例1在三维场景中坐标为(0.0,0.0,0.0)的位置上,需要渲染文字“一种在三维场景中渲染文字的方法”。先把这个字符串拆分为15个独立字符。这15个字符都属于实体字符。为每一个字计算出在三维场景中构建模型所需要的顶点,使用这些顶点,构建成一个模型。这15个字都是不同的,所以为每一个字生成一张纹理,并把这15张纹理合并为一张,记录下每一个字对应的纹理在合并后纹理中的坐标位置。把这15个字的模型与纹理坐标位置一一对应起来。先通过图形API向GPU提交合并的那张大纹理,然后挨个提交这15个字对应的模型与纹理坐标,通过GPU渲染固定管线将最终效果渲染出来。总之,以上所述仅为本专利技术的较佳实施例,凡依本专利技术申请专利范围所作的均等变化与修饰,皆应属本专利技术专利的涵盖范围。本文档来自技高网...
一种在三维场景中渲染文字的方法

【技术保护点】
一种在三维场景中渲染文字的方法,其特征在于,包括如下步骤:(1)获取到字符串后,将字符串拆分成一个个字符,然后拆分后的字符按照实体字符和格式字符分成两类,格式字符用于格式对齐,实体字符用于渲染;(2)将步骤(1)拆分字符串中的每一个实体字符为一个独立单元,通过获取的三维空间信息中,包括的文字渲染的中心点坐标,根据中心点坐标为每一独立单元在三维空间中构建网格并建立模型;(3)对每一类文字字体创建一个管理对象,每个管理对象为每类字体的字库,用于管理已经生成的用于表现实体字符可视效果的纹理,在管理过程中对多个字符产生的纹理数据进行合并,得到一个大纹理,并且记录了纹理被合并的字符的纹理贴图信息;(4)每一个独立单元内的字符,在字符对应文字字体的字库中,进行查找对应的纹理贴图信息,查找到时,把查找到的纹理贴图信息与构建的网格对应;如果未查找到,实时生成所需纹理贴图,把生成的纹理贴图信息导入字库管理,并把生成的纹理贴图信息与构建的网格模型对应;(5)最后根据步骤(2)构建的网格模型和步骤(4)生成的纹理贴图信息,通过图形API向GPU提交渲染指令,把文字渲染在三维场景中。

【技术特征摘要】
1.一种在三维场景中渲染文字的方法,其特征在于,包括如下步骤:(1)获取到字符串后,将字符串拆分成一个个字符,然后拆分后的字符按照实体字符和格式字符分成两类,格式字符用于格式对齐,实体字符用于渲染;(2)将步骤(1)拆分字符串中的每一个实体字符为一个独立单元,通过获取的三维空间信息中,包括的文字渲染的中心点坐标,根据中心点坐标为每一独立单元在三维空间中构建网格并建立模型;(3)对每一类文字字体创建一个管理对象,每个管理对象为每类字体的字库,用于管理已经生成的用于表现实体字符可视效果的纹理,在管理过程中对多个字符产生的纹理数据进行合并,得到一个大纹理,并且记录了纹理被合并的字符的纹理贴图信息;(4)每一个独立单元内的字符,在字符对应文字字体的字库中,进行查找对应的纹理贴图信息,查找到时,把查...

【专利技术属性】
技术研发人员:季惟婷俞蔚
申请(专利权)人:浙江科澜信息技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1