CN103268626A - 基于gpu的地图线形符号绘制方法及系统 - Google Patents
基于gpu的地图线形符号绘制方法及系统 Download PDFInfo
- Publication number
- CN103268626A CN103268626A CN2013101251106A CN201310125110A CN103268626A CN 103268626 A CN103268626 A CN 103268626A CN 2013101251106 A CN2013101251106 A CN 2013101251106A CN 201310125110 A CN201310125110 A CN 201310125110A CN 103268626 A CN103268626 A CN 103268626A
- Authority
- CN
- China
- Prior art keywords
- linear
- shader
- vertex
- gpu
- attribute
- 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.)
- Pending
Links
Images
Abstract
本发明涉及基于GPU的地图线形符号绘制方法和系统,该方法在三维渲染可编程流水线体系下,使用着色器语言,将地图线形符号着色与线形参数之间的函数关系交给GPU进行计算,从而高效绘制地图线形符号。该方法包括下列步骤:首先根据线形中心线按半线宽作缓冲区,创建顶点数组缓存对象,记录顶点位置xyz以及顶点在整条缓冲带上横向和纵向坐标关系参数uv;编写顶点着色器,将uv参数传入到片段着色器,利用GPU进行栅格化插值;在片段着色器中建立片段颜色与uv的函数计算像素着色;在实际绘制过程中,绑定顶点缓存对象作为属性参数传入,设置着色器文件中需要的全局参数,进行线形符号绘制。
Description
技术领域
本发明涉及计算机图形学中的三维可视化渲染技术以及地理信息系统(简称GIS)符号化技术,给出了一种基于OpenGL着色语言 (opengl shader language,GLSL),在三维可编程流水线模式下,绘制地图线形符号的方法及系统。本发明利用GPU的高效运算能力,提高了地图线形符号的渲染效率。
背景技术
随着三维渲染技术的发展,图形处理单元(Graphics Processing Unit,GPU)的使用极大加快了三维图形实时渲染的效率和效果。事实证明在浮点运算、并行计算等部分与图形渲染相关的计算方面,GPU可以提供数十倍乃至数百倍于CPU的性能。GLSL是用在OpenGL中着色编程的语言,也即开发人员写的短小的自定义程序,他们是在图形显卡的GPU上执行的,代替了固定的渲染管线的一部分,称之为可编程的流水管线。目前,在三维可编程流水线模式下,使用GPU加速渲染技术已经应用到很多行业领域中,但还没有相关资料和技术使用Shader着色器语言对地图线形符号(尤其是某些特殊的地图线形符号)进行绘制的方法及系统。
在地图符号化系统中,需要绘制一些有别于普通线形的专业化的特殊符号。在传统的二维地理信息系统(简称2DGIS)中有着广泛应用和成熟的符号表现,其主要表现手法是根据地图符号化规范绘制一般的直线、虚线、断点线(如国界线)、带边框的线(如道路线)、特殊符号线(如铁路线)等。随着3DGIS的发展,产生了在三维场景中绘制二维地图线形符号的需求,其绘制方法主要有三类:(1)多次绘制,先进行底色的绘制,再绘制上层的虚线或其他线形;(2)构造可重复的线形符号图片单元及具有一定宽度的线形三角网,使用贴图纹理映射的方法绘制地图线型符号;(3)直接通过建模方式构造符号模型,在三维场景中渲染。以上三种方式要么需要绘制多次,要么需要纹理贴图,并且也不能充分利用GPU渲染技术,而导致消耗系统资源多但绘制效率低等不足。
发明内容
本发明所解决的技术问题是:克服现有技术在三维场景中绘制地图线形符号对资源和效率造成的浪费和不足,提供基于GPU的地图线形符号绘制方法及系统,基于GLSL编写的顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)代码,对地图线形符号进行绘制,其充分利用GPU的高效计算能力,实现简单,参数可调,方便程序员的开发和扩展。
本发明所采用的技术方案是,基于GPU的地图线形符号绘制方法,在可编程流水线体系下,使用着色器语言绘制地图线形符号,该方法创建了绘制的通用步骤,包括:
步骤1 构建顶点数组缓存对象模型:根据线形中心线按半线宽作缓冲区,每个顶点除包含必要的xyz三维坐标属性外,还包含该顶点在整条缓冲带上横向和纵向坐标关系参数uv,其中该顶点距离线形起点的长度属性u,以及顶点到线形中央线的距离属性v;
步骤2 建立顶点着色器(Vertex Shader)模型:在顶点着色器(Vertex Shader)中传入顶点的xyz及uv属性,并将所述顶点的uv属性作为可变变量传入GPU,在GPU中进行uv属性的栅格化插值,插值结果输出至片段着色器(Fragment Shader);
步骤3 建立片段着色器(Fragment Shader)模型:根据不同线形符号化的要求,建立相应的片段着色与uv值之间的关系函数getColorByUV,该函数利用GPU计算每一个片段的颜色值,以实现对地图线形符号每一个像素的绘制。
在实际的应用过程中,绘制地图线形符号的步骤还包括:
步骤4 根据步骤1所述的顶点数组缓存对象模型创建顶点缓存数组(vertex Buffer Object,简称VBO)并绑定到显存GPU中;
步骤5 根据步骤2所述的顶点着色器模型建立并编译顶点着色器,根据步骤3的片段着色器模型建立并编译片段着色器;
步骤6 创建并链接可编程流水线(Program);
步骤7 在三维绘制函数中启用该Program,并绑定步骤4创建的VBO传入顶点属性(attribute)变量,设置Vertex Shader和Fragment Shader需要用到的全局(uniform)变量;
步骤8 调用三维绘制函数进行地图线形符号绘制。
实现本发明目的的另一个技术方案是:基于GPU的地图线形符号绘制系统,在可编程流水线体系下,使用着色器语言(Shader Language)绘制地图线形符号,该系统中设有绘制的通用模型,绘制模型中设有:
根据线形中心线按半线宽作缓冲区,构建的顶点数组缓存对象模型,顶点数组缓存对象模型中,每个顶点包含必要的xyz三维坐标属性,还包含该顶点在整条缓冲带上横向和纵向坐标关系参数uv,其中该顶点距离线形起点的长度属性u,以及顶点到线形中央线的距离属性v;
顶点着色器(Vertex Shader)模型:用于在顶点着色器(Vertex Shader)中传入顶点xyz及uv属性,并将所述顶点的uv属性作为可变变量传入GPU,在GPU中进行uv属性的栅格化插值,插值结果输出至片段着色器(Fragment Shader);
片段着色器(Fragment Shader)模型:用于根据不同线形符号化的要求,建立相应的片段着色与uv值之间的关系函数getColorByUV,该函数利用GPU计算每一个片段的颜色值,以实现对地图线形符号每一个像素的绘制。
该系统进一步包括绘制地图线形符号的装置,包括:
用于根据所述的顶点数组缓存对象模型创建顶点缓存数组VBO的装置;
用于根据顶点着色器模型建立顶点着色器的装置;
用于根据片段着色器模型建立片段着色器的装置;
用于创建并链接Program的装置;
用于三维绘制的装置,该装置在三维绘制函数中启用Program,并绑定VBO传入顶点属性变量,设置Vertex Shader和Fragment Shader需要用到的全局变量,调用三维绘制函数进行地图线形符号绘制。
本发明所产生的有益效果是,采用基于GLSL编写的顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)代码,对地图线形符号进行绘制,消耗内存和显存资源少,并充分利用GPU的计算能力减轻CPU计算负担,实现简单,参数可调,方便三维开发相关的程序员使用和扩展。根据本发明为基础可以实现一般的直线、虚线以及特殊的国界线、道路线、铁路线、沿线方向箭头等地图线形符号。
附图说明
图1是本发明实施例的流程图。
图2是根据线形中心线和一定宽度构造的顶点缓存结构。
图3是使用本发明绘制铁路黑白间隔符号示例说明和局部放大说明。
具体实施方式
下面结合附图和实施示例做进一步说明。
参见图1是本发明实施事例的一般流程图,基于GPU的地图线形符号绘制方法,在可编程流水线体系下,使用Shader语言绘制地图线形符号,该方法包括创建绘制模型步骤,包括:
步骤1 构建顶点数组缓存对象模型:
根据线形数据中央线(总长为Lmax)和线形半宽度(Wmax)构建具有一定宽度的线形多边形三角网。其中顶点的基本结构体为(x,y,z,u,v),x、y、z为顶点在三维系统中的坐标,u是与顶点距离线形起点长度成一定关系的值,v是与顶点到线形中央线的距离成一定关系的值。具体计算可根据线形宽度进行归一化处理,如下所示:
u为该顶点距离线形原点的线形长度(Length)与线形半宽度的比值, 其取值范围为[0,Lmax/Wmax],即:
u = Length / Wmax ; ( 0 <= Length <= Lmax)
v为该顶点到线形中央线的距离(Distanse)与线形半宽度的比值,其取值范围为[-1,1],其中在线形中央线右边的点v取值为负数,左边取值为正数,即:
v = Distanse / Wmax ; (-Wmax <= Distanse <= Wmax)
步骤2 建立顶点着色器(Vertex Shader)模型:在顶点着色器(Vertex Shader)中传入顶点的xyz及uv属性,并将所述顶点的uv属性作为可变变量传入GPU,在GPU中进行uv属性的栅格化插值,插值结果输出至片段着色器(Fragment Shader)。
其具体实现为:将三维变换矩阵(uMvpMaxtrix)作为uniform变量,将顶点位置坐标(aVertexXYZ)和顶点结构坐标(aVertexUV)作为attribute变量由VBO数组提供,计算顶点位置gl_Position和uv坐标(vVertexUV),将计算得到的vVertexUV做为varying变量。如下
attribute vec4 aVertexXYZ;
attribute vec2 aVertexUV;
uniform mat4 uMvpMatrix;
varying vec2 vVertexUV;
void main(void)
{
vVertexUV = aVertexUV;
gl_Position = uMvpMatrix * aVertexXYZ;
}
步骤3 建立片段着色器(Fragment Shader)模型:根据不同线形符号化的要求,建立相应的片段着色与uv值之间的关系函数getColorByUV,该函数利用GPU计算每一个片段的颜色值,以实现对地图线形符号每一个像素的绘制。
将由Vertex Shader计算并传入的vVertexUV作为varying变量,在进入片段着色器时,vVertexUV会经过光栅化插值得到相应片段的uv,根据不同线形符号表达的要求创建相应的getColorByUV函数,即通过片段的uv坐标映射得到相应片段上的着色gl_FragColor。对于不同线形符号,实现相应的getColorByUV函数,从而实现对符号的每一个像素进行绘制,如下:
precision mediump float;
varying vec2 vVertexUV;
vec4 getColorByUV(vec2 uv);
{
// TODO:根据不同线形符号,实现相应的函数
}
void main(void)
{
gl_FragColor = getColorByUV(vVertexUV);
}
在实际的应用过程中,绘制地图线形符号的步骤还包括:
步骤4 根据步骤1所述的顶点数组缓存对象模型创建顶点缓存数组(vertex Buffer Object,简称VBO)并绑定到显存GPU中;
const void* vertices; // 顶点数据指针
const u32 vertexSize; // 顶点数据内存大小
glGenBuffers(1, &uiVboID);
glBindBuffer(GL_ARRAY_BUFFER,uiVboID);
glBufferData(GL_ARRAY_BUFFER, vertexSize,vertices, GL_STATIC_DRAW);
步骤5 根据步骤2所述的顶点着色器模型建立并编译顶点着色器,根据步骤3的片段着色器模型建立并编译片段着色器:
const char* vertexShader = readVertexShader ();
GLuint uiVertexShaderId = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(uiVertexShaderId, 1, & vertexShader, NULL);
glCompileShader(uiVertexShaderId);
const char* fragmentShader = readFragmentShader ();
GLuint uiFragmentShaderId = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(uiFragmentShaderId, 1, & fragmentShader, NULL);
glCompileShader(uiFragmentShaderId);
步骤6 创建并链接可编程流水线(Program)
uiProgramId = glCreateProgram();
glLinkProgram(uiProgramId);
步骤7 在三维绘制函数中启用该Program,并绑定步骤4创建的VBO传入顶点属性(attribute)变量,设置Vertex Shader和Fragment Shader需要用到的全局(uniform)变量。
glUseProgram(m_uiProgramId);
// TODO: 调用glUniform相关函数设置全局变量
glBindBuffer(GL_ARRAY_BUFFER, uiVboID);
glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glVertexAttribPointer(0,3,GL_FLOAT, false, sizeof(float)*5, 0);
glVertexAttribPointer(1,2,GL_FLOAT, false, sizeof(float)*5, sizeof(float)*3);
步骤8 调用三维绘制函数进行地图线形符号绘制
// TODO: 调用glDrawArrays或glDrawElements等函数进行绘制
以铁路线形符号为实例进行说明参见图2至图3,线形中心线有n个点(P1,P2,…,Pi,…Pn),其半线宽为Wmax,根据中央线向两边做缓冲区构造顶点缓存物体VBO,第i个顶点Pi的两侧将产生两个新的顶点 Pai(Xai,Yai,Zai,Uai,Vai) , Pbi(Xbi,Ybi,Zbi,Ubi,Vbi)。其中假如Pi到起点P1的铁路长度为Length(P1,Pi),则:
Uai = Wmax/Wmax = 1; Vai = Length(P1,Pi)/ Wmax = Li;
Ubi = -Wmax/Wmax = -1; Vbi = Length(P1,Pi)/ Wmax = Li;
在实施例中,编译创建Vertex Shader模型,将经过Vertex Shader计算后的vVertexUV传入到编译创建的Fragment Shader模型中,利用GPU对vVertexUV进行光栅化插值,即在光栅化后的任意一点Po(Xo,Yo,Zo,Uo,Vo)中的Uo经插值后等于Po在铁路中央线垂足到原点的铁路长度,Vo经插值后等于Po到铁路中央线的相对距离。
根据铁路符号化的要求,令铁路符号为黑色段uLineColor1 = [0.0,0.0,0.0,1.0]和白色段uLineColor2 = [1.0,1.0,1.0,1.0]相间构成,一个黑白间隔单元长度与线形半宽度的比值为uLengthInterval = 20,前二分之一段为黑色段,后二分这一段为白色段;在白色段的纵向部分,上下各有一部分为黑色,令白色段半宽度与线形半宽度的比值为uWidthInterval = 0.6。则满足
mod(Uo, uLengthInterval) >= uLengthInterval/2.0
并且 - uWidthInterval <= Vo <= uWidthInterval
(其中mod(x,y)为取模函数,即计算x除以y的余数)
的所有点Po(Uo,Vo)的光栅化着色为uLineColor2,其他点的光栅化着色为uLineColor1。
按照技术方案中提到的Shader模型实现铁路线形符号的getColorByUV函数,其Fragment Shader实现如下所示:
precision mediump float;
uniform mediump vec4 uLineColor1;
uniform mediump vec4 uLineColor2;
uniform int uLengthInterval;
uniform float uWidthInterval;
varying vec2 vVertexUV;
// 取模函数,即计算x除以y的余数
int mod(int x,int y)
{
return int(x) - y * (x/y);
}
vec4 getColorByUV(vec2 uv);
{
int lineInterval = mod(int(uv[0]),uLengthInterval);
if ( lineInterval >= uLengthInterval/2.0 &&
uv[1] >= -uWidthInterval && uv[1] <= uWidthInterval)
return uLineColor2;
else
return uLineColor1;
}
void main(void)
{
gl_FragColor = getColorByUV(vVertexUV);
}
在实际绘制铁路线形过程中,首先根据铁路中央线和宽度创建顶点缓存数组;创建编译Vertex Shader和Fragment Shader,创建并链接Program;接着在绘制函数中启用Program并绑定VBO传入属性数据,设置uMvpMaxtrix、uLineColor1、uLineColor2、uLengthInterval、uWidthInterval全局变量;最后通过调用gl函数进行绘制铁路线形符号。
Claims (4)
1.基于GPU的地图线形符号绘制方法,在可编程流水线体系下,使用着色器语言(Shader Language)绘制地图线形符号,其特征是,该方法创建了绘制的通用步骤,包括:
步骤1 构建顶点数组缓存对象模型:根据线形中心线按半线宽作缓冲区,每个顶点除包含必要的xyz三维坐标属性外,还包含该顶点在整条缓冲带上横向和纵向坐标关系参数uv,其中该顶点距离线形起点的长度属性u,以及顶点到线形中央线的距离属性v;
步骤2 建立顶点着色器(Vertex Shader)模型:在顶点着色器(Vertex Shader)中传入顶点的xyz及uv属性,并将所述顶点的uv属性作为可变变量传入GPU,在GPU中进行uv属性的栅格化插值,插值结果输出至片段着色器(Fragment Shader);
步骤3 建立片段着色器(Fragment Shader)模型:根据不同线形符号化的要求,建立相应的片段着色与uv值之间的关系函数getColorByUV,该函数利用GPU计算每一个片段的颜色值,以实现对地图线形符号每一个像素的绘制。
2.根据权利要求1所述的基于GPU的地图线形符号绘制方法,其特征是,所述步骤3之后还有绘制地图线形符号步骤,包括:
步骤4 根据步骤1所述的顶点数组缓存对象模型创建顶点缓存数组(vertex Buffer Object,简称VBO)并绑定到显存GPU中;
步骤5 根据步骤2所述的顶点着色器模型建立并编译顶点着色器,根据步骤3的片段着色器模型建立并编译片段着色器;
步骤6 创建并链接可编程流水线(Program);
步骤7 在三维绘制函数中启用该Program,并绑定步骤4创建的VBO传入顶点属性(attribute)变量,设置Vertex Shader和Fragment Shader需要用到的全局(uniform)变量;
步骤8 调用三维绘制函数进行地图线形符号绘制。
3.基于GPU的地图线形符号绘制系统,在可编程流水线体系下,使用着色器语言(Shader Language)绘制地图线形符号,其特征是,该系统中设有绘制的通用模型,绘制模型中设有:
根据线形中心线按半线宽作缓冲区,构建的顶点数组缓存对象模型,顶点数组缓存对象模型中,每个顶点包含必要的xyz三维坐标属性,还包含该顶点在整条缓冲带上横向和纵向坐标关系参数uv,其中该顶点距离线形起点的长度属性u,以及顶点到线形中央线的距离属性v;
顶点着色器(Vertex Shader)模型:用于在顶点着色器(Vertex Shader)中传入顶点xyz及uv属性,并将所述顶点的uv属性作为可变变量传入GPU,在GPU中进行uv属性的栅格化插值,插值结果输出至片段着色器(Fragment Shader);
片段着色器(Fragment Shader)模型:用于根据不同线形符号化的要求,建立相应的片段着色与uv值之间的关系函数getColorByUV,该函数利用GPU计算每一个片段的颜色值,以实现对地图线形符号每一个像素的绘制。
4.根据权利要求3所述的基于GPU的地图线形符号绘制系统,其特征是,该系统还包括绘制地图线形符号的装置,包括:
用于根据所述的顶点数组缓存对象模型创建顶点缓存数组VBO的装置;
用于根据顶点着色器模型建立并编译顶点着色器的装置;
用于根据片段着色器模型建立并编译片段着色器的装置;
用于创建并链接Program的装置;
用于三维绘制的装置,该装置在三维绘制函数中启用Program,并绑定VBO传入顶点属性变量,设置Vertex Shader和Fragment Shader需要用到的全局变量,调用三维绘制函数进行地图线形符号绘制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101251106A CN103268626A (zh) | 2013-04-11 | 2013-04-11 | 基于gpu的地图线形符号绘制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101251106A CN103268626A (zh) | 2013-04-11 | 2013-04-11 | 基于gpu的地图线形符号绘制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103268626A true CN103268626A (zh) | 2013-08-28 |
Family
ID=49012253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101251106A Pending CN103268626A (zh) | 2013-04-11 | 2013-04-11 | 基于gpu的地图线形符号绘制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103268626A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105427359A (zh) * | 2014-09-11 | 2016-03-23 | 大陆汽车有限责任公司 | 动画表现装置 |
CN105513110A (zh) * | 2016-01-11 | 2016-04-20 | 南京师范大学 | 基于gpu的宽度渐变线型地图符号绘制方法 |
CN105719230A (zh) * | 2016-01-11 | 2016-06-29 | 南京师范大学 | 基于gpu的颜色渐变线型地图符号绘制方法 |
CN104318509B (zh) * | 2014-10-30 | 2017-09-26 | 中国电子科技集团公司第五十四研究所 | 一种基于gpu的大批量目标高速标绘方法 |
CN107578458A (zh) * | 2017-09-14 | 2018-01-12 | 北京邮电大学 | 一种飞行器运行情况图的绘制方法及装置 |
CN108139897A (zh) * | 2015-09-30 | 2018-06-08 | 苹果公司 | 在不预处理宏的情况下使用Ubershader变体的系统和方法 |
CN108198233A (zh) * | 2017-12-31 | 2018-06-22 | 广州金十信息科技有限公司 | 一种k线图的绘制方法、电子设备及存储介质 |
CN109634611A (zh) * | 2019-01-03 | 2019-04-16 | 华南理工大学 | 基于OpenGL的移动端三维模型ply文件解析与展示方法 |
CN110888637A (zh) * | 2018-08-16 | 2020-03-17 | 龙芯中科技术有限公司 | 顶点属性处理方法、装置、设备及计算机可读存储介质 |
CN110908560A (zh) * | 2019-11-25 | 2020-03-24 | 航天科技控股集团股份有限公司 | 基于gpu的全液晶仪表虚拟指针样式绘制方法 |
CN111028351A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半尖角形箭头绘制方法 |
CN111028352A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号开放尖角形箭头绘制方法 |
CN111080744A (zh) * | 2019-12-26 | 2020-04-28 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半开放尖角形箭头绘制方法 |
CN111091620A (zh) * | 2019-12-03 | 2020-05-01 | 深圳震有科技股份有限公司 | 基于图形学的地图动态路网处理方法及系统、计算机设备 |
CN111127589A (zh) * | 2019-12-26 | 2020-05-08 | 南京师范大学 | 顾及线宽一致性的矢量地图圆形虚线符号绘制方法 |
CN111145299A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号拐角绘制方法 |
CN111145298A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 |
CN111145295A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半燕尾形箭头绘制方法 |
CN111145303A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号尖角形箭头绘制方法 |
CN111489411A (zh) * | 2019-01-29 | 2020-08-04 | 北京百度网讯科技有限公司 | 线条绘制方法、装置、图像处理器、显卡及车辆 |
CN112907436A (zh) * | 2021-02-02 | 2021-06-04 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
CN113127945A (zh) * | 2021-05-18 | 2021-07-16 | 福建天晴在线互动科技有限公司 | 一种基于Compute Shader的实时布料仿真的方法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159065A (zh) * | 2007-11-08 | 2008-04-09 | 武汉大学 | 复杂地图符号的计算机自动绘制方法 |
US7605825B1 (en) * | 2006-10-24 | 2009-10-20 | Adobe Systems, Incorporated | Fast zoom-adaptable anti-aliasing of lines using a graphics processing unit |
CN102081803A (zh) * | 2011-01-20 | 2011-06-01 | 周佳 | 一种手写原笔迹的笔锋实现方法 |
CN102999880A (zh) * | 2012-11-14 | 2013-03-27 | 厦门亿力吉奥信息科技有限公司 | 基于GPU的电力WebGIS矢量实时绘制方法及装置 |
-
2013
- 2013-04-11 CN CN2013101251106A patent/CN103268626A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7605825B1 (en) * | 2006-10-24 | 2009-10-20 | Adobe Systems, Incorporated | Fast zoom-adaptable anti-aliasing of lines using a graphics processing unit |
CN101159065A (zh) * | 2007-11-08 | 2008-04-09 | 武汉大学 | 复杂地图符号的计算机自动绘制方法 |
CN102081803A (zh) * | 2011-01-20 | 2011-06-01 | 周佳 | 一种手写原笔迹的笔锋实现方法 |
CN102999880A (zh) * | 2012-11-14 | 2013-03-27 | 厦门亿力吉奥信息科技有限公司 | 基于GPU的电力WebGIS矢量实时绘制方法及装置 |
Non-Patent Citations (2)
Title |
---|
J. KRUGER ET AL: "《Proceedings of the 14th IEEE Visualization Conference》", 24 October 2003 * |
刘勇奎: "一种对称的快速直线生成算法", 《微计算机应用》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105427359B (zh) * | 2014-09-11 | 2019-05-17 | 大陆汽车有限责任公司 | 动画表现装置 |
CN105427359A (zh) * | 2014-09-11 | 2016-03-23 | 大陆汽车有限责任公司 | 动画表现装置 |
CN104318509B (zh) * | 2014-10-30 | 2017-09-26 | 中国电子科技集团公司第五十四研究所 | 一种基于gpu的大批量目标高速标绘方法 |
CN108139897A (zh) * | 2015-09-30 | 2018-06-08 | 苹果公司 | 在不预处理宏的情况下使用Ubershader变体的系统和方法 |
CN108139897B (zh) * | 2015-09-30 | 2021-08-17 | 苹果公司 | 在不预处理宏的情况下使用Ubershader变体的系统和方法 |
CN105513110A (zh) * | 2016-01-11 | 2016-04-20 | 南京师范大学 | 基于gpu的宽度渐变线型地图符号绘制方法 |
CN105719230A (zh) * | 2016-01-11 | 2016-06-29 | 南京师范大学 | 基于gpu的颜色渐变线型地图符号绘制方法 |
CN107578458A (zh) * | 2017-09-14 | 2018-01-12 | 北京邮电大学 | 一种飞行器运行情况图的绘制方法及装置 |
CN108198233A (zh) * | 2017-12-31 | 2018-06-22 | 广州金十信息科技有限公司 | 一种k线图的绘制方法、电子设备及存储介质 |
CN110888637A (zh) * | 2018-08-16 | 2020-03-17 | 龙芯中科技术有限公司 | 顶点属性处理方法、装置、设备及计算机可读存储介质 |
CN110888637B (zh) * | 2018-08-16 | 2023-09-26 | 龙芯中科技术股份有限公司 | 顶点属性处理方法、装置、设备及计算机可读存储介质 |
CN109634611A (zh) * | 2019-01-03 | 2019-04-16 | 华南理工大学 | 基于OpenGL的移动端三维模型ply文件解析与展示方法 |
CN109634611B (zh) * | 2019-01-03 | 2021-08-10 | 华南理工大学 | 基于OpenGL的移动端三维模型ply文件解析与展示方法 |
CN111489411A (zh) * | 2019-01-29 | 2020-08-04 | 北京百度网讯科技有限公司 | 线条绘制方法、装置、图像处理器、显卡及车辆 |
CN110908560A (zh) * | 2019-11-25 | 2020-03-24 | 航天科技控股集团股份有限公司 | 基于gpu的全液晶仪表虚拟指针样式绘制方法 |
CN111091620A (zh) * | 2019-12-03 | 2020-05-01 | 深圳震有科技股份有限公司 | 基于图形学的地图动态路网处理方法及系统、计算机设备 |
CN111091620B (zh) * | 2019-12-03 | 2023-09-26 | 深圳震有科技股份有限公司 | 基于图形学的地图动态路网处理方法及系统、计算机设备 |
CN111145299A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号拐角绘制方法 |
CN111145298A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 |
CN111145295A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半燕尾形箭头绘制方法 |
CN111145303A (zh) * | 2019-12-26 | 2020-05-12 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号尖角形箭头绘制方法 |
CN111127589A (zh) * | 2019-12-26 | 2020-05-08 | 南京师范大学 | 顾及线宽一致性的矢量地图圆形虚线符号绘制方法 |
CN111080744A (zh) * | 2019-12-26 | 2020-04-28 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半开放尖角形箭头绘制方法 |
CN111028352A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号开放尖角形箭头绘制方法 |
CN111145299B (zh) * | 2019-12-26 | 2023-08-22 | 南京师范大学 | 顾及线宽一致性的矢量地图实线符号拐角绘制方法 |
CN111028351A (zh) * | 2019-12-26 | 2020-04-17 | 南京师范大学 | 顾及线宽一致性的矢量地图线符号半尖角形箭头绘制方法 |
CN112907436A (zh) * | 2021-02-02 | 2021-06-04 | 深圳市显控科技股份有限公司 | 基于OpenGL的线型绘制方法、系统及介质 |
CN113127945A (zh) * | 2021-05-18 | 2021-07-16 | 福建天晴在线互动科技有限公司 | 一种基于Compute Shader的实时布料仿真的方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103268626A (zh) | 基于gpu的地图线形符号绘制方法及系统 | |
US20130063460A1 (en) | Visual shader designer | |
CN105321199B (zh) | 图形处理流水线及其操作方法与介质 | |
CN104520900A (zh) | Gpu加速的路径再现 | |
US20060170680A1 (en) | Preshaders: optimization of GPU programs | |
KR20040069500A (ko) | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 | |
CN105718420B (zh) | 数据处理装置及其操作方法 | |
CN102903139B (zh) | 一种等值线加速渲染方法 | |
CN103700143A (zh) | 一种基于gpu多遍绘制的三维动态海洋模拟方法 | |
CN112802169A (zh) | 一种三维地质模型实时剖切渲染方法 | |
CN111091620B (zh) | 基于图形学的地图动态路网处理方法及系统、计算机设备 | |
CN104200425A (zh) | 一种gpu图形处理过程中图元裁剪装置及裁剪方法 | |
CN113806654A (zh) | 一种基于地理信息的虚拟空间系统 | |
CN112907436A (zh) | 基于OpenGL的线型绘制方法、系统及介质 | |
CN103440684B (zh) | 一种将球谐光照技术应用于面绘制的方法 | |
CN102496330A (zh) | 六角网格同构模型及其建模方法和应用 | |
CN100476880C (zh) | 一种产生体积阴影的方法及系统 | |
CN113066176B (zh) | 一种地图数据处理方法、装置、设备及存储介质 | |
DeLillo | WebGLU development library for WebGL | |
Nery et al. | Massively parallel identification of intersection points for GPGPU ray tracing | |
CN112560206A (zh) | 一种cad自动绘制输电线路沿布图的方法和系统 | |
CN100524364C (zh) | 用于三维模拟显示的三维体自动生成方法 | |
CN117173369B (zh) | 基于WebGL的三维洪水演进模拟方法及系统 | |
CN113066179B (zh) | 一种地图数据处理方法、装置、设备及存储介质 | |
Mesquita et al. | Non-overlapping geometric shadow map |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130828 |