CN102880454B - 医学三维模型的网页显示的方法及其系统 - Google Patents
医学三维模型的网页显示的方法及其系统 Download PDFInfo
- Publication number
- CN102880454B CN102880454B CN201210198849.5A CN201210198849A CN102880454B CN 102880454 B CN102880454 B CN 102880454B CN 201210198849 A CN201210198849 A CN 201210198849A CN 102880454 B CN102880454 B CN 102880454B
- Authority
- CN
- China
- Prior art keywords
- array
- dimensional medical
- medical model
- binary data
- file
- 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
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明适用于医学三维模型应用技术领域,提供了一种医学三维模型的网页显示的方法及其系统;所述方法包括:A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。借此,本发明提高了医学三维模型数据的网络传输的速度及医学三维模型网页显示的效率。
Description
技术领域
本发明涉及医学三维模型应用技术领域,尤其涉及一种医学三维模型的网页显示的方法及其系统。
背景技术
随着因特网的普及和发展,基于浏览器的电子商务、远程教育、三维电子地图等应用迅速发展成熟。但医学应用方面还普遍采用传统的二维网页浏览方式,提供二维图片、flash等信息。二维图片或者是信息难以给用户直观的获得相关的医学信息,并且其交互性也不强。
另外一方面,在医学三维模型的数据传输方面,由于医学三维模型数据规模较大,若直接进行网络传输耗时较多,需要占用较大的带宽,而且容易被恶意软件截获数据。在接收到医学三维模型数据后,在客户端进行网页三维显示方面,通常的Web3D应用要求用户下载并安装一个插件,才能进行网页交互式三维显示,这样的操作给用户带来了不便。
综上可知,现有的医学三维模型数据传输及网络显示技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种医学三维模型的网页显示的方法及其系统,提高了医学三维模型数据的网络传输的速度及医学三维模型网页显示的效率。
为了实现上述目的,本发明提供一种医学三维模型的网页显示的方法,所述方法包括:
A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
根据所述的方法,在所述步骤C之后还包括:
D、在所述客户端对所述医学三维模型进行实时交互操作。
根据所述的方法,所述步骤A包括:
A1、定义文本形式头文件和二进制数据文件的描述格式;
A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;
A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送。
根据所述的方法,所述步骤A1包括:
A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义医学三维模型的结构元素以及二进制数据文件语法;
A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
所述步骤A2包括:
A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,并代替原始值;
A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。
根据所述的方法,所述步骤B包括:
B1、所述客户端接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文件;
B2、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。
根据所述的方法,所述步骤B2包括:
B21、使用脚本语言为每一个所述文件形式头文件生成一个模型对象;所述模型对象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长度;
B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客户端的内存中;
B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;
B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。
根据所述的方法,所述步骤C包括:
C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述客户端的显卡内存中对应的OpenGL顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置为可用状态;
C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所医学三维模型述。
根据所述的方法,所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量。
为了实现本发明的另一发明目的,本发明还提供了一种用于实现上述任一项所述医学三维模型的网页显示的系统,所述系统还包括:
数据传送模块,设置于服务器端,用于向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
数据接收模块,设置于客户端,用于使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
网页显示模块,设置于所述客户端,用于使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
根据所述的系统,所述系统还包括:
交互操作模块,设置于所述客户端,用于对所述医学三维模型进行实时交互操作。
本发明通过向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。提高了医学三维模型的网络传输及网页显示的效率。在医学三维模型数据发送方面,将服务器上存储的大规模医学三维模型数据转换为自定义的适合网络传输处理的文本形式头文件和二进制数据文件,并根据数据特点进行了加密;在医学三维模型数据接收方面,客户端浏览器上可使用脚本语言快速解析出三维模型信息;进一步的,使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示,因此,实现了对医学三维模型的Web3D浏览。在Web网页医学三维模型显示方面,避免了下载安装插件的开销,基于解析得到的三维模型信息使用脚本语言直接调用着色器程序进行显示,优选的,在读取所述二进制数据文件时,为所述二进制数据文件分配一个唯一的颜色值,根据所述颜色值,通过鼠标对所述医学三维模型进行实时交互操作,使用户可以对医学三维模型进行Web3D交互式浏览。因此基于预设定的颜色信息实现了快速鼠标拾取,还实现了旋转、平移、放缩、透明显示、三维测量等交互方式。以为实现优质的远程医学教学,远程医学会议等提供良好的医学三维模型数据的传输、网络显示以及交互方式。
附图说明
图1是本发明第一实施例提供的医学三维模型的网页显示的系统结构图;
图2是本发明第二实施例提供的医学三维模型的网页显示的系统结构图;
图3是本发明第三实施例提供的医学三维模型的网页显示的方法流程图;
图4是本发明一个实施例提供的医学三维模型Web页面显示图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,在本发明的第一实施例中,提供了一种医学三维模型的网页显示的系统100,所述系统还包括:
数据传送模块10,设置于服务器101端,用于向客户端102传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
数据接收模块20,设置于客户端102,用于使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
网页网页显示模块30,设置于客户端102,用于使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
在该实施例中,由于医学三维模型是人体解剖结构的三维多边形表示,由顶点坐标、顶点法向量、多边形拓扑信息和纹理信息等构成。而医学领域的高精度要求,医学三维模型的数据规模一般较大,不宜直接用作网络传输数据。因此,定义文本形式头文件和二进制数据文件来表示医学三维模型,这两种文件更适合网络传输和数据快速解析。以提高医学三维模型数据在网络中的传输速度,在客户端102也能够快速的进行解析,获得医学三维模型。另一方面,由于所述二进制数据文件的语法是确定的,不需要做基于语法的分析,在客户端102整个解析流程只需要将二进制数据文件读入内存数组,对该内存数组做计算并转存计算结果即可,所以解析效率很高。因此,在接收到客户端102请求传输医学三维模型时,通过数据传送模块10将文本形式头文件和二进制数据文件表示的医学三维模型数据传输到客户端102,然后由数据接收模块20接收文本形式头文件和二进制数据文件后,使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。完成快速医学三维模型的传输。
另外,在完成医学三维模型数据的传输后,由网页显示模块30使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。因此,在该实施例中,可以实现医学三维模型的Web3D浏览,用户只需在客户端102的本地浏览器上打开使用该方法的网址,网页上就可直接显示医学三维模型,方便用户浏览医学三维模型,以实现优质的远程医学教学,远程医学会议等。该医学三维模型的网页显示的系统100可以是软件单元,硬件单元或软硬件结合单元。作为客户端102可以包括多个,可以是移动终端或非移动终端;包括手机、PDA(PersonalDigitalAssistant,个人数字助理)、掌上电脑或者台式电脑等。而服务器101也可是诸如因特网网络服务器等设备。
参见图2,在本发明的第二实施例中,所述医学三维模型的网页显示的系统100还包括:
交互操作模块40,设置于客户端102,用于对所述医学三维模型进行实时交互操作。所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量等操作。在客户端102的网页显示模块30显示医学三维模型后,通过交互操作模块40实现对显示医学三维模型进行上述多种交互操作方式,而不需要通过专业三维显示软件进行操作,提高了用户使用该医学三维模块的可操作性。
参见图3,在本发明的第三实施例中,提供了一种医学三维模型的网页显示的方法,所述方法包括:
步骤S301中,向客户端102传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;该步骤由数据传送模块10实现。
步骤S302中,客户端102使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。该步骤由数据接收模块20实现。
步骤S303中,客户端102使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。该步骤由网页显示模块30实现。
在本发明的第四实施例中,所述步骤S301包括:
A1、定义文本形式头文件和二进制数据文件的描述格式;该步骤可以由数据传送模块10中的定义子模块实现;该步骤A1包括:
A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义所述医学三维模型的结构元素以及二进制数据文件语法;
A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
在A1步骤中,定义文本形式头文件和二进制数据文件所应包含的内容,例如,根据不同的医学三维模型可能包含的数据也不一样,一般来说可以包括顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组等。
A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;该步骤可以由数据传送模块10中的转换子模块实现;步骤A2包括:
A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,代替原始值;具体的,将每个数组中除第一个元素之外的每个元素与这个元素的前一元素作差值,并将差值代替原始值。
A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。在上述步骤中通过取反运算和差值运算实现对多组数组进行加密,保证了医学三维模型数据的网络传送安全。
在步骤A2中,转换子模块根据定义后的文本形式头文件和二进制数据文件,以及此次数据传输的医学三维模型的结构特征,将医学三维模型数据转换为文本形式头文件和二进制数据文件,具体的可以包括顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组。然后,根据医学三维模型的具体结构,将其特征数据信息写入到对应的数组中。
A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送。该步骤可以由数据传送模块10中的封装子模块实现。最后封装子模块将文本形式头文件和二进制数据文件封装成IP数据包进行发送。
在本发明的第五实施例中,步骤A1:定义文本形式头文件和二进制数据文件的描述格式的步骤包括:
a)定义文本形式头文件。
文本形式头文件描述了医学三维模型的结构,包括二进制数据文件名、纹理文件名、材质、索引数、二进制数据文件语法等。这里的二进制数据文件语法指明二进制数据文件的结构,例如[″POSITION","NORMAL","TEXCOORD"]指明二进制数据文件依次存储由医学三维模型的顶点坐标、顶点法向量和纹理坐标组成的元素。而[″POSITION","TEXCOORD"]指明二进制数据文件依次存储由医学三维模型顶点坐标和纹理坐标组成的元素,不存储顶点法向量。具体的,可以根据医学三维模型的结构进行设置。纹理文件一般是通用格式的图片,其本身能够高效地在网络上传输而不需转换为其他格式;纹理坐标则定义了医学三维模型的顶点到上述图片的映射关系,这些信息需要存储到二进制数据文件中。然后,根据文本形式头文件去读取二进制数据文件和纹理文件,则能够获得显示医学三维模型所需的全部信息。
b)定义二进制数据文件。
二进制数据文件依次存储文本形式头文件指明医学三维模型的结构的元素,不同结构的元素可能是顶点坐标、顶点法向量、多边形拓扑信息和纹理坐标中的一种或几种组合。考虑到医学三维模型数据压缩和保密的需要,并不直接存储这些数据的原始值,第一元素存储数据原始值移位取反后的值,第二个及之后的元素存储与前一元素对应数据差值移位取反后的结果。这样可以提高医学三维模型数据在传输时的安全性,不容易被其他非法用户恶意篡改。
而步骤A2:根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件包括:
a)考虑医学三维模型有无纹理、法向量等信息,定义所述文本形式头文件,并在所述文本形式头文件写入二进制数据文件名、纹理文件名、材质、索引数、二进制数据文件语法等信息;
b)读取医学三维模型,获得医学三维模型的顶点总数,多边形总数;
c)新建顶点数组、法向量数组、多边形拓扑信息数组和纹理坐标数组;
d)将医学三维模型数据依次写入对应的数组,其中顶点坐标需要映射到一个正整数范围,法向量需要归一化;
e)计算所有数组元素与前一元素的差值,代替原始值;
f)根据头文件将各数组元素移位取反,依次写入二进制数据文件。
步骤A3:将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送包括:将纹理文件、文本形式头文件和二进制数据文件封装成IP包向客户端发送;其中纹理文件为纹理坐标数组。
在本发明的第六实施例中,所述步骤B包括:
B1、客户端102接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文件;该步骤可以通过数据接收模块20中的解压子模块实现。具体的所述步骤B2包括:
B21、使用脚本语言为每一个所述文本形式头文件生成一个模型对象;所述模型对象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长度;在该步骤中,每个二进制数据文件中可以包含多个模型的数据文件,所以要想获得每个模型数据,必须知道在二进制数据文件中的起始位置和长度。比如,皮肤层分为头发,眼球等数据,所有的数据都保存在皮肤层的二进制数据文件中,要获得头发的模型数据,则必须知道头发模型在二进制数据文件中的起始位置等信息。
B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客户端的内存中;
B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;在该步骤中计算差值时,需要与前一个元素作差,在步骤A25的差值运算中的所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的第一个元素由于没有前一元素,所以假设前一原始值的初始值为0,当然也可以设置为其他初始值。而在对应的内存位置读取的数据包括了对应的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组等。
B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。在该步骤中,所述对应的浮点数组包括顶点数据保存到顶点数组中,法向量保存到法向量数组。数组类型是浮点数组。
B2、客户端102使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。该步骤可以通过数据接收模块20中的解析子模块实现。
在本发明的第七实施例中,客户端102接收如第六实施中发送的IP数据包,
步骤B1包括:接收IP数据包并恢复为纹理文件、文本形式头文件和二进制数据文件。
步骤B2包括:使用脚本语言快速解析出医学三维模型信息。
由于二进制数据文件的语法是确定的,不需要做基于语法的分析,整个解析流程只需要将二进制数据文件读入内存数组,对该内存数组做计算并转存计算结果即可,所以解析效率很高。
a)使用脚本语言为每一个文本形式头文件生成一个模型对象,该模型对象记录个文本形式头文件包含的所有信息,以及医学三维模型的顶点在所有顶点中的起始位置和长度;在该步骤中,每个二进制数据文件中可以包含多个模型的数据文件,所以要想获得每个模型数据,必须知道在二进制数据文件中的起始位置和长度。比如,皮肤层分为头发,眼球等数据,所有的数据都保存在皮肤层的二进制数据文件中,要获得头发的模型数据,就必须知道头发模型在二进制数据文件中的起始位置等信息。
b)根据所述模型对象记录的二进制数据文件名读取二进制数据文件到内存中;
c)第一个数据的前一原始值设定为0,基于二进制数据文件语法以及上述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;
d)依次处理所有模型对象,将所有原始值写入对应的浮点数组。
在本发明的第八实施例中,所述使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示的步骤包括:
C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述客户端的显卡内存中对应的OpenGL(OpenGraphicsLibrary,定义了一个跨编程语言、跨平台的编程接口的规格)顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置为可用状态;该步骤可以通过网页显示模块30的数组处理子模块实现;
C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所述医学三维模型;该步骤可以通过网页显示模块30的显示子模块实现。
本发明的一个实施例中,网页显示模块30是基于OpenGL实现三维显示,OpenGL是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,封装了大量对显卡进行操作的图形函数。为了达到实时显示大数据量医学三维模型的目的,必须发挥显卡强大的硬件图形处理性能。该实施例中将OpenGL顶点属性数组0、1、2设置为可用状态,预先将所有的顶点坐标、顶点法向量和纹理坐标分别写入对应的浮点数组,并将浮点数组与显卡内存中对应的顶点属性数组绑定起来,在实时交互式三维显示过程中,调用顶点着色器和片断着色器代码以最大限度的发挥显卡性能。具体的操作包括下述步骤:
a)所有数据都写入浮点数组后,使用脚本语言将顶点属性数组设置为可用状态,调用glBindBuffer()或glBindTexture()将浮点数组与显卡内存中对应的顶点属性数组绑定,并为顶点属性数组命名;
b)将顶点属性数组名作为参数传递给顶点着色器并实现实时显示。
在本发明的第九个实施例中,所述使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示的步骤之后还包括:
D、在客户端102对所述医学三维模型进行实时交互操作。该步骤可通过医学三维模型的网页显示的系统100的交互操作模块40实现。
在该实施例中,在客户端102的网页显示模块30显示医学三维模型后,通过交互操作模块40实现对显示医学三维模型进行鼠标拾取、旋转、平移、放缩、透明显示、三维测量等交互方式。而不需要通过专业三维显示软件进行操作。当然,还可以是通过客户端102的触摸屏幕实现对医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量等交互操作。
在该实施例中,具体的包括下述步骤:
a)快速鼠标拾取。
鼠标是二维输入设备,通常得到的信息只具有x、y方向的二维信息,一般情况下,需要实现在三维环境下的拾取,则要根据x、y计算第三维的z值。OpenGL虽然提供用于三维鼠标拾取的函数,但z值计算没有遵循射线穿个物体的先后顺序,计算结果并不稳定。在医学三维模型的交互中,鼠标拾取对象往往是某一个组织或器官,基于这个特点本发明提出下述鼠标拾取方法。
1)为客户端102显示的网页的医学三维模型绘图区域添加鼠标响应事件;
2)读取二进制数据文件时,同时为其分配一个唯一的颜色值,使得每一个组织或器官都有一个唯一的颜色值;
3)创建帧缓存对象,将渲染缓冲区和纹理缓冲区绑定到对象;
4)使用脚本语言调用片断着色器代码进行离屏渲染绘图
5)获得鼠标x、y方向的屏幕坐标;
6)离屏渲染,生成帧缓冲区;
7)读取帧缓存里面的内容到一个数组里面,根据x、y方向的屏幕坐标读取该数组对应位置的颜色值,
8)通过颜色值获得颜色编号就可以知道鼠标拾取的是哪一个组织或器官。
b)旋转、平移、放缩。
1)为客户端102显示的网页的医学三维模型绘图区域添加鼠标响应事件;
2)根据鼠标事件改变OpenGL的投影矩阵、模型视图变换矩阵,并作为参数设置给顶点着色器代码;
3)脚本语言调用顶点着色器和片断着色器代码进行三维显示,将鼠标操作效果体现出来。
c)透明显示。
1)在客户端102显示的网页采用一个滑动条标签来控制模型透明度,为之添加鼠标响应事件;
2)调用glblendFunc()函数设置颜色混合方式;
3)响应鼠标事件,修改滑动条的位置,并设置模型的透明度;
4)将透明度作为参数设置给片断着色器代码;
5)脚本语言调用顶点着色器和片断着色器代码进行三维显示,将透明效果体现出来。
d)医学三维模型的三维测量。这里以三维距离测量来说明,三维角度测量的方法与之类似。
1)为客户端102显示的网页增加一个标签来处理测量交互;
2)响应鼠标事件,开始测量过程;
3)鼠标点击测量的起点和终点,捕获起点、终点的屏幕x、y坐标;
4)调用gluUnProject()函数获得起点、终点在世界坐标的坐标,根据两点间距离公式计算三维距离。
在上述多个通过鼠标对所述医学三维模型进行实时交互操作实施例中,也可以通过用户在客户端102的触摸屏上对医学三维模型的点击选择操作的方式代替所述的鼠标的点击选择操作的方式。
参见图4,在本发明的一个实施例中,提供了一个人体三维模型数据的web3D交互式浏览的方法,包括:
1、为每一个医学三维模型数据定义一个文本形式头文件,其内容包括二进制数据文件的文件名,顶点总数和索引总数,二进制数据文件语法定义为["POSITION","NORMAL","TEXCOORD"]。对于人体模型来说,将其分为8层,每层都是一个独立的三维模型,为每层模型数据提供一个文本形式头文件。这8层是:皮肤层,肌肉层,骨骼层,结缔组织,内脏层,淋巴系统层,循环系统层,神经网络层。由于每个人体层包括很多部分,比如皮肤层分为头发,眼球等,所以对应的头文件中需要记录每部分的属性,包括名称,颜色值,纹理图片的名称,在其二进制数据文件的位置,以及包含的子区域的名称等信息。
2、根据所述步骤A2的方式,将三维人体模型的顶点坐标、顶点法向量和纹理坐标压缩加密后转换为二进制数据文件,并将二进制数据文件和纹理文件封装成IP数据包向客户端102发送。
3、客户端102接收IP数据包,将IP数据包恢复为纹理文件,文本形式头文件和二进制数据文件。
4、解析二进制数据文件。使用脚本语言将每个二进制数据头文件解析成一个类,该类不仅记录文本形式头文件中的所有信息,并记录各医学三维模型的顶点在数据文件生成数组中的起始位置和长度。由于每个人体层由很多结构组成,每个结构又分为很多小结构,如皮肤层分为头发,眼球等,眼球分为虹膜和瞳孔。所以,需要在类中记录每个部分在数组中的位置。
5、根据二进制数据文件名读取二进制数据文件到内存中,经过反加密,将数据转成真实的二进制数据。根据文本形式头文件中定义的顶点总数和索引总数,将二进制数据转成浮点数,分别保存到顶点数组,法向量数组和纹理数组中。
6、基于OpenGL实现人体模型三维显示,根据需要进行鼠标拾取、旋转、平移、放缩、透明显示、三维测量等交互。
综上所述,本发明通过向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。提高了医学三维模型的网络传输及网页显示的效率。在医学三维模型数据发送方面,将服务器上存储的大规模医学三维模型数据转换为自定义的适合网络传输处理的文本形式头文件和二进制数据文件,并根据数据特点进行了加密;在医学三维模型数据接收方面,客户端浏览器上可使用脚本语言快速解析出三维模型信息;进一步的,使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示,因此,实现了对医学三维模型的Web3D浏览。在Web网页医学三维模型显示方面,避免了下载安装插件的开销,基于解析得到的三维模型信息使用脚本语言直接调用着色器程序进行显示,优选的,在读取所述二进制数据文件时,为所述二进制数据文件分配一个唯一的颜色值,根据所述颜色值,通过鼠标对所述医学三维模型进行实时交互操作,使用户可以对医学三维模型进行Web3D交互式浏览。因此基于预设定的颜色信息实现了快速鼠标拾取,还实现了旋转、平移、放缩、透明显示、三维测量等交互方式。以为实现优质的远程医学教学,远程医学会议等提供良好的医学三维模型数据的传输、网络显示以及交互方式。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种医学三维模型的网页显示的方法,其特征在于,所述方法包括:
A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示;
所述步骤A包括:
A1、定义文本形式头文件和二进制数据文件的描述格式;
所述文本形式头文件的描述格式包括:所述二进制数据文件名、纹理文件名、材质、索引数以及所述二进制数据文件语法;
所述二进制数据文件的描述格式包括:所述文本形式头文件指明所述医学三维模型的结构元素,所述结构元素包括顶点坐标、顶点法向量、多边形拓扑信息和纹理坐标中的一种或几种;
A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;
A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送;
所述步骤A1包括:
A11、定义所述文本形式头文件的描述格式中的所述二进制数据文件名、纹理文件名、材质、索引数以及所述二进制数据文件语法;
定义所述二进制数据文件的描述格式中的所述医学三维模型的结构元素;
A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
所述步骤A2包括:
A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,并代替原始值;
A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。
2.根据权利要求1所述的方法,其特征在于,在所述步骤C之后还包括:
D、在所述客户端对所述医学三维模型进行实时交互操作。
3.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
B1、所述客户端接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文件;
B2、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。
4.根据所述权利要求3所述的方法,其特征在于,所述步骤B2包括:
B21、使用脚本语言为每一个所述文本形式头文件生成一个模型对象;所述模型对象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长度;
B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客户端的内存中;
B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;
B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。
5.根据权利要求3所述的方法,其特征在于,所述步骤C包括:
C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述客户端的显卡内存中对应的OpenGL顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置为可用状态;
C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所述医学三维模型。
6.根据权利要求2所述的方法,其特征在于,所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量。
7.一种用于实现权利要求1~6任一项所述医学三维模型的网页显示的方法的系统,其特征在于,所述系统还包括:
数据传送模块,设置于服务器端,用于向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
数据接收模块,设置于客户端,用于使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
网页显示模块,设置于所述客户端,用于使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示;
所述数据传送模块具体用于:
定义文本形式头文件和二进制数据文件的描述格式;
所述文本形式头文件的描述格式包括:所述二进制数据文件名、纹理文件名、材质、索引数以及所述二进制数据文件语法;
所述二进制数据文件的描述格式包括:所述文本形式头文件指明所述医学三维模型的结构元素,所述结构元素包括顶点坐标、顶点法向量、多边形拓扑信息和纹理坐标中的一种或几种;
根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;
将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送;
所述数据传送模块具体用于定义文本形式头文件和二进制数据文件的描述格式的过程包括:
定义所述文本形式头文件的描述格式中的所述二进制数据文件名、纹理文件名、材质、索引数以及所述二进制数据文件语法;
定义所述二进制数据文件的描述格式中的所述医学三维模型的结构元素;
所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
所述数据传送模块具体用于根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件的过程包括:
根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,并代替原始值;
根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
交互操作模块,设置于所述客户端,用于对所述医学三维模型进行实时交互操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210198849.5A CN102880454B (zh) | 2012-06-15 | 2012-06-15 | 医学三维模型的网页显示的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210198849.5A CN102880454B (zh) | 2012-06-15 | 2012-06-15 | 医学三维模型的网页显示的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102880454A CN102880454A (zh) | 2013-01-16 |
CN102880454B true CN102880454B (zh) | 2016-03-09 |
Family
ID=47481794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210198849.5A Active CN102880454B (zh) | 2012-06-15 | 2012-06-15 | 医学三维模型的网页显示的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880454B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392485A (zh) * | 2014-11-12 | 2015-03-04 | 天脉聚源(北京)教育科技有限公司 | 一种三维模型展示方法、装置及系统 |
CN107174825A (zh) * | 2017-04-28 | 2017-09-19 | 苏州蜗牛数字科技股份有限公司 | 一种基于模型的远程图像重建方法及系统 |
CN107424219A (zh) * | 2017-07-28 | 2017-12-01 | 广西壮族自治区机械工业研究院 | 一种全彩三维数字模型压缩、解压、显示系统及其方法 |
CN108055351B (zh) * | 2017-12-29 | 2021-04-16 | 深圳市毕美科技有限公司 | 三维文件的处理方法及装置 |
CN111508062B (zh) * | 2020-04-13 | 2023-05-09 | 苏州梦想人软件科技有限公司 | 一种Unity版本更新中一键升级模型的方法及装置 |
CN117095105A (zh) * | 2023-08-29 | 2023-11-21 | 广州立心科技有限责任公司 | 一种超大三维模型轻客户端浏览系统及方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0526881A2 (en) * | 1991-08-06 | 1993-02-10 | Canon Kabushiki Kaisha | Three-dimensional model processing method, and apparatus therefor |
EP1004987A1 (en) * | 1998-11-27 | 2000-05-31 | France Telecom | Method and system for generating virtual scenes |
CN1905697A (zh) * | 2006-06-08 | 2007-01-31 | 中国移动通信集团公司 | 内嵌于移动终端的手机地图移动终端平台 |
CN101067827A (zh) * | 2007-06-14 | 2007-11-07 | 上海创图网络科技发展有限公司 | 一种基于浏览器的三维网页实现方法 |
CN101458825A (zh) * | 2009-01-04 | 2009-06-17 | 腾讯科技(深圳)有限公司 | 显卡中实现3d骨骼动画模型的碰撞检测方法及显卡、系统 |
CN101630329A (zh) * | 2009-08-24 | 2010-01-20 | 孟智平 | 一种网页中视频元素与网页元素互动的方法及系统 |
CN102004639A (zh) * | 2010-09-28 | 2011-04-06 | 深圳市共进电子有限公司 | 嵌入式脚本生成模块以及嵌入式脚本生成的方法 |
CN102087598A (zh) * | 2011-02-22 | 2011-06-08 | 深圳市同洲电子股份有限公司 | 一种3d界面展示方法、装置及浏览装置 |
US7962329B1 (en) * | 2000-10-23 | 2011-06-14 | At&T Intellectual Property Ii, L.P. | Text-to-scene conversion |
CN102339252A (zh) * | 2011-07-25 | 2012-02-01 | 大连理工大学 | 基于xml中间模型以及缺陷模式匹配的静态检测系统 |
-
2012
- 2012-06-15 CN CN201210198849.5A patent/CN102880454B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0526881A2 (en) * | 1991-08-06 | 1993-02-10 | Canon Kabushiki Kaisha | Three-dimensional model processing method, and apparatus therefor |
EP1004987A1 (en) * | 1998-11-27 | 2000-05-31 | France Telecom | Method and system for generating virtual scenes |
US7962329B1 (en) * | 2000-10-23 | 2011-06-14 | At&T Intellectual Property Ii, L.P. | Text-to-scene conversion |
CN1905697A (zh) * | 2006-06-08 | 2007-01-31 | 中国移动通信集团公司 | 内嵌于移动终端的手机地图移动终端平台 |
CN101067827A (zh) * | 2007-06-14 | 2007-11-07 | 上海创图网络科技发展有限公司 | 一种基于浏览器的三维网页实现方法 |
CN101458825A (zh) * | 2009-01-04 | 2009-06-17 | 腾讯科技(深圳)有限公司 | 显卡中实现3d骨骼动画模型的碰撞检测方法及显卡、系统 |
CN101630329A (zh) * | 2009-08-24 | 2010-01-20 | 孟智平 | 一种网页中视频元素与网页元素互动的方法及系统 |
CN102004639A (zh) * | 2010-09-28 | 2011-04-06 | 深圳市共进电子有限公司 | 嵌入式脚本生成模块以及嵌入式脚本生成的方法 |
CN102087598A (zh) * | 2011-02-22 | 2011-06-08 | 深圳市同洲电子股份有限公司 | 一种3d界面展示方法、装置及浏览装置 |
CN102339252A (zh) * | 2011-07-25 | 2012-02-01 | 大连理工大学 | 基于xml中间模型以及缺陷模式匹配的静态检测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102880454A (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102880454B (zh) | 医学三维模型的网页显示的方法及其系统 | |
WO2021008166A1 (zh) | 用于虚拟试衣的方法和装置 | |
JP4819164B2 (ja) | 点座標を正確に表示する能力を有する、画像がマップされたポイントクラウド | |
CN110211218B (zh) | 画面渲染方法和装置、存储介质及电子装置 | |
US20140292753A1 (en) | Method of object customization by high-speed and realistic 3d rendering through web pages | |
CN103593184B (zh) | 图像显示系统及图像显示方法 | |
TW201108152A (en) | Displaying a visual representation of performance metrics for rendered graphics elements | |
WO2015074575A1 (zh) | 获取立体热力图的方法及装置 | |
US9235911B2 (en) | Rendering an image on a display screen | |
CN110392904A (zh) | 使用阿尔法混合的动态图像颜色重新映射的方法 | |
CN111508033A (zh) | 相机参数确定方法、图像处理方法、存储介质及电子装置 | |
CN107767431A (zh) | 一种Web动画制作方法及计算设备 | |
CN107609946A (zh) | 一种显示控制方法及计算设备 | |
WO2023197762A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN103699652A (zh) | 一种访问网页的方法和系统 | |
CN116206038A (zh) | 一种渲染方法、装置、电子设备及存储介质 | |
CN115187729A (zh) | 三维模型生成方法、装置、设备和存储介质 | |
US20080150938A1 (en) | Computer graphics using meshless finite elements for light transport | |
Boutsi et al. | Interactive online visualization of complex 3D geometries | |
WO2021098306A1 (zh) | 一种物品比对方法和装置 | |
CN116957893B (zh) | 水印生成方法、装置、电子设备和计算机可读介质 | |
Stojanovic et al. | Streaming and 3D mapping of AGRI-data on mobile devices | |
CN117055785A (zh) | 数字孪生模型的加载方法、装置、设备及存储介质 | |
Ensom et al. | Preserving virtual reality artworks | |
CN114998504B (zh) | 二维图像光照渲染方法、装置、系统和电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |