专利汇可以提供三维OBJ模型及MTL材质在iPhone中的解析与渲染方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种三维OBJ模型及MTL材质在iPhone中的解析与 渲染 方法,包括以下步骤:读取OBJ模型定义文件和MTL材质定义文件;根据文件格式编写解析函数,将读入的数据解析为数组;创建OpenGL ES模型对象,并生成相应的.h头文件和.m实现文件;基于解析的OBJ模型数据,使用OpenGL ES绘制三维模型;基于解析的MTL材质数据,使用GLKit渲染模型并添加材质;在iPhone应用上展示。本发明使用的是目前通用的三维OBJ模型及MTL材质,实现了三维模型在iPhone设备上的载入与展示,具有广阔的应用前景。,下面是三维OBJ模型及MTL材质在iPhone中的解析与渲染方法专利的具体信息内容。
1.一种三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的解析与渲染方法包括以下步骤:
S1、读取OBJ模型定义文件和MTL材质定义文件;
S2、根据文件格式编写解析函数,将读入的数据解析为数组;
S3、创建OpenGL ES模型对象,并生成相应的.h头文件和.m实现文件;
S4、基于解析的OBJ模型数据,使用OpenGL ES绘制三维模型;
S5、基于解析的MTL材质数据,使用GLKit渲染模型并添加材质。
2.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的OBJ模型结构包括:顶点、法线、纹理坐标、面片、材质使用,其中,所述的顶点后接(x,y,z)三维坐标单精度浮点参数,分别表示顶点的X、Y、Z坐标值,以此指定一个顶点,以回车换行作为结尾;
所述的法线后接(x,y,z)三维坐标单精度浮点参数,分别表示法向量的X、Y、Z坐标值,以此指定一个法线向量,以回车换行作为结尾;
所述的纹理坐标后接两个单精度浮点参数,分别表示纹理坐标的U、V值,以此指定一个纹理坐标,以回车换行作为结尾;
所述的面片为一个三角形小面片,用于指代一个表面,该三角形小面片由顶点、纹理坐标、法向量表示,以回车换行作为结尾;
所述的材质使用后接一个参数,该参数指定了从此行之后到下一个以usemtl开头的行之间的所有表面所使用的材质名称,该材质在与OBJ文件关联的MTL文件中找到具体信息。
3.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的MTL材质文件结构包括:基础材质和纹理贴图,其中,
所述的基础材质,首先对材质进行定义,然后对材质进行设定,设定的前缀分别有Ka、Kd、Ks,分别指定材质的环境光成分、漫射光成分、镜面光成分,格式为“前缀参数1参数2参数3”,三个参数均为单精度浮点数;
所述的纹理贴图,由带纹理材质使用如上的基础材质定义,并额外定义纹理贴图,关键字前缀有map_Ka、map_Kd,
其中,map_Ka为环境反射指定颜色纹理文件.mpc、纹理文件.cxc或是一个位图文件,在渲染的时候,Ka的值将再乘上map_Ka的值;map_Kd为漫反射指定颜色纹理文件.mpc、纹理文件.cxc或是一个位图文件,在渲染的时候,Kd的值将再乘上map_Kd的值。
4.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的步骤S1过程如下:
S101、创建fstream读取OBJ和MTL文件;
S102、使用fstream的good函数判断文件读取是否成功,成功则转入下一步骤。
5.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的步骤S2过程如下:
S201、定义变量,其中,变量包括:用于存储定点个数的整型positionsCount,用于存储法线个数的整型normalsCount,用于存储纹理坐标个数的整型texelsCount,用于存储三角形面片个数的整型facesCount,用于存储材质信息个数的整型materialsCount;
S202、分别对读取的OBJ和MTL数据进行第一次逐行遍历,对OBJ数据逐行遍历时,识别相应的行前缀,统计得出定点、法线、纹理坐标和三角形面片的个数,并依次给变量positionsCount、normalsCount、texelsCount和facesCount赋值;对MTL数据逐行遍历时,识别相应的行前缀,统计得出材质信息的个数,给变量materialsCount赋值;
S203、利用步骤S202得到的数据个数,定义数组变量,其中,数组变量包括:
用于存储定点坐标信息的浮点数组positions[positionsCount][3],用于存储法线坐标信息的浮点数组texels[texelsCount][2],用于存储纹理坐标信息的浮点数组normals[normalsCount][3],用于存储三角形面片坐标信息的整型数组faces[facesCount][10],用于存储材质名称信息的字符串数组materials[materialsCount],用于存储漫射光成分信息的浮点数组diffuses[materialsCount][3],用于存储镜面光成分信息的浮点数组speculars[materialsCount][3];
S204、对OBJ数据和MTL数据进行第二次逐行遍历,匹配到前缀时,利用strtok函数以空格作为分隔符,将字段分割,然后依次写入到上述对应数组中进行存储。
6.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的步骤S3过程如下:
S301、根据步骤S2中得到的数据生成.h头文件和.m实现文件;
S302、定义.h头文件需要的属性,其中,属性包括:用于存储模型顶点坐标的浮点类型常量数组modelPositions,用于存储模型纹理坐标的浮点类型常量数组modelTexels,用于存储模型法向量坐标的浮点类型常量数组modelNormals,用于存储材质个数的整型常量modelMaterials,用于存储每一个face数组的开始顶点下标的整型常量数组modelFirsts,用于存储每一个材质要绘制顶点个数的整型常量数组modelCounts,用于存储漫射光坐标的浮点类型二维数组modelDiffuses,用于存储镜面光坐标的浮点类型二维数组modelSpeculars;
S303、将步骤S2中得到的二维数据降维至一维数据再由ofstream输出,得到.m实现文件。
7.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的步骤S4过程如下:
S401、创建GLKView实例对象,并初始化一个OpenGL ES context上下文环境;
S402、使用函数glEnableVertexAttribArray、函数glVertexAttribPointer和GLKit中定义的枚举类型GLKVertexAttribPosition、GLKVertexAttribNormal进行3D模型的绘制,其中,所用到的函数和枚举类型定义如下:
函数glEnableVertexAttribArray,用于启用某一项属性数组访问功能,该函数需要输入顶点属性数组下标,无返回值;函数glVertexAttribPointer,利用指针,将顶点数组的值读入绘制的context中,无返回值;枚举量GLKVertexAttribPosition,用于向着色器提供顶点数据;枚举量GLKVertexAttribNormal,用于向着色器提供法向量坐标点数据。
8.根据权利要求1所述的三维OBJ模型及MTL材质在iPhone中的解析与渲染方法,其特征在于,所述的步骤S5过程如下:
S501、使用GLKit中的GLKBaseEffect类为3D模型添加光学效果;
S502、利用生成的modelDiffuses数组和modelSpeculars数组为GLKBaseEffect实例对象添加材质的漫射光和镜面光效果。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种基于头戴VR设备的光场显示系统及实现方法 | 2020-05-12 | 471 |
用于多管芯/GPU图形处理的基于位置的渲染设备和方法 | 2020-05-14 | 873 |
一种基于终端的网络直播中视频实时美颜及推流的方法 | 2020-05-13 | 314 |
一种动态体积云的构建与绘制方法 | 2020-05-16 | 395 |
基于共享频谱转换器的弹性光组播交换节点结构的双重权重极大团调度方法 | 2020-05-17 | 55 |
一种地图绘制方法及装置 | 2020-05-13 | 274 |
一种实景三维模型实时匀色方法 | 2020-05-12 | 154 |
验证着色器函数的方法、装置及计算机存储介质 | 2020-05-13 | 766 |
一种角色模型的消散方法、装置、设备及存储介质 | 2020-05-11 | 77 |
时间抗混叠的中央凹自适应 | 2020-05-15 | 903 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。