CN106683189B - 一种在三维场景中渲染文字的方法 - Google Patents
一种在三维场景中渲染文字的方法 Download PDFInfo
- Publication number
- CN106683189B CN106683189B CN201611077784.3A CN201611077784A CN106683189B CN 106683189 B CN106683189 B CN 106683189B CN 201611077784 A CN201611077784 A CN 201611077784A CN 106683189 B CN106683189 B CN 106683189B
- Authority
- CN
- China
- Prior art keywords
- character
- texture
- rendering
- dimensional scenic
- texture mapping
- 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
-
- 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/30—Polynomial surface description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种在三维场景中渲染文字的方法,包括以下步骤:(1)将字符串分拆成字符;(2)为每个字符构建网络模型;(3)为每个字符生成对应的纹理贴图;(4)将纹理贴图与网络模型一一对应;(5)提交GPU渲染。本发明解决了在三维场景中任意位置渲染文字的需求。通过在三维场景中构建网格使文字成为模型,并给模型对应纹理,使文字更简便地可以直接使用GPU渲染固定管线进行渲染。并对所有文字纹理进行了合并工作,使纹理可以得到复用,减少CPU向GPU提交纹理数据的次数,降低了渲染的时间消耗,使文字渲染更高效。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种在三维场景中渲染文字的方法。
背景技术
三维模型广泛用任何使用三维图形的地方。实际上,它们的应用早于个人电脑上三维图形的流行。许多计算机游戏使用预先渲染的三维模型图像作为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渲染固定管线将最终效果渲染出来。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (4)
1.一种在三维场景中渲染文字的方法,其特征在于,包括如下步骤:
(1)获取到字符串后,将字符串拆分成一个个字符,然后拆分后的字符按照实体字符和格式字符分成两类,格式字符用于格式对齐,实体字符用于渲染;
(2)将步骤(1)拆分的每一个实体字符,通过获取的三维空间信息中,包括的文字渲染的中心点坐标,根据中心点坐标为每一独立单元在三维空间中构建网格并建立模型;
(3)对每一类文字字体创建一个管理对象,每个管理对象为每类字体的字库,用于管理已经生成的用于表现实体字符可视效果的纹理,在管理过程中对多个字符产生的纹理数据进行合并,得到一个大纹理,并且记录了纹理被合并的字符的纹理贴图信息;
(4)每一个独立单元内的字符,在字符对应文字字体的字库中,进行查找对应的纹理贴图信息,查找到时,把查找到的纹理贴图信息与构建的网格对应;如果未查找到,实时生成所需纹理贴图,把生成的纹理贴图信息导入字库管理,并把生成的纹理贴图信息与构建的网格模型对应;
(5)最后根据步骤(2)构建的网格模型和步骤(4)生成的纹理贴图信息,通过图形API向GPU提交渲染指令,把文字渲染在三维场景中。
2.根据权利要求1所述的一种在三维场景中渲染文字的方法,其特征在于:步骤(1)中,实体字符为文字和标点符号,需要被渲染;格式字符为空格符和换行符,不需要被渲染。
3.根据权利要求1所述的一种在三维场景中渲染文字的方法,其特征在于:步骤(2)中,构建网格的过程为将三个顶点之间连线,构建成一个三角面片。
4.根据权利要求1所述的一种在三维场景中渲染文字的方法,其特征在于:步骤(3)中,纹理贴图信息包括纹理位置信息和纹理大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611077784.3A CN106683189B (zh) | 2016-11-29 | 2016-11-29 | 一种在三维场景中渲染文字的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611077784.3A CN106683189B (zh) | 2016-11-29 | 2016-11-29 | 一种在三维场景中渲染文字的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106683189A CN106683189A (zh) | 2017-05-17 |
CN106683189B true CN106683189B (zh) | 2019-09-27 |
Family
ID=58867485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611077784.3A Active CN106683189B (zh) | 2016-11-29 | 2016-11-29 | 一种在三维场景中渲染文字的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106683189B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107221020B (zh) * | 2017-05-27 | 2021-04-16 | 北京奇艺世纪科技有限公司 | 一种文字纹理绘制方法及装置 |
CN107369200B (zh) * | 2017-07-04 | 2021-07-16 | 福建星网视易信息系统有限公司 | 一种3d场景特效处理方法及存储设备 |
CN108022218A (zh) * | 2017-11-24 | 2018-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种自适应纹理字库抗锯齿方法 |
CN110032401B (zh) * | 2018-01-10 | 2022-06-21 | 武汉斗鱼网络科技有限公司 | 一种特殊样式数字的转化方法、存储介质、设备及系统 |
CN108154543B (zh) * | 2018-01-15 | 2021-12-14 | 网易(杭州)网络有限公司 | 确定游戏贴图尺寸的方法、装置及存储介质 |
CN109215103A (zh) * | 2018-08-30 | 2019-01-15 | 西安恒歌数码科技有限责任公司 | 一种基于osg的大批量文字渲染方法 |
CN110363836A (zh) * | 2019-07-19 | 2019-10-22 | 杭州绝地科技股份有限公司 | 一种基于Matcap贴图的角色渲染方法、装置和设备 |
CN111145329B (zh) * | 2019-12-25 | 2024-03-22 | 北京像素软件科技股份有限公司 | 模型渲染方法、系统及电子装置 |
CN112652046B (zh) * | 2020-12-18 | 2024-03-22 | 完美世界(重庆)互动科技有限公司 | 游戏画面的生成方法、装置、设备及存储介质 |
CN116385599B (zh) * | 2023-03-27 | 2024-01-30 | 小米汽车科技有限公司 | 文字交互方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702309A (zh) * | 2004-03-16 | 2010-05-05 | 三菱电机株式会社 | 用于绘制组合字形的区域的方法 |
CN103729190A (zh) * | 2013-12-31 | 2014-04-16 | 天津华永无线科技有限公司 | 在移动终端上多种媒介统一解析显示的方法 |
CN104298504A (zh) * | 2014-09-22 | 2015-01-21 | 无锡梵天信息技术股份有限公司 | 基于FreeType字体引擎的实现字体绘制的方法 |
CN105022758A (zh) * | 2014-04-29 | 2015-11-04 | 高德信息技术有限公司 | 一种文字纹理管理方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7042458B2 (en) * | 2003-03-25 | 2006-05-09 | Mitsubishi Electric Research Laboratories, Inc. | Methods for generating an adaptively sampled distance field of an object with specialized cells |
-
2016
- 2016-11-29 CN CN201611077784.3A patent/CN106683189B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702309A (zh) * | 2004-03-16 | 2010-05-05 | 三菱电机株式会社 | 用于绘制组合字形的区域的方法 |
CN103729190A (zh) * | 2013-12-31 | 2014-04-16 | 天津华永无线科技有限公司 | 在移动终端上多种媒介统一解析显示的方法 |
CN105022758A (zh) * | 2014-04-29 | 2015-11-04 | 高德信息技术有限公司 | 一种文字纹理管理方法及设备 |
CN104298504A (zh) * | 2014-09-22 | 2015-01-21 | 无锡梵天信息技术股份有限公司 | 基于FreeType字体引擎的实现字体绘制的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106683189A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106683189B (zh) | 一种在三维场景中渲染文字的方法 | |
Lin et al. | Virtual geographic environments: a primer | |
CN102117497B (zh) | 一种三维地形建模方法及系统 | |
CN102289845B (zh) | 一种三维模型绘制方法以及装置 | |
CN103927424B (zh) | 利用体网格简化建筑三维模型结构的方法 | |
Ruzinoor et al. | A review on 3D terrain visualization of GIS data: techniques and software | |
CN110675496B (zh) | 基于三维城市地质模型的网格剖分和可视化方法及其系统 | |
Zhao | [Retracted] Application of Virtual Reality and Artificial Intelligence Technology in Fitness Clubs | |
JP2012528376A (ja) | レイトレーシング装置及び方法 | |
CN102163340A (zh) | 计算机系统中实现三维动态几何图形数据信息标注的方法 | |
CN102903139B (zh) | 一种等值线加速渲染方法 | |
CN110070616A (zh) | 存储器、基于gis平台的统计数据呈现方法、装置和设备 | |
CN104658033A (zh) | 多光源下的全局光照绘制方法及装置 | |
CN109712236A (zh) | 基于svg地图数据的三维可视化实现方法 | |
CN103324783A (zh) | 基于边折叠的lod模型实时生成方法 | |
CN110930492A (zh) | 模型渲染的方法、装置、计算机可读介质及电子设备 | |
CN110400366A (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN103325086B (zh) | 一种基于四面体坐标系的三维图形的变形方法 | |
CN107818591A (zh) | 一种虚拟现实三维模型的融合建模方法及系统 | |
CN116958377A (zh) | 三维模型纹理映射方法、装置和计算机设备 | |
CN100476880C (zh) | 一种产生体积阴影的方法及系统 | |
Isshiki et al. | An Offline‐Based On‐Demand Visualization System of Large‐Scale Particle Simulation for Tsunami Disaster Prevention | |
CN110096562A (zh) | 存储器、gis平台中三维模型构建方法、装置和设备 | |
CN105184869B (zh) | 建筑物线划数据在二维平台上显示三维透视效果的方法 | |
CN105320783A (zh) | 一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 |
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 |