一种三维模型数据分布式绘图方法及装置 技术领域 本发明涉及空间信息技术、 计算机图形学、 虚拟现实技术和计算机操作系统等领 域技术领域, 特别是涉及一种三维模型数据分布式绘图方法及装置。
背景技术 模型是对客观世界中各种规律或过程的抽象或模拟, 空间数据模型则是对现实世 界中空间实体及其相互联系的抽象, 是描述和组织空间数据、 以及设计空间数据库模式的 基础。在计算机图形学中, 通常用三维空间数据模型 ( 简称三维模型 ) 描述三维物体, 然后 再通过计算机或者其它视频设备进行显示。显示的三维模型可以是现实世界的实体, 也可 以是虚构的东西, 既可以小到原子, 也可以大到很大的尺寸。 任何物理自然界存在的东西都 可以用三维模型表示。
三维模型包括几何和纹理两部分。 其中, 几何部分主要分为三种 : 基于矢量的表面 模型、 基于体元的实体模型和混合模型。
许多三维模型需要使用纹理进行覆盖, 将纹理排列放到三维模型上的过程称作纹 理映射。纹理就是一个图像, 但是它可以让模型更加细致并且看起来更加真实。
随着科学技术的不断进步, 在计算机图形学、 虚拟现实、 城市规划、 文物修复、 动画 游戏、 计算机辅助设计、 地理信息系统、 医学图形等领域越来越多地应用到三维图形。应用 的需求带动了采集技术的发展, 现在的机载激光扫描、 高分辨率卫星影像, 三维数字摄像 和扫描系统等高效的空间数据获取方法使得生成高分辨率的三维模型成为现实, 但也使 得三维模型数据的数据量呈几何级数增长。因为三维物体表面细节的表现往往需要纹理 (Texture-Compression, 也称之为材质 ) 来实现, 那么越是高分辨率越是真彩色的纹理自 然表现力也是越强, 三维模型的高分辨率 ( 或者叫高精度 ) 越高, 三维模型需要的纹理就越 多, 数据量也就越大, 绘制时用的时间越长。同时, Internet 也已经成为一种数据共享、 分 布式存储、 分布式计算、 传输、 可视化等的基础平台, 因此一个系统所需要绘制的三维模型 可能分布式存储在网络环境中, 甚至是异构环境中, 那么如何实现在一个客户端显示所需 用的分布式存储的三维模型, 也就是如何实现三维模型数据的分布式绘图, 成为一个迫切 需要解决的问题。
发明内容
为解决上述技术问题, 本发明实施例提供了一种三维模型数据分布式绘图方法及 装置, 技术方案如下 :
一种三维模型数据分布式绘图方法, 包括 :
向多个请求接收端发送绘制数据请求, 所述绘制数据请求中携带视图控制参数 ;
接收所述请求接收端反馈的、 与所述绘制数据请求对应的绘制后数据, 所述绘制 后数据包含请求接收端根据视图控制参数绘制三维模型数据所对应的图像以及所述图像 上各像素对应的合成标识量 ;根据所述绘制后数据中各像素的合成标识量, 对所接收到的绘制后数据进行合 成, 以确定合成后的图像为三维模型数据分布式绘图后的图像。
相对应的, 本发明实施例提供一种三维模型数据分布式绘图装置, 包括 :
请求发送模块, 用于向多个请求接收端发送绘制数据请求, 所述绘制数据请求中 携带视图控制参数 ;
数据接收模块, 用于接收所述请求接收端反馈的、 与所述绘制数据请求对应的绘 制后数据, 所述绘制后数据包含请求接收端根据视图控制参数绘制三维模型数据所对应的 图像以及所述图像上各像素对应的合成标识量 ;
合并处理模块, 用于根据所述绘制后数据中各像素的合成标识量, 对所接收到的 绘制后数据进行合成。
本发明实施例还提供一种三维模型数据分布式绘图方法, 包括 :
接收请求发送端发送的绘制数据请求, 所述绘制数据请求携带视图控制参数, 所 述视图控制参数包括 : 视图窗口的外包矩形、 视点参数和投影参数 ;
根据所述视图控制参数绘制三维模型数据, 并生成与所述视图控制参数对应的视 图窗口的外包矩形大小相同的图像 ; 获取所述图像上各像素深度, 并将所述像素深度用来构成对应像素的合成标识 量, 所述像素深度用于判断各像素所对应的三维模型数据距离所述视图控制参数所确定的 视点的距离的远近 ;
将所述绘制后的图像和各像素对应的合成标识量作为绘制后数据发送给所述请 求发送端。
相对应的, 本发明实施例提供一种三维模型数据分布式绘图装置, 包括 :
请求接收模块, 用于接收请求发送端发送的绘制数据请求, 所述绘制数据请求携 带视图控制参数, 所述视图控制参数包括 : 视图窗口的外包矩形、 视点参数和投影参数 ;
图像生成模块, 用于根据所述视图控制参数绘制三维模型数据, 并生成与所述视 图控制参数对应的视图窗口的外包矩形大小相同的图像 ;
标识量生成模块, 用于获取所述图像上各像素深度, 并将所述像素深度用来构成 对应像素的合成标识量, 所述像素深度用于判断各像素所对应的三维模型数据距离所述视 图控制参数所确定的视点的距离的远近 ;
数据发送模块, 用于将所述绘制后的图像和各像素对应的合成标识量作为绘制后 数据发送给所述请求发送端。
本发明实施例所提供的技术方案中, 当需要绘制三维模型数据时, 请求发送端向 多个请求接收端发送相应的携带有视图控制参数的绘制数据请求, 并当接收到所述请求接 收端反馈的与所述请求对应的、 包含根据视图控制参数绘制三维模型数据所对应的图像以 及所述图像上各像素对应的合成标识量的绘制后数据后, 根据各像素的合成标识量, 对多 个图像进行合成处理, 以确定合成后的图像为三维模型数据分布式绘图后的图像。本发明 所提供的方案中, 通过向多个请求接收端发送相应的绘制数据请求, 并将请求接收端反馈 的结果进行合成处理, 以此实现三维模型数据的分布式绘图。
附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单的介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可 以根据这些附图获得其他的附图。
图 1 为本发明实施例所提供的一种三维模型数据分布式绘图方法的第一种流程 图;
图 2 为本发明实施例所提供的一种三维模型数据分布式绘图方法的第二种流程 图;
图 3 为本发明实施例所提供的一种三维模型数据分布式绘图方法的第三种流程 图;
图 4 为本发明实施例所提供的一种三维模型数据分布式绘图方法的第四种流程 图;
图 5 为本发明实施例所提供的 Z 缓冲器算法的第一种坐标示意图 ;
图 6 为本发明实施例所提供的 Z 缓冲器算法的第二种坐标示意图 ;
图 7 为本发明实施例所提供的 Z 缓冲器算法的第三种坐标示意图 ; 图 8 为本发明实施例所提供的一种三维模型数据分布式绘图装置的第一种结构 示意图 ;
图 9 为本发明实施例所提供的一种三维模型数据分布式绘图装置的第二种结构 示意图。
具体实施方式
为了实现将分布式存储的三维模型进行分布式绘制, 然后有效地显示在一个客户 请求端, 即实现三维模型数据的分布式绘图, 本发明实施例提供了一种三维模型数据分布 式绘图方法及装置。该三维模型数据分布式绘图方法的基本思想是 :
当需要绘制三维模型数据时, 请求发送端向多个请求接收端发送包含相同视图控 制参数的相应绘制数据请求 ; 各请求接收端在接收到绘制数据请求后, 反馈相应的绘制后 数据 ; 而请求发送端在接收到各请求接收端反馈的绘制后数据后, 对多个绘制后数据进行 合成处理, 以确定合成后的图像为三维模型数据分布式绘图后的图像。
因此, 本发明实施例所提供的方案可以有效实现三维模型数据的分布式绘图。
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅是本发明一部分实施例, 而不是全部的实施例。基于本 发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例, 都属于本发明保护的范围。
为了方便对本发明实施例所提供的方案的理解, 首先对三维模型在视图窗口中的 显示过程进行简单介绍。三维模型在视图窗口中的显示过程一般为 :
首先通过空间数据索引将符合给定空间条件的三维模型取出来经过传输介质传 给三维模型使用者 ( 如客户端 ) ; 然后对三维模型数据进行一系列的坐标变换和处理之后, 变换为二维图像上的坐标点 ; 根据显示参数, 三维模型最终通过绘图算法栅格化成图像像 素, 绘制成一幅栅格图像, 在客户端显示或输出 ( 如计算机屏幕显示、 在纸上打印输出及生成图像文件输出等 )。其中三维模型的绘制, 最终被绘图算法归结为对一个个像素的操作, 最终能够被显示出来的都是绘制在相同像素上的三维模型数据中距离观察点最近的三维 模型数据所绘制的像素。
因此, 本发明提出以相同的视图控制参数来控制三维模型数据的分布式绘制, 同 时记录图像上每个像素的深度, 用来判断像素所对应的三维模型数据距离所述视图控制参 数所确定的视点的距离的远近, 构成相应像素的合成标示量, 最后依据像素的合成标示量 对绘制后的多个图像进行合成, 确定合成后的图像为三维模型数据分布式绘图后的图像。
下面首先从请求发送端的角度, 对本发明实施例所提供的一种三维模型数据分布 式绘图方法进行介绍。所述请求发送端可以为电脑设备、 手机设备等。
如图 1 所示, 一种三维模型数据分布式绘图方法, 可以包括 :
步骤 S101, 请求发送端向多个请求接收端发送绘制数据请求, 所述绘制数据请求 中携带视图控制参数 ;
可以理解的是, 所述请求接收端可以为图像处理服务器或具有图像处理功能的其 他设备等。
在多个请求接收端存储着请求发送端所需显示的三维模型数据的场景下, 当需要 绘制三维模型数据时, 请求发送端则根据进行三维模型数据显示的视图窗口所确定视图控 制参数, 生成相应的绘制数据请求, 并将所生成的绘制数据请求发送给相应的请求接收端。 其中, 所述视图控制参数可以包括 :
视图窗口的外包矩形, 视点参数和投影参数 ; 所述视点参数包括视点在世界坐标 系中的位置 O(xo, yo, zo), 其中 xo, y o, zo 表示视点在世界坐标系中的三个分量、 视点所观察 的目标位置 A(xa, y a, za) 和虚拟照相机向上的向量 up(xup, yup, zup) ; 通过视点参数可以确定 一个变换矩阵, 将原始坐标系中的顶点坐标变换到视点坐标系下。 投影参数包括 : 正交投影 和透视投影。或者是通过上述参数得到的视图矩阵和投影矩阵。
步骤 S102, 接收所述请求接收端反馈的、 与所述绘制数据请求对应的绘制后数 据;
其中, 所述绘制后数据包含请求接收端根据视图控制参数绘制三维模型数据所对 应的图像以及所述图像上各像素对应的合成标识量。
请求接收端在接收到相应的绘制数据请求后, 则根据所述绘制数据请求中携带的 视图控制参数绘制三维模型数据, 生成与所述视图控制参数对应的视图窗口的外包矩形大 小相同的图像, 同时记录所述图像上各像素对应的合成标识量, 所述合成标识量包含有所 述图像上像素的深度。其中, 所述像素的深度用于判断各像素所对应的三维模型数据距离 所述视图控制参数所确定的视点的距离的远近。最后, 请求接收端将绘制三维模型数据所 对应的图像和各像素对应的合成标识量作为绘制后数据反馈给所述请求发送端。 可以理解 的是, 所述合成标识量中还可以包含三维模型的标识号、 像素的透明度等信息。
需要说明的是, 本实施例中, 依据视图控制参数用栅格数据结构来表示视图窗口 的像素, 所述像素为视图窗口平面划分成的均匀网格单元, 所述像素为栅格数据中的基本 信息存储单元, 所述像素的坐标位置依据所述像素在所述视图窗口中对应的行号和列号确 定。假设用 zValue 表示为像素的深度 ( 即 z 坐标 ), 根据不同的系统, 如果像素深度值越小 离视点越近, 则表示像素深度的栅格数据的初始值赋极大值 ; 如果像素深度值越大离视点
越近, 则表示像素深度的栅格数据的初始值赋极小值。其中, 像素深度为初始值时, 意味着 所述像素还没有被任何三维模型所绘制。
步骤 S103, 根据所述绘制后数据中各像素的合成标识量, 对所接收到的绘制后数 据进行合成, 以确定合成后的图像为三维模型数据分布式绘图后的图像。
请求发送端在接收到请求接收端反馈的相应的绘制后数据后, 则利用绘制后数据 中像素的合成标识量, 对所接收的多个绘制后数据进行合成处理, 也就是对多个图像进行 合成处理, 使得在像素级上以近物取代远物, 并且与形体在屏幕上出现的顺序无关。
其中, 根据所述绘制后数据各像素的合成标识量, 对所接收到的绘制后数据进行 合成, 具体可以为 :
当请求发送端接收到请求接收端反馈的绘制后数据后, 判断是否存在在先绘制后 数据, 如果是, 则将当前所接收到的绘制后数据作为当前绘制后数据, 并且根据所述当前绘 制后数据中每个像素的合成标识量和在先绘制后数据中对应像素的合成标识量, 对所述当 前绘制后数据和所述在先绘制后数据进行合成处理, 并将合成后数据作为新的在先绘制后 数据 ; 否则, 将当前所接收到的绘制后数据作为在先绘制后数据 ;
对接收到的绘制后数据进行上述处理, 并确定最终合成后的图像为三维模型数据 分布式绘图后的图像。
可以理解的是, 可以根据实际情况对接收到的所有绘制后数据进行上述合成处 理, 或者对接收到的且满足请求发送端特定需求的绘制后数据进行上述处理, 都是合理的。 同时, 一般将请求发送端所接收的且满足特定需求的第一个绘制后数据作为在先绘制后数 据, 而将后续接收到的且满足特定需求的绘制后数据依次作为当前绘制后数据, 与当前存 在的在先绘制后数据进行特定的合成处理, 并将合成后数据作为新的在先绘制后数据, 直 到满足需求的绘制后数据都与在先绘制后数据合成处理后, 形成三维模型数据分布式绘图 后的图像。
更进一步的, 如图 2 所示, 以像素深度值越小离视点越近的情况为例, 所述根据所 述当前绘制后数据中每个像素的合成标识量和在先绘制后数据中对应像素的合成标识量, 对所述当前绘制后数据和所述在先绘制后数据进行合成处理, 可以包括 :
步骤 S201, 将所述视图控制参数所对应的视图窗口上的一个未分析的像素确定为 当前待分析像素 Pi ;
绘制后数据中的图像是请求接收端在接收到相应的绘制数据请求后, 根据所述绘 制数据请求中携带的视图控制参数绘制三维模型数据, 生成与所述视图控制参数对应的视 图窗口的外包矩形大小相同的图像, 也就是所述视图控制参数所对应的视图窗口上的像素 与所述当前绘制后数据中的图像的像素以及所述在先绘制后数据中的图像的像素是一一 对应的。
步骤 S202, 将所述当前绘制后数据中当前待分析像素 Pi 所对应的合成标识量确 定为当前待分析合成标识量 Zi ;
步骤 S203, 判断所述当前待分析合成标识量 Zi 中记录的像素深度是否等于初始 值, 如果是, 则执行步骤 S207 ; 否则, 执行步骤 S204 ;
其中, 本实施例所述的像素深度初始值为极大值。可以理解的是, 根据不同的系 统, 如果像素深度值越小离视点越近, 则所述像素深度初始值赋极大值 ; 如果像素深度值越大离视点越近, 则所述像素深度初始值赋极小值。其中, 像素深度为初始值时, 意味着所述 像素还没有被任何三维模型所绘制。
步骤 S204, 获得所述在先绘制后数据中当前待分析像素 Pi 所对应的合成标识量 Zi’ ;
步骤 S205, 判断所述当前待分析合成标识量 Zi 中记录的像素深度是否小于所述 在先绘制后数据中当前待分析像素 Pi 所对应的合成标识量 Zi’ 所记录的像素深度, 如果 是, 则执行步骤 S206 ; 否则, 执行步骤 S207 ;
步骤 S206, 将所述当前待分析像素 Pi 所对应的在先绘制后数据中的数据替换为 所述当前待分析像素 Pi 所对应的当前绘制后数据中的数据, 执行步骤 S208 ;
步骤 S207, 保留所述当前待分析像素 Pi 所对应的在先绘制后数据中的数据 ;
步骤 S208, 判断所述视图窗口中是否存在未被分析的像素, 如果是, 则执行步骤 S201 ; 否则, 结束。
当像素深度值越小离视点越近时, 通过上述方式可以完成对所述当前绘制后数据 和所述在先绘制后数据进行合成处理。
同时, 如图 3 所示, 以像素深度值越大离视点越近的情况为例, 所述根据所述当前 绘制后数据中每个像素的合成标识量和在先绘制后数据中对应像素的合成标识量, 对所述 当前绘制后数据和所述在先绘制后数据进行合成处理, 可以包括 : 步骤 S301, 将所述视图控制参数所对应的视图窗口上的一个未分析的像素确定为 当前待分析像素 Pi ;
绘制后数据中的图像是请求接收端在接收到相应的绘制数据请求后, 根据所述绘 制数据请求中携带的视图控制参数绘制三维模型数据, 生成与所述视图控制参数对应的视 图窗口的外包矩形大小相同的图像, 也就是所述视图控制参数所对应的视图窗口上的像素 与所述当前绘制后数据中的图像的像素以及所述在先绘制后数据中的图像的像素是一一 对应的。
步骤 S302, 将所述当前绘制后数据中当前待分析像素 Pi 所对应的合成标识量确 定为当前待分析合成标识量 Zi ;
步骤 S303, 判断所述当前待分析合成标识量 Zi 中记录的像素深度是否等于初始 值, 如果是, 则执行步骤 S307 ; 否则, 执行步骤 S304 ;
其中, 本实施例所述的像素深度初始值为极小值。可以理解的是, 根据不同的系 统, 如果像素深度值越小离视点越近, 则所述像素深度初始值赋极大值 ; 如果像素深度值越 大离视点越近, 则所述像素深度初始值赋极小值。其中, 像素深度为初始值时, 意味着所述 像素还没有被任何三维模型所绘制。
步骤 S304, 获得所述在先绘制后数据中当前待分析像素 Pi 所对应的合成标识量 Zi’ ;
步骤 S305, 判断所述当前待分析合成标识量 Zi 中记录的像素深度是否大于所述 在先绘制后数据中当前待分析像素 Pi 所对应的合成标识量 Zi’ 所记录的像素深度, 如果 是, 则执行步骤 S306 ; 否则, 执行步骤 S307 ;
步骤 S306, 将所述当前待分析像素 Pi 所对应的在先绘制后数据中的数据替换为 所述当前待分析像素 Pi 所对应的当前绘制后数据中的数据, 执行步骤 S308 ;
步骤 S307, 保留所述当前待分析像素 Pi 所对应的在先绘制后数据中的数据 ;
步骤 S308, 判断所述视图窗口中是否存在未被分析的像素, 如果是, 则执行步骤 S301 ; 否则, 结束。
当像素深度值越大离视点越近时, 通过上述方式可以完成对所述当前绘制后数据 和所述在先绘制后数据进行合成处理。
可以理解的是, 本实施例所提供的对多个图像的合成处理方式仅仅是一种示例, 并不应该构成对本发明方案的限制。
下面从请求接收端的角度, 对本发明的所提供一种三维模型数据分布式绘图方法 进行介绍。
如图 4 所示, 一种三维模型数据分布式绘图方法, 可以包括 :
步骤 S401, 接收请求发送端发送的绘制数据请求, 所述绘制数据请求携带视图控 制参数 ;
其中, 所述视图控制参数包括 : 视图窗口的外包矩形、 视点参数和投影参数。
步骤 S402, 根据所述视图控制参数绘制三维模型数据, 并生成与所述视图控制参 数对应的视图窗口的外包矩形大小相同的图像 ; 步骤 S403, 获取所述图像上各像素深度, 并将所述像素深度用来构成对应像素的 合成标识量, 所述像素深度用于判断各像素所对应的三维模型数据距离所述视图控制参数 所确定的视点的距离的远近 ;
可以理解的是, 所述合成标识量还可以包括三维模型的标号、 像素透明度等信息。
其中, 所述图像上各像素深度的计算方式可以根据实际情况选择不同的算法, 例 如: Z 缓冲器算法。
下面以 Z 缓冲器算法为例, 对像素深度的计算进行介绍 :
Z 缓冲器算法也叫深度缓冲器算法, 属于图像空间消隐算法, 其首先根据视图控制 参数将三维模型数据的原始坐标变换得到所述视图窗口的视图坐标, 然后进行分析计算。
深度缓冲器算法有两个缓冲器 : 深度缓冲器和帧缓冲器, 对应两个数组 : 深度数 组 depth(x, y) 和属性数组 intensity(x, y)。 前者存放着图像空间每个可见像素的 z 坐标, 后者用来存储图像空间每个可见像素的属性 ( 光强或颜色 ) 值。
其中, Z 缓冲器算法基本思想如下 :
将投影平面每个像素所对应的所有面片 ( 平面或曲面 ) 的深度进行比较, 然后取 离视线最近面片的属性值作为该像素的属性值。
算法通常沿着观察坐标系的 Z 轴来计算各物体表面距观察平面的深度, 它对场景 中的各个物体表面单独进行处理, 且在各面片上逐点进行。物体的描述转化为投影坐标系 之后, 多边形面上的每个点 (x, y, z) 均对应于观察平面上的正投影点 (x, y)。因而, 对于观 察平面上的每个像素 (x, y), 其深度的比较可通过它们 z 值的比较来实现。对于右手坐标 系, z 值最大的点应是可见的。如图 5 所示, 在观察平面上, 面 s1 相对面 s2、 面 s3 离视点最 近, 因此它在该位置 (x, y) 可见。
Z 缓冲器算法步骤如下 :
初始时, 深度缓冲器所有单元均置为离视点最远的值, 帧缓冲器各单元均置为背 景色, 然后逐个处理多边形表中的各面片。每扫描一行, 计算该行各像素 (x, y) 所对应的深
度值 z(x, y), 并将结果与深度缓冲器中该像素单元所存储的深度值 depth(x, y) 进行比较。
根据不同的系统, 如果像素深度值越小离视点越近 :
若 z < depth(x, y), 则 depth(x, y) = z
如果像素深度值越大离视点越近 :
若 z > depth(x, y), 则 depth(x, y) = z
而且将该像素的属性值 I(x, y) 写入帧缓冲器, 即
intensity(x, y) = I(x, y)
否则不变。
其中, 利用 Z 缓冲器算法计算像素深度可以具体如下 :
若已知多边形的方程, 则可用增量法计算扫描线每一个像素的深度。
设平面方程为 :
Ax+By+Cz+D = 0
则多边形面上的点 (x, y) 所对应的深度值为 :
由于所有扫描线上相邻点间的水平间距为 1 个像素单位, 扫描线行与行之间的垂 直间距也为 1。因此可以利用这种连贯性来简化计算过程, 如图 6、 图 7 所示。
若已计算出 (x, y) 点的深度值为 Zi, 沿 x 方向相邻连贯点 (x+1, y) 的深度值 zi+1 可由下式计算 :
沿着 y 方向的计算应先计算出 y 坐标的范围, 然后从上至下逐个处理各个面片。 由 最上方的顶扫描线出发, 沿多边形左边界递归计算边界上各点的坐标 :
这里 m 为该边的斜率, 沿该边的深度也可以递归计算出来, 即:如果该边是一条垂直边界, 则计算公式简化为 :对于每条扫描线, 首先根据公式 (3) 计算出与其相交的多边形最左边的交点所对 应的深度值, 然后, 该扫描线上所有的后续点由 (4) 式计算出来。
所有的多边形处理完毕, 即得消隐后的图形, 也就获得了图像上每个像素所对应 的深度, 进而可构成像素所对应的合成标示量。
步骤 S404, 将所述绘制后的图像和各像素对应的合成标识量作为绘制后数据发送 给所述请求发送端。
本发明实施例所提供的技术方案中, 当需要绘制三维模型数据时, 请求发送端向 多个请求接收端发送相应的携带有视图控制参数的绘制数据请求, 并当接收到所述请求接
收端反馈的与所述请求对应的、 包含根据视图控制参数绘制三维模型数据所对应的图像以 及所述图像上各像素对应的合成标识量的绘制后数据后, 根据各像素的合成标识量, 对多 个图像进行合成处理, 以确定合成后的图像为三维模型数据分布式绘图后的图像。本发明 所提供的方案中, 通过向多个请求接收端发送相应的绘制数据请求, 并将请求接收端反馈 的绘制后数据进行合成处理, 以此实现三维模型数据的分布式绘图。
通过以上的方法实施例的描述, 所属领域的技术人员可以清楚地了解到本发明可 借助软件加必需的通用硬件平台的方式来实现, 当然也可以通过硬件, 但很多情况下前者 是更佳的实施方式。基于这样的理解, 本发明的技术方案本质上或者说对现有技术做出贡 献的部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包 括若干指令用以使得一台计算机设备 ( 可以是个人计算机, 服务器, 或者网络设备等 ) 执 行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括 : 只读存储器 (ROM)、 随机存取存储器 (RAM)、 磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例, 本发明实施例还提供一种三维模型数据分布式绘图装 置, 该装置作为请求发送端, 如图 8 所示, 可以包括 :
请求发送模块 110, 用于向多个请求接收端发送绘制数据请求, 所述绘制数据请求 中携带视图控制参数 ;
数据接收模块 120, 用于接收所述请求接收端反馈的、 与所述绘制数据请求对应的 绘制后数据, 所述绘制后数据包含请求接收端根据视图控制参数绘制三维模型数据所对应 的图像以及所述图像上各像素对应的合成标识量 ;
合并处理模块 130, 用于根据所述绘制后数据中各像素的合成标识量, 对所接收到 的绘制后数据进行合成。
可以理解的是, 作为请求发送端的三维模型数据分布式绘图装置可以为电脑设 备、 手机设备等。
其中, 合并处理模块 130, 可以包括 :
第一判断单元, 用于当接收到请求接收端反馈的绘制后数据后, 判断是否存在在 先绘制后数据, 如果是, 则触发合并处理单元 ; 否则, 触发在先数据确定单元 ;
合并处理单元, 用于将当前所接收到的绘制后数据作为当前绘制后数据, 并且根 据所述当前绘制后数据中每个像素的合成标识量和在先绘制后数据中所对应的像素的合 成标识量, 对所述当前绘制后数据和所述在先绘制后数据进行合成处理, 并将合成后的数 据作为新的在先绘制后数据 ;
在先数据确定单元, 用于将当前所接收到的绘制后数据作为在先绘制后数据。
本发明实施例还提供一种三维模型数据分布式绘图装置, 该装置作为请求接收 端, 如图 9 所示, 可以包括 :
请求接收模块 210, 用于接收请求发送端发送的绘制数据请求, 所述绘制数据请求 携带视图控制参数, 所述视图控制参数包括 : 视图窗口的外包矩形、 视点参数和投影参数 ;
图像生成模块 220, 用于根据所述视图控制参数绘制三维模型数据, 并生成与所述 视图控制参数对应的视图窗口的外包矩形大小相同的图像 ;
标识量生成模块 230, 用于获取所述图像上各像素深度, 并将所述像素深度用来构 成对应像素的合成标识量, 所述像素深度用于判断各像素所对应的三维模型数据距离所述视图控制参数所确定的视点的距离的远近 ;
数据发送模块 240, 用于将所述绘制后的图像和各像素对应的合成标识量作为绘 制后数据发送给所述请求发送端。
可以理解的是, 作为请求接收端的三维模型数据分布式绘图装置可以为图像处理 服务器或具有图像处理功能的其他设备等。
对于装置或系统实施例而言, 由于其基本相应于方法实施例, 所以相关之处参见 方法实施例的部分说明即可。以上所描述的装置或系统实施例仅仅是示意性的, 其中所述 作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以 是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可 以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。 本领域普通 技术人员在不付出创造性劳动的情况下, 即可以理解并实施。
在本发明所提供的几个实施例中, 应该理解到, 所揭露的系统, 装置和方法, 在没 有超过本申请的精神和范围内, 可以通过其他的方式实现。当前的实施例只是一种示范性 的例子, 不应该作为限制, 所给出的具体内容不应该限制本申请的目的。例如, 所述单元或 子单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式, 例如多个单 元或多个子单元结合一起。另外, 多个单元可以或组件可以结合或者可以集成到另一个系 统, 或一些特征可以忽略, 或不执行。
另外, 所描述系统, 装置和方法以及不同实施例的示意图, 在不超出本申请的范围 内, 可以与其它系统, 模块, 技术或方法结合或集成。 另一点, 所显示或讨论的相互之间的耦 合或直接耦合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信连接, 可以 是电性, 机械或其它的形式。
以上所述仅是本发明的具体实施方式, 应当指出, 对于本技术领域的普通技术人 员来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应 视为本发明的保护范围。