《医学三维模型的网页显示的方法及其系统.pdf》由会员分享,可在线阅读,更多相关《医学三维模型的网页显示的方法及其系统.pdf(15页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102880454 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 0 4 5 4 A *CN102880454A* (21)申请号 201210198849.5 (22)申请日 2012.06.15 G06F 9/44(2006.01) G06T 17/00(2006.01) H04L 29/08(2006.01) (71)申请人深圳市旭东数字医学影像技术有限 公司 地址 518000 广东省深圳市福田区福华一路 98号卓越大厦九楼907 (72)发明人叶建平 郭李云 张吉帅 杨光 (74)专利代理机构北京律诚同业知识产权代理 有限公司 1。
2、1006 代理人刘健 黄韧敏 (54) 发明名称 医学三维模型的网页显示的方法及其系统 (57) 摘要 本发明适用于医学三维模型应用技术领域, 提供了一种医学三维模型的网页显示的方法及其 系统;所述方法包括:A、向客户端传送采用文本 形式头文件和二进制数据文件表示的医学三维模 型数据;B、所述客户端使用脚本语言解析所述文 本形式头文件和二进制数据文件,获得所述医学 三维模型数据;C、所述客户端使用所述脚本语言 调用着色器模块对所述医学三维模型数据进行医 学三维模型的网页显示。借此,本发明提高了医学 三维模型数据的网络传输的速度及医学三维模型 网页显示的效率。 (51)Int.Cl. 权利要求书。
3、2页 说明书10页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 10 页 附图 2 页 1/2页 2 1.一种医学三维模型的网页显示的方法,其特征在于,所述方法包括: A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据; B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医 学三维模型数据; C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学 三维模型的网页显示。 2.根据权利要求1所述的方法,其特征在于,在所述步骤C之后还包括: D、在所述客户端对所述医学三维模型进行实。
4、时交互操作。 3.根据权利要求1所述的方法,其特征在于,所述步骤A包括: A1、定义文本形式头文件和二进制数据文件的描述格式; A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文 件; A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送。 4.根据权利要求3所述的方法,其特征在于,所述步骤A1包括: A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义所述医学三维 模型的结构元素以及二进制数据文件语法; A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型 的结构元素; 所述医学三维模型的结构元素包括:医学。
5、三维模型的顶点数组、顶点法向量数组、多边 形拓扑信息数组和纹理坐标数组中的一个或者多个; 所述步骤A2包括: A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学 三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据 文件语法; A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数; A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形 拓扑信息数组和纹理坐标数组中的一个或者多个数组; A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓 扑信息数组和纹理坐标数组中的一。
6、个或者多个数组; A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组 的一个或者多个数组元素与前一元素的差值,并代替原始值; A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数 组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。 5.根据权利要求3所述的方法,其特征在于,所述步骤B包括: B1、所述客户端接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文 件; B2、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述 医学三维模型数据。 6.根据所述要求5所述的方法,其特征在于,所述步骤B2。
7、包括: 权 利 要 求 书CN 102880454 A 2/2页 3 B21、使用脚本语言为每一个所述文件形式头文件生成一个模型对象;所述模型对象 记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长 度; B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客 户端的内存中; B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取 数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值; B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。 7.根据权利要求5所述的方法,其特征在于,所述步骤C包。
8、括: C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述 客户端的显卡内存中对应的OpenGL顶点属性数组绑定;以及使用脚本语言将顶点属性数 组设置为可用状态; C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所述医学 三维模型。 8.根据权利要求2所述的方法,其特征在于,所述实时交互操作包括通过鼠标对所述 医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量。 9.一种用于实现权利要求18任一项所述医学三维模型的网页显示的系统,其特征在 于,所述系统还包括: 数据传送模块,设置于服务器端,用于向客户端传送采用文本形式头文件和二进制数 。
9、据文件表示的医学三维模型数据; 数据接收模块,设置于客户端,用于使用脚本语言解析所述文本形式头文件和二进制 数据文件,获得所述医学三维模型数据; 网页显示模块,设置于所述客户端,用于使用所述脚本语言调用着色器模块对所述医 学三维模型数据进行医学三维模型的网页显示。 10.根据权利要求9所述的系统,其特征在于,所述系统还包括: 交互操作模块,设置于所述客户端,用于对所述医学三维模型进行实时交互操作。 权 利 要 求 书CN 102880454 A 1/10页 4 医学三维模型的网页显示的方法及其系统 技术领域 0001 本发明涉及医学三维模型应用技术领域,尤其涉及一种医学三维模型的网页显示 的方。
10、法及其系统。 背景技术 0002 随着因特网的普及和发展,基于浏览器的电子商务、远程教育、三维电子地图等 应用迅速发展成熟。但医学应用方面还普遍采用传统的二维网页浏览方式,提供二维图片、 flash等信息。二维图片或者是信息难以给用户直观的获得相关的医学信息,并且其交互性 也不强。 0003 另外一方面,在医学三维模型的数据传输方面,由于医学三维模型数据规模较大, 若直接进行网络传输耗时较多,需要占用较大的带宽,而且容易被恶意软件截获数据。在接 收到医学三维模型数据后,在客户端进行网页三维显示方面,通常的Web3D应用要求用户 下载并安装一个插件,才能进行网页交互式三维显示,这样的操作给用户带。
11、来了不便。 0004 综上可知,现有的医学三维模型数据传输及网络显示技术在实际使用上,显然存 在不便与缺陷,所以有必要加以改进。 发明内容 0005 针对上述的缺陷,本发明的目的在于提供一种医学三维模型的网页显示的方法及 其系统,提高了医学三维模型数据的网络传输的速度及医学三维模型网页显示的效率。 0006 为了实现上述目的,本发明提供一种医学三维模型的网页显示的方法,所述方法 包括: 0007 A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数 据; 0008 B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所 述医学三维模型数据; 0009 C、所。
12、述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行 医学三维模型的网页显示。 0010 根据所述的方法,在所述步骤C之后还包括: 0011 D、在所述客户端对所述医学三维模型进行实时交互操作。 0012 根据所述的方法,所述步骤A包括: 0013 A1、定义文本形式头文件和二进制数据文件的描述格式; 0014 A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数 据文件; 0015 A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发 送。 0016 根据所述的方法,所述步骤A1包括: 说 明 书CN 102880454 A 2/10页 5。
13、 0017 A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义医学三维 模型的结构元素以及二进制数据文件语法; 0018 A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维 模型的结构元素; 0019 所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、 多边形拓扑信息数组和纹理坐标数组中的一个或者多个; 0020 所述步骤A2包括: 0021 A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述 医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制 数据文件语法; 0022 A22、读取。
14、所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数; 0023 A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多 边形拓扑信息数组和纹理坐标数组中的一个或者多个数组; 0024 A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边 形拓扑信息数组和纹理坐标数组中的一个或者多个数组; 0025 A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标 数组的一个或者多个数组元素与前一元素的差值,并代替原始值; 0026 A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信 息数组和纹理坐标数组的元。
15、素移位取反,并依次写入到所述二进制数据文件中。 0027 根据所述的方法,所述步骤B包括: 0028 B1、所述客户端接收所述IP数据包,并解压获得所述文本形式头文件和二进制数 据文件; 0029 B2、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得 所述医学三维模型数据。 0030 根据所述的方法,所述步骤B2包括: 0031 B21、使用脚本语言为每一个所述文件形式头文件生成一个模型对象;所述模型对 象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和 长度; 0032 B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所 。
16、述客户端的内存中; 0033 B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置 读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值; 0034 B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。 0035 根据所述的方法,所述步骤C包括: 0036 C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与 所述客户端的显卡内存中对应的OpenGL顶点属性数组绑定;以及使用脚本语言将顶点属 性数组设置为可用状态; 0037 C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所医 学三维模型述。 。
17、说 明 书CN 102880454 A 3/10页 6 0038 根据所述的方法,所述实时交互操作包括通过鼠标对所述医学三维模型进行拾 取、旋转、平移、放缩、透明显示、三维测量。 0039 为了实现本发明的另一发明目的,本发明还提供了一种用于实现上述任一项所述 医学三维模型的网页显示的系统,所述系统还包括: 0040 数据传送模块,设置于服务器端,用于向客户端传送采用文本形式头文件和二进 制数据文件表示的医学三维模型数据; 0041 数据接收模块,设置于客户端,用于使用脚本语言解析所述文本形式头文件和二 进制数据文件,获得所述医学三维模型数据; 0042 网页显示模块,设置于所述客户端,用于使。
18、用所述脚本语言调用着色器模块对所 述医学三维模型数据进行医学三维模型的网页显示。 0043 根据所述的系统,所述系统还包括: 0044 交互操作模块,设置于所述客户端,用于对所述医学三维模型进行实时交互操作。 0045 本发明通过向客户端传送采用文本形式头文件和二进制数据文件表示的医学三 维模型数据;所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得 所述医学三维模型数据;所述客户端使用所述脚本语言调用着色器模块对所述医学三维模 型数据进行医学三维模型的网页显示。提高了医学三维模型的网络传输及网页显示的效 率。在医学三维模型数据发送方面,将服务器上存储的大规模医学三维模型数据转。
19、换为自 定义的适合网络传输处理的文本形式头文件和二进制数据文件,并根据数据特点进行了加 密;在医学三维模型数据接收方面,客户端浏览器上可使用脚本语言快速解析出三维模型 信息;进一步的,使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显 示,因此,实现了对医学三维模型的Web3D浏览。在Web网页医学三维模型显示方面,避免 了下载安装插件的开销,基于解析得到的三维模型信息使用脚本语言直接调用着色器程序 进行显示,优选的,在读取所述二进制数据文件时,为所述二进制数据文件分配一个唯一 的颜色值,根据所述颜色值,通过鼠标对所述医学三维模型进行实时交互操作,使用户可以 对医学三维模型进行We。
20、b3D交互式浏览。因此基于预设定的颜色信息实现了快速鼠标拾 取,还实现了旋转、平移、放缩、透明显示、三维测量等交互方式。以为实现优质的远程医学 教学,远程医学会议等提供良好的医学三维模型数据的传输、网络显示以及交互方式。 附图说明 0046 图1是本发明第一实施例提供的医学三维模型的网页显示的系统结构图; 0047 图2是本发明第二实施例提供的医学三维模型的网页显示的系统结构图; 0048 图3是本发明第三实施例提供的医学三维模型的网页显示的方法流程图; 0049 图4是本发明一个实施例提供的医学三维模型Web页面显示图。 具体实施方式 0050 为了使本发明的目的、技术方案及优点更加清楚明白。
21、,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。 0051 参见图1,在本发明的第一实施例中,提供了一种医学三维模型的网页显示的系统 说 明 书CN 102880454 A 4/10页 7 100,所述系统还包括: 0052 数据传送模块10,设置于服务器101端,用于向客户端102传送采用文本形式头文 件和二进制数据文件表示的医学三维模型数据; 0053 数据接收模块20,设置于客户端102,用于使用脚本语言解析所述文本形式头文 件和二进制数据文件,获得所述医学三维模型数据; 0054 网页网页显示模块30,设置。
22、于客户端102,用于使用所述脚本语言调用着色器模 块对所述医学三维模型数据进行医学三维模型的网页显示。 0055 在该实施例中,由于医学三维模型是人体解剖结构的三维多边形表示,由顶点坐 标、顶点法向量、多边形拓扑信息和纹理信息等构成。而医学领域的高精度要求,医学三维 模型的数据规模一般较大,不宜直接用作网络传输数据。因此,定义文本形式头文件和二进 制数据文件来表示医学三维模型,这两种文件更适合网络传输和数据快速解析。以提高医 学三维模型数据在网络中的传输速度,在客户端102也能够快速的进行解析,获得医学三 维模型。另一方面,由于所述二进制数据文件的语法是确定的,不需要做基于语法的分析, 在客户。
23、端102整个解析流程只需要将二进制数据文件读入内存数组,对该内存数组做计算 并转存计算结果即可,所以解析效率很高。因此,在接收到客户端102请求传输医学三维模 型时,通过数据传送模块10将文本形式头文件和二进制数据文件表示的医学三维模型数 据传输到客户端102,然后由数据接收模块20接收文本形式头文件和二进制数据文件后, 使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。 完成快速医学三维模型的传输。 0056 另外,在完成医学三维模型数据的传输后,由网页显示模块30使用所述脚本语言 调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。因此,在该实施 例。
24、中,可以实现医学三维模型的Web3D浏览,用户只需在客户端102的本地浏览器上打开使 用该方法的网址,网页上就可直接显示医学三维模型,方便用户浏览医学三维模型,以实现 优质的远程医学教学,远程医学会议等。该医学三维模型的网页显示的系统100可以是软 件单元,硬件单元或软硬件结合单元。作为客户端102可以包括多个,可以是移动终端或非 移动终端;包括手机、PDA(Personal Digital Assistant,个人数字助理)、掌上电脑或者台 式电脑等。而服务器101也可是诸如因特网网络服务器等设备。 0057 参见图2,在本发明的第二实施例中,所述医学三维模型的网页显示的系统100还 包括:。
25、 0058 交互操作模块40,设置于客户端102,用于对所述医学三维模型进行实时交互操 作。所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明 显示、三维测量等操作。在客户端102的网页显示模块30显示医学三维模型后,通过交互 操作模块40实现对显示医学三维模型进行上述多种交互操作方式,而不需要通过专业三 维显示软件进行操作,提高了用户使用该医学三维模块的可操作性。 0059 参见图3,在本发明的第三实施例中,提供了一种医学三维模型的网页显示的方 法,所述方法包括: 0060 步骤S301中,向客户端102传送采用文本形式头文件和二进制数据文件表示的医 学三维模型数。
26、据;该步骤由数据传送模块10实现。 0061 步骤S302中,客户端102使用脚本语言解析所述文本形式头文件和二进制数据文 说 明 书CN 102880454 A 5/10页 8 件,获得所述医学三维模型数据。该步骤由数据接收模块20实现。 0062 步骤S303中,客户端102使用所述脚本语言调用着色器模块对所述医学三维模型 数据进行医学三维模型的网页显示。该步骤由网页显示模块30实现。 0063 在本发明的第四实施例中,所述步骤S301包括: 0064 A1、定义文本形式头文件和二进制数据文件的描述格式;该步骤可以由数据传送 模块10中的定义子模块实现;该步骤A1包括: 0065 A11、。
27、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义所述医学 三维模型的结构元素以及二进制数据文件语法; 0066 A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维 模型的结构元素; 0067 所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、 多边形拓扑信息数组和纹理坐标数组中的一个或者多个; 0068 在A1步骤中,定义文本形式头文件和二进制数据文件所应包含的内容,例如,根 据不同的医学三维模型可能包含的数据也不一样,一般来说可以包括顶点数组、顶点法向 量数组、多边形拓扑信息数组和纹理坐标数组等。 0069 A2、根据所述描述格式,将医学。
28、三维模型数据转换为文本形式头文件和二进制数 据文件;该步骤可以由数据传送模块10中的转换子模块实现;步骤A2包括: 0070 A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述 医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制 数据文件语法; 0071 A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数; 0072 A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多 边形拓扑信息数组和纹理坐标数组中的一个或者多个数组; 0073 A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量。
29、数组、多边 形拓扑信息数组和纹理坐标数组中的一个或者多个数组; 0074 A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标 数组的一个或者多个数组元素与前一元素的差值,代替原始值;具体的,将每个数组中除第 一个元素之外的每个元素与这个元素的前一元素作差值,并将差值代替原始值。 0075 A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信 息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。在上述步 骤中通过取反运算和差值运算实现对多组数组进行加密,保证了医学三维模型数据的网络 传送安全。 0076 在步骤A2中,转换子模块根据。
30、定义后的文本形式头文件和二进制数据文件,以及 此次数据传输的医学三维模型的结构特征,将医学三维模型数据转换为文本形式头文件和 二进制数据文件,具体的可以包括顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理 坐标数组中的一个或者多个数组。然后,根据医学三维模型的具体结构,将其特征数据信息 写入到对应的数组中。 0077 A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发 送。该步骤可以由数据传送模块10中的封装子模块实现。最后封装子模块将文本形式头 说 明 书CN 102880454 A 6/10页 9 文件和二进制数据文件封装成IP数据包进行发送。 0078 在本发明的。
31、第五实施例中,步骤A1:定义文本形式头文件和二进制数据文件的描 述格式的步骤包括: 0079 a)定义文本形式头文件。 0080 文本形式头文件描述了医学三维模型的结构,包括二进制数据文件名、纹理 文件名、材质、索引数、二进制数据文件语法等。这里的二进制数据文件语法指明二 进制数据文件的结构,例如POSITION“,“NORMAL“,“TEXCOORD“指明二进制数据 文件依次存储由医学三维模型的顶点坐标、顶点法向量和纹理坐标组成的元素。而 POSITION“,“TEXCOORD“指明二进制数据文件依次存储由医学三维模型顶点坐标和纹 理坐标组成的元素,不存储顶点法向量。具体的,可以根据医学三维。
32、模型的结构进行设置。 纹理文件一般是通用格式的图片,其本身能够高效地在网络上传输而不需转换为其他格 式;纹理坐标则定义了医学三维模型的顶点到上述图片的映射关系,这些信息需要存储到 二进制数据文件中。然后,根据文本形式头文件去读取二进制数据文件和纹理文件,则能够 获得显示医学三维模型所需的全部信息。 0081 b)定义二进制数据文件。 0082 二进制数据文件依次存储文本形式头文件指明医学三维模型的结构的元素,不同 结构的元素可能是顶点坐标、顶点法向量、多边形拓扑信息和纹理坐标中的一种或几种组 合。考虑到医学三维模型数据压缩和保密的需要,并不直接存储这些数据的原始值,第一元 素存储数据原始值移位。
33、取反后的值,第二个及之后的元素存储与前一元素对应数据差值移 位取反后的结果。这样可以提高医学三维模型数据在传输时的安全性,不容易被其他非法 用户恶意篡改。 0083 而步骤A2:根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二 进制数据文件包括: 0084 a)考虑医学三维模型有无纹理、法向量等信息,定义所述文本形式头文件,并在所 述文本形式头文件写入二进制数据文件名、纹理文件名、材质、索引数、二进制数据文件语 法等信息; 0085 b)读取医学三维模型,获得医学三维模型的顶点总数,多边形总数; 0086 c)新建顶点数组、法向量数组、多边形拓扑信息数组和纹理坐标数组; 0087 。
34、d)将医学三维模型数据依次写入对应的数组,其中顶点坐标需要映射到一个正整 数范围,法向量需要归一化; 0088 e)计算所有数组元素与前一元素的差值,代替原始值; 0089 f)根据头文件将各数组元素移位取反,依次写入二进制数据文件。 0090 步骤A3:将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户 端发送包括:将纹理文件、文本形式头文件和二进制数据文件封装成IP包向客户端发送; 其中纹理文件为纹理坐标数组。 0091 在本发明的第六实施例中,所述步骤B包括: 0092 B1、客户端102接收所述IP数据包,并解压获得所述文本形式头文件和二进制数 据文件;该步骤可以通过数据接。
35、收模块20中的解压子模块实现。具体的所述步骤B2包括: 0093 B21、使用脚本语言为每一个所述文本形式头文件生成一个模型对象;所述模型对 说 明 书CN 102880454 A 7/10页 10 象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和 长度;在该步骤中,每个二进制数据文件中可以包含多个模型的数据文件,所以要想获得每 个模型数据,必须知道在二进制数据文件中的起始位置和长度。比如,皮肤层分为头发,眼 球等数据,所有的数据都保存在皮肤层的二进制数据文件中,要获得头发的模型数据,则必 须知道头发模型在二进制数据文件中的起始位置等信息。 0094 B22、根据。
36、所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所 述客户端的内存中; 0095 B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置 读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;在该步骤中 计算差值时,需要与前一个元素作差,在步骤A25的差值运算中的所述顶点数组、顶点法向 量数组、多边形拓扑信息数组和纹理坐标数组的第一个元素由于没有前一元素,所以假设 前一原始值的初始值为0,当然也可以设置为其他初始值。而在对应的内存位置读取的数据 包括了对应的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组等。 0096 B24、依次处理所。
37、有的所述模型对象,将所有原始值写入对应的浮点数组。在该步 骤中,所述对应的浮点数组包括顶点数据保存到顶点数组中,法向量保存到法向量数组。数 组类型是浮点数组。 0097 B2、客户端102使用脚本语言解析所述文本形式头文件和二进制数据文件,获得 所述医学三维模型数据。该步骤可以通过数据接收模块20中的解析子模块实现。 0098 在本发明的第七实施例中,客户端102接收如第六实施中发送的IP数据包, 0099 步骤B1包括:接收IP数据包并恢复为纹理文件、文本形式头文件和二进制数据文 件。 0100 步骤B2包括:使用脚本语言快速解析出医学三维模型信息。 0101 由于二进制数据文件的语法是确定。
38、的,不需要做基于语法的分析,整个解析流程 只需要将二进制数据文件读入内存数组,对该内存数组做计算并转存计算结果即可,所以 解析效率很高。 0102 a)使用脚本语言为每一个文本形式头文件生成一个模型对象,该模型对象记录个 文本形式头文件包含的所有信息,以及医学三维模型的顶点在所有顶点中的起始位置和长 度;在该步骤中,每个二进制数据文件中可以包含多个模型的数据文件,所以要想获得每个 模型数据,必须知道在二进制数据文件中的起始位置和长度。比如,皮肤层分为头发,眼球 等数据,所有的数据都保存在皮肤层的二进制数据文件中,要获得头发的模型数据,就必须 知道头发模型在二进制数据文件中的起始位置等信息。 0。
39、103 b)根据所述模型对象记录的二进制数据文件名读取二进制数据文件到内存中; 0104 c)第一个数据的前一原始值设定为0,基于二进制数据文件语法以及上述起始位 置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当 前数据的原始值; 0105 d)依次处理所有模型对象,将所有原始值写入对应的浮点数组。 0106 在本发明的第八实施例中,所述使用所述脚本语言调用着色器模块对所述医学三 维模型数据进行三维显示的步骤包括: 0107 C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与 说 明 书CN 102880454 A 10 8/10页 11 。
40、所述客户端的显卡内存中对应的OpenGL(Open Graphics Library,定义了一个跨编程语 言、跨平台的编程接口的规格)顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置 为可用状态;该步骤可以通过网页显示模块30的数组处理子模块实现; 0108 C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所述 医学三维模型;该步骤可以通过网页显示模块30的显示子模块实现。 0109 本发明的一个实施例中,网页显示模块30是基于OpenGL实现三维显示,OpenGL 是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。 OpenGL是个。
41、专业的图形程序接口,是一个功能强大,调用方便的底层图形库,封装了大量对 显卡进行操作的图形函数。为了达到实时显示大数据量医学三维模型的目的,必须发挥显 卡强大的硬件图形处理性能。该实施例中将OpenGL顶点属性数组0、1、2设置为可用状态, 预先将所有的顶点坐标、顶点法向量和纹理坐标分别写入对应的浮点数组,并将浮点数组 与显卡内存中对应的顶点属性数组绑定起来,在实时交互式三维显示过程中,调用顶点着 色器和片断着色器代码以最大限度的发挥显卡性能。具体的操作包括下述步骤: 0110 a)所有数据都写入浮点数组后,使用脚本语言将顶点属性数组设置为可用状态, 调用glBindBuffer()或glBi。
42、ndTexture()将浮点数组与显卡内存中对应的顶点属性数组 绑定,并为顶点属性数组命名; 0111 b)将顶点属性数组名作为参数传递给顶点着色器并实现实时显示。 0112 在本发明的第九个实施例中,所述使用所述脚本语言调用着色器模块对所述医学 三维模型数据进行三维显示的步骤之后还包括: 0113 D、在客户端102对所述医学三维模型进行实时交互操作。该步骤可通过医学三维 模型的网页显示的系统100的交互操作模块40实现。 0114 在该实施例中,在客户端102的网页显示模块30显示医学三维模型后,通过交互 操作模块40实现对显示医学三维模型进行鼠标拾取、旋转、平移、放缩、透明显示、三维测 。
43、量等交互方式。而不需要通过专业三维显示软件进行操作。当然,还可以是通过客户端102 的触摸屏幕实现对医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量等交互操 作。 0115 在该实施例中,具体的包括下述步骤: 0116 a)快速鼠标拾取。 0117 鼠标是二维输入设备,通常得到的信息只具有x、y方向的二维信息,一般情况下, 需要实现在三维环境下的拾取,则要根据x、y计算第三维的z值。OpenGL虽然提供用于三 维鼠标拾取的函数,但z值计算没有遵循射线穿个物体的先后顺序,计算结果并不稳定。在 医学三维模型的交互中,鼠标拾取对象往往是某一个组织或器官,基于这个特点本发明提 出下述鼠标拾取。
44、方法。 0118 1)为客户端102显示的网页的医学三维模型绘图区域添加鼠标响应事件; 0119 2)读取二进制数据文件时,同时为其分配一个唯一的颜色值,使得每一个组织或 器官都有一个唯一的颜色值; 0120 3)创建帧缓存对象,将渲染缓冲区和纹理缓冲区绑定到对象; 0121 4)使用脚本语言调用片断着色器代码进行离屏渲染绘图 0122 5)获得鼠标x、y方向的屏幕坐标; 说 明 书CN 102880454 A 11 9/10页 12 0123 6)离屏渲染,生成帧缓冲区; 0124 7)读取帧缓存里面的内容到一个数组里面,根据x、y方向的屏幕坐标读取该数组 对应位置的颜色值, 0125 8)。
45、通过颜色值获得颜色编号就可以知道鼠标拾取的是哪一个组织或器官。 0126 b)旋转、平移、放缩。 0127 1)为客户端102显示的网页的医学三维模型绘图区域添加鼠标响应事件; 0128 2)根据鼠标事件改变OpenGL的投影矩阵、模型视图变换矩阵,并作为参数设置给 顶点着色器代码; 0129 3)脚本语言调用顶点着色器和片断着色器代码进行三维显示,将鼠标操作效果体 现出来。 0130 c)透明显示。 0131 1)在客户端102显示的网页采用一个滑动条标签来控制模型透明度,为之添加鼠 标响应事件; 0132 2)调用glblendFunc()函数设置颜色混合方式; 0133 3)响应鼠标事件。
46、,修改滑动条的位置,并设置模型的透明度; 0134 4)将透明度作为参数设置给片断着色器代码; 0135 5)脚本语言调用顶点着色器和片断着色器代码进行三维显示,将透明效果体现出 来。 0136 d)医学三维模型的三维测量。这里以三维距离测量来说明,三维角度测量的方法 与之类似。 0137 1)为客户端102显示的网页增加一个标签来处理测量交互; 0138 2)响应鼠标事件,开始测量过程; 0139 3)鼠标点击测量的起点和终点,捕获起点、终点的屏幕x、y坐标; 0140 4)调用gluUnProject()函数获得起点、终点在世界坐标的坐标,根据两点间距离 公式计算三维距离。 0141 在上。
47、述多个通过鼠标对所述医学三维模型进行实时交互操作实施例中,也可以通 过用户在客户端102的触摸屏上对医学三维模型的点击选择操作的方式代替所述的鼠标 的点击选择操作的方式。 0142 参见图4,在本发明的一个实施例中,提供了一个人体三维模型数据的web3D交互 式浏览的方法,包括: 0143 1、为每一个医学三维模型数据定义一个文本形式头文件,其内容包括二进制数据 文件的文件名,顶点总数和索引总数,二进制数据文件语法定义为“POSITION“,“NORMAL“, “TEXCOORD“。对于人体模型来说,将其分为8层,每层都是一个独立的三维模型,为每层模 型数据提供一个文本形式头文件。这8层是:皮。
48、肤层,肌肉层,骨骼层,结缔组织,内脏层,淋 巴系统层,循环系统层,神经网络层。由于每个人体层包括很多部分,比如皮肤层分为头发, 眼球等,所以对应的头文件中需要记录每部分的属性,包括名称,颜色值,纹理图片的名称, 在其二进制数据文件的位置,以及包含的子区域的名称等信息。 0144 2、根据所述步骤A2的方式,将三维人体模型的顶点坐标、顶点法向量和纹理坐标 压缩加密后转换为二进制数据文件,并将二进制数据文件和纹理文件封装成IP数据包向 说 明 书CN 102880454 A 12 10/10页 13 客户端102发送。 0145 3、客户端102接收IP数据包,将IP数据包恢复为纹理文件,文本形式头文件和二 进制数据文件。 0146 4、解析二进制数据文件。使用脚本语言将每个二进制数据头文件解析成一个类, 该类不仅记录文本形式头文件中的所有信息,并记录各医学三维模型的顶点在数据文件生 成数组中的起始位置和长度。由于每个人体层由很多结构组成,每个结构又分为很多小结 构,如皮肤层分为头发,眼球等,眼球分为虹膜和瞳孔。所以,需要在类中记录每个部分在数 组中的位置。 0147 5、根据二进制数据文件名读取二进制数据文件到内存中,经过反加密,将数据转 成真实的二进制数据。根据文本形式头文件中定义的顶点总数和索引总数,将二进制数据 转成浮点数,分别保存到顶点数组,法向量数组和纹理数组中。 。