3dmax导入obj的OBJ文件不均匀的透明化怎么回事

obj文件怎么群导入3Dmax里面?_百度知道
obj文件怎么群导入3Dmax里面?
我有更好的答案
一. 用 3ds Max Script 同时导入多个.obj文件
1. MAXScript -& New Script, 将下列代码拷贝, 修改路径;
2. ctrl + s 保存该script文件;
3. MAXScript -& Run Script, 选择保存的script文件, 点击Open即可。二. 在批量导入obj以后,首先进行group, 然后将该group进行放缩,平移,旋转变换。问题在于:当我进行变换之后,如果对其中某一obj修改后要重新导入3ds max, 这样它就不跟group的物体不相吻合。有一个办法可以处理:
1. 记下group的变换数据;
2. 选中新导进来的物体,依次按scale, translate, rotate的顺序,用上述记录下来的数据进行变换。
其他类似问题
为您推荐:
obj文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁三维模型文件中的OBJ格式在OpenGL中的输入与处理02
上亿文档资料,等你来发现
三维模型文件中的OBJ格式在OpenGL中的输入与处理02
ISSN第年4月)电脑知识与技;Vol.7,No.10,April2011,pp;王金峰,姚国清;(中国地质大学(北京),北京100083);摘要:介绍了当今流行的三维作图工具Maya,阐述;关键词:三维模型文件;OpenGL;OBJ文件;;ObjThree-dimensionalMode;WANGJin-feng,YAOGuo-qing;
ISSN第年4月)电脑知识与技术7卷第Knowledge10期(2011ComputerandTechnologyVol.7,No.10,April2011,pp.,2399E-mail:eduf@电脑知识与技术ComputerKnowledgeandTechnologyhttp://www.Tel:+86-551-64三维模型文件中的OBJ格式在OpenGL中的输入与处理王金峰,姚国清(中国地质大学(北京),北京100083)摘要:介绍了当今流行的三维作图工具Maya,阐述了Maya生成的OBJ三维格式,如何将OBJ格式文件在OpenGL(OpenGraphicLibrary)中进行输入和处理。重点介绍了OBJ文件的文件格式及怎样利用程序代码来构建模型数据结构、绘制对象模型,然后运用OpenGL的强大功能实现三维显示和交互操作。关键词:三维模型文件;OpenGL;OBJ文件;交互中图分类号:TP391文献标识码:A文章编号:11)10-2393-04ObjThree-dimensionalModelFileFormatinOpenGL,InputandProcessingWANGJin-feng,YAOGuo-qing(ChinaUniversityofGeosciences,Beijing100083,China)Abstract:Introducedthethree-dimensionalmappingtoolsoftoday'spopularMaya,expoundstheMaya3dformatOBJgenerated,Thefileformatsof3DfilesOBJisintroducedandthewayshowtotransfer3DmodelfilestoOpenGLarediscussed.ThepaperlaysastrongemphasisonthefileformatsofOBJfileandhowtousecodetoformthemodelingdatastructureandhowtopainttheobjectmodels.ThenthepowerfulfunctionofOpenGLcanbeusedto3Ddisplayandinteractiveoperation.Keywords:3DOpenGL;OBJinteract1概述OpenGL即开放性图形库(OpenGraphicLibrary),是一个三维的计算机图形和模型库。它的前身是SGI公司为其图形工作站开发的IRISGL,为使其能适用于多种硬件,SGI开发了OpenGL,并于1992年7月发布了OpenGL1.0版本。OpenGL适用于多种硬件平台及操作系统,用户用这个图形库不仅能方便的制作出有极高质量的静止三维彩色图像,还能创建出高质量的动画效果。由于OpenGL在三维真实感图形制作中具有优秀的性能,许多大公司(如Microsoft、IBM、DEC、SUN等)都将其作为自己的图形标准,从而使OpenGL成为了新一代的三维图形工业标准。它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与VisualC++紧密接口,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。OpenGL具有许多实用、高效的功能,如:建模、变换、颜色模式设置、光照与材质设置、纹理映射、位图显示以及双缓存动画等。而且借助Windows编程环境可以方便地对所构模型的人机交互进行控制。2Maya软件简介Maya是位于加拿大的Aliaso/Wavafront公司开发的三维动画软件,已在全世界广泛用于影视、视频、游戏、商业产品、宽带、本地化娱乐、高端广播、多种图形运用、MTV、虚拟仿真等领域。Maya集成了Aliaso/Wavefront最先进的动画及数字效果技术。它不仅包括一般三维和视觉效果制作的功能,而且还与最先进的建模、数字化布料模拟、毛发渲染、运动匹配技术相结合。Maya可在Win-dowsNT与SGIIRIX操作系统上运行。在目前市场上用来进行数字和三维制作的工具中,Maya是首选解决方案。Maya模型数据的输出方法中提供了多边形逼近法,即用许多小多边形拼出模型的外观,文件中保存这些多边形的信息。由于OpenGL中提供了最基本的有多边形构造三维模型的方法,因此可以方便地从三维图形数据文件中读取模型数据并在OpenGL中绘制[1]。3OBJ文件格式简介OBJ文件是Alias/Wavefront公司开发的三维动画软件Maya的一种数据输出类型,它定义了对象的几何和其它的一些特性。由于它的文件结构非常简单,所以适合在应用程序中读取或进行3D文件格式转换。这里的OBJ[2]文件不是我们常见的程序编译生产的目标文件,而是一种定义物体几何模型的3D文件,最初是Wavefront的标准3D模型文件,后来被广泛应用到各种应用软件中。OBJ文件可以是二进制文件,也可以是ASCII文件,其中二进制格式文件的扩展名是.mod,ASCII格式文件的扩展名是.obj。3.1OBJ文件格式Maya的开放系统输出数据文件类型有MEL,DXF,Explore,Geo,OBJ,IGES,Aliaswire,Aiff,Image,RIB,MOV(Aaciimotion),VRML2。其中OBJ模型文件为文本类型,结构比较简单,它保存的是一些多边形的信息,诸如顶点点几何坐标、纹理坐标,点与点如收稿日期:作者简介:王金峰(1987-),男,河北成安人,硕士,计算机图像处理;姚国清,教授,硕士。本栏目责任编辑:唐一东多媒体技术及其应用2393ComputerKnowledgeandTechnology电脑知识与技术第7卷第10期(2011年4月)何连线组成线、面等等。用一个一个的多边形面片拼合就可以构造出三维物体。下面简要的介绍一个obj文件格式[3]。OBJ文件的基本结构[4]。OBJ文件不需要任何种文件头(FileHeader),尽管经常使用几行文件信息的注释作为文件的开头。OBJ文件由一行行文本组成,注释行以符号“#”为开头,空格和空行可以随意加到文件中以增加文件的可读性。有字的行都由一两个标记字母也就是关键字(Keyword)开头,关键字可以说明这一行是什么样的数据。多行可以逻辑地连接在一起表示一行,方法是在每一行最后添加一个连接符(\)。注意连接符(\)后面不能出现空格或Tab格,否则将导致文件出错。下列关键字可以在OBJ文件使用。在这个列表中,关键字根据数据类型排列,每个关键字有一段简短描述。顶点数据(Vertexdata):v:几何体顶点(Geometricvertices)。表示本行指定一个顶点。此前缀后跟着3个单精度浮点数,分别表示该定点的X、Y、Z坐标值。Vt:贴图坐标点(Texturevertices)。表示本行指定一个纹理坐标。此前缀后跟着两个单精度浮点数。分别表示此纹理坐标的U、V值。Vn:顶点法线(Vertexnormals)。表示本行指定一个法线向量。此前缀后跟着3个单精度浮点数,分别表示该法向量的X、Y、Z坐标值。Vp:参数空格顶点(Parameterspacevertices)。自由形态曲线(Free-formcurve)/表面属性(surfaceattributes):Deg:度(Degree)。Bmat:基础矩阵(Basismatrix)。Step:步尺寸(Stepsize)。cstype曲线或表面类型(Curveorsurfacetype):元素(Elements):P:点(Point)L:线(Line)F:面(Face)Curv:曲线(Curve)curv22D:曲线(2Dcurve)surf:表面(Surface)自由形态曲线(Free-formcurve)/表面主体陈述(surfacebodystatements):Parm:参数值(Parametervalues)Trim:外部修剪循环(Outertrimmingloop)Hole:内部整修循环(Innertrimmingloop)Scrv:特殊曲线(Specialcurve)sp:特殊的点(Specialpoint)end:结束陈述(Endstatement)自由形态表面之间的连接(Connectivitybetweenfree-formsurfaces):Con:连接(Connect)成组(Grouping):G:组名称(Groupname)S:光滑组(Smoothinggroup)Mg:合并组(Merginggroup)O:对象名称(Objectname)显示(Display)/渲染属性(renderattributes):Bevel:导角插值(Bevelinterpolation)c_interp:颜色插值(Colorinterpolation)d_interp:溶解插值(Dissolveinterpolation)lod:细节层次(Levelofdetail)usemtl:材质名称(Materialname)mtllib:材质库(Materiallibrary)shadow_obj:投射阴影(Shadowcasting)trace_obj:光线跟踪(Raytracing)ctech:曲线近似技术(Curveapproximationtechnique)stech:表面近似技术(Surfaceapproximationtechnique)OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是&.mtl&的独立文件中。关键字&mtllib&即材质库的意思[5]。材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB(红绿蓝)的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。&usemtl&指定了材质之后,以后的面都是使用这一材质,直到遇到下一个&usemtl&来指定新的材质。3.2OBJ格式示例举例说明OBJ的文件格式。先看一个四边形的OBJ文件square.obj。2394多媒体技术及其应用本栏目责任编辑:唐一东第7卷第10期(2011年4月)ComputerKnowledgeandTechnology电脑知识与技术#square.objv0.v0.v2.v2.f1234其中4个v表示四个顶点坐标,f表示多边形,最后一行表示一个有四个顶点的多边形。其顶点是顶点序号来表示的。#表示注释。又如#twosquare.objv0.v0.v2.v2.v4.000-1.255298v4.000-1.255298vn0.vn0.vn0.vn0.vn0.vn0.#6vertices#6normalsgalls1f1//12//23//34//4f4//43//35//56//6#2elements对上面twosqaure.obj的数据解释如下:vn表示顶点法向量,g表示group,all是group的名字。下面的两个face都属于这个group,直到下一个g命令或者文件结束为止。s表示平滑组,而1是groupall的序号。在最后两行中1//1中,第一个1表示顶点序号,后一个1表示顶点法向量序号,中间表示纹理向量序号,对应于由vt命令定义的各行。2//2,3//3,4//4,含义一样[6]。3.3OBJ文件的输入处理了解了OBJ文件的结构后,为了在程序中读入模型,需要建立对应的模型数据结构。程序中首先定义了OBJ文件对应的结构体,如对象顶点的结构体、颜色列表结构体、材质描述结构体和总的模型描述结构体。主要代码如下://通用节点typedefstruct_GLMnode{GLGLstruct_GLMnode*}GLM///*glmWeldVectors:eliminate(weld)vectorsthatarewithinan*epsilonofeachother.**vectors-arrayofGLfloat[3]'stobewelded*numvectors-numberofGLfloat[3]'sinvectors*epsilon-maximumdifferencebetweenvectors**/GLfloat*glmWeldVectors(GLfloat*vectors,GLuint*numvectors,GLfloatepsilon){GLfloat*GLGLuinti,j;copies=(GLfloat*)malloc(sizeof(GLfloat)*3*(*numvectors+1));memcpy(copies,vectors,(sizeof(GLfloat)*3*(*numvectors+1)));copied=1;多媒体技术及其应用本栏目责任编辑:唐一东2395ComputerKnowledgeandTechnology电脑知识与技术第7卷第10期(2011年4月)for(i=1;i&=*i++){for(j=1;j&=j++){if(glmEqual(&vectors[3*i],&copies[3*j],epsilon)){}}/*mustnotbeanyduplicates--addtothecopiesarray*/copies[3*copied+0]=vectors[3*i+0];copies[3*copied+1]=vectors[3*i+1];copies[3*copied+2]=vectors[3*i+2];j=/*passthisalongforbelow*/copied++;duplicate:/*setthefirstcomponentofthisvectortopointatthecorrectindexintothenewcopiesarray*/vectors[3*i+0]=(GLfloat)j;}*numvectors=copied-1;}/*glmFindGroup:Findagroupinthemodel*/GLMgroup*glmFindGroup(GLMmodel*model,char*name){GLMgroup*assert(model);group=model-&while(group){if(!strcmp(name,group-&name))group=group-&}}获取了全局变量后,就可以在视图类中绘制所得到的对象模型,然后对模型进行操作和交互式处理。图1是读入一个OBJ文件的效果图,图2是实现了三维模型与计算机程序交换。4读入OBJ模型进行交互控制首先需要在windows下安装OpenGL的glut库。GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。Windows环境下安装GLUT的步骤:1)将下载的压缩包解开,将得到5个文件。2)在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。把解压得到的glut.h放到这个文件夹。3)解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。4)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)。为了验证前面定义的模型的可行性,我们开发了一个演示程序,结果成功地读取了由Maya软件以OBJ文件模式导出的Maya[7]模型数据,并很容易地实现了模型纹理读取与映射。Maya模型数据进入OpenGL中以后,利用OpenGL提供的坐标变换、颜色处理、光照处理、效果处理、选择及反馈模式等功能可实现三维物体更加真实的显示,同时还可以实现三维物体的移动、旋转、等交互[8]。图2是移动的交互后的图像截图。5结束语把Maya模型应用于OpenGL中,降低了OpenGL复杂建模的难度,我们可以得到较真实的三维复杂物体模型。在实验系统中,我们在OpenGL程序中,引入Maya输出数据模型.OBJ得到较好的三维动画效果,同时可以进行交互处理,成果可用于飞行运动模拟公路勘察、城市规划和虚拟现实等领域中。当然,当读取的模型数据量很大时,如何比较快的显示模型,要利用有关图形加速显示技术,如LOD显示技术等,同时如何在读入的模型中加入属性信息,难度比较大还有待于进一步研究。我们还可以编制3DMAX,图1OBJ导入图像图2移动交互图像AutoCAD等多种图形接口程序,把这些软件中建立的物体模型引入OpenGL的应用程序中,将可应用于虚拟现实、商业广告、影视制作、游戏制作等领域。(下转第2399页)2396多媒体技术及其应用本栏目责任编辑:唐一东第7卷第10期(2011年4月)ComputerKnowledgeandTechnology电脑知识与技术CCritSecRLCheckMediaTyep();ReceiveMedia()//处理接收到的视频并发向网络;…}2.5视频接收SocketReceiveFilter负责接收数据包,并将数据包解包后按照媒体数据包的格式转发到下一级过滤器,属于客户端的源过滤器。在这里也是采用程序内过滤器的形式来实现的,建立的类分别是SocketReceiveFilter类和SocketReceivePin类。因此Pin的父类选择了CSourceSueam类,SocketReceiveFilter类的父类选择了CSource类。两个类的关键实现如下:ClassSocketReceiveFilter:PublicCSource{CCriSecRFilterLGetPin();GetPinCount();…}ClassSocketReceivePin:PublicCSourceStream{SocketReceiveFilter*RFCMediaTypeRMGetMediaType();ProssBuffer();SetMediaType();…}3结束语本文介绍了基于DirectShow的远程视频展示的实现方法,实现了本地视频捕获、回放和远程展示的功能。本系统利用现成的Filter完成了视频的捕获和编解码工作,然后自行设计了网络传输部分的Filter实现流媒体功能。经测试,视频捕获端和展示端都采用1M的电信宽带时即可达到很清晰的效果。参考文献:[1][2][3][4][5][6]视频展示台[EB/OL]./view/1916343.html.王安,仲丽媛,孙加军.基于DirectShow和UDP协议的网络视频监控系统[J].计算机工程与设计,).张振.基于DirectShow的P2P视频会议系统研究与设计[D].武汉:武汉理工大学,2009.曾华山,宋钰.基于DirectShow的VMR视频捕获的实现[J].电脑知识与技术,):.肖振中,梁晋.基于DirectShow的网络视频监测系统的设计与实现[J].计算机工程与应用,).陆其明.DirectShow开发指南[M].北京:清华大学出版社,2003.(上接第2396页)参考文献:[1][2][3][4][5][6][7][8]白建军,朱亚平,梁辉,等.OpenGL三维图形设计与制作[M].北京:人民邮电出版社,1999.尚游,陈研涛.OpenGL图形程序设计指南[M].北京:水利水电出版社,2001.ShreinerD.OpenGL编程指南[M].5版.北京:机械工业出版社,2006.乔林,费广正.OpenGL程序设计[M].北京:清华大学出版社,2000.AngelE.OpenGL程序设计指南[M].2版.北京:清华大学出版社,2005.王景波,陆玲.基于OpenGL的3D果实造型研究[J].开发研究与设计技术,):279-280.黄迁.基于VisualC++和OpenGL的红外目标景象仿真研究[J].红外技术,):101-102.李宏召.基于OpenGL的直升机“地面共振”三维动态仿真系统[J].电子测量技术,):1-2.本栏目责任编辑:唐一东多媒体技术及其应用2399包含各类专业文献、各类资格考试、专业论文、文学作品欣赏、行业资料、幼儿教育、小学教育、高等教育、三维模型文件中的OBJ格式在OpenGL中的输入与处理02等内容。
 在OpenGL 中读取 3DS 模型文件这里要解决的一个关键问题是: 如何在 OpenGL 中读取 3DS 模型文件。 在这部分介绍了 3DS 文件的存储格式,给出了 OpenGL 与 3DS ...  模型的文件格式.在 VC+十下的 OpenGL 编程中完成....至今为止,没有任何一个官 方的文件完全说明3d。...(处理所有的材质信息).这三个函数全部采用递归的...  关键词 OpenGL 3DS 文件格式 VC++ 自由旋转 现在已经有很多论文和书籍提到在 OpenGL 中实现读入和显示 3DS 文件中的模型。 但 是在很多场合,仅读入和显示是不...  在 OpenGL 中读入 3DS 文件的模型的方法有很多,...(1) 三维模型位置的变化量 拾取操作通常由输入装置...( 5) 分析、处理反馈数组中的数据。 3 VC + +...  3D 图形设计软件制作的 DXF 和 3DS 模型文件转换成...在 OpenGL 中,无论何种情况,指令总是 被顺序处理...OpenGL 通过以下格式来定义多边形: glBegin(GL_POl,...  在MFC(VS2008)单文档中使用OpenGL的过程。参考《实战OpenGL三维可视化系统开发与...3、设置像素格式 设置像素格式,首先要填充 PIXELFORMATDESCRIPTOR 结构,然后设置...  同时在应用程序的视类头文件中加入 OpenGL 头文件...设置像素格式 该部分设置绘图所需的像素格式, ...几个步骤: (1)在三维场景中建立曲面绘制的模型。...  基于opengl 的 3D 天体运动模型 设计方案 一、背景...的头文件 // Glaux库的头文件 // 标准输入/输出...(8)如果选择兼容的像素格式失败,释放设备描述符,...iOS 问题:想要在ios应用程序中实现3D模型的手势旋转,翻转,比如3DMAX做了一个立体的柜子,obj格式的,放在应用中进行全方位观看。总之,我想实现模型的3D浏览,求各位高手不吝赐教,如何实现这种需求。求Demo,求指导思想,求解决思路,各种求,求领养。。。 -
想要在ios应用程序中实现3D模型的手势旋转,翻转,比如3DMAX做了一个立体的柜子,obj格式的,放在应用中进行全方位观看。总之,我想实现模型的3D浏览,求各位高手不吝赐教,如何实现这种需求。求Demo,求指导思想,求解决思路,各种求,求领养。。。
共有 3 个回答
手势就是根据手指触摸屏幕的坐标来判断手指是左右滑动还是上下滑动。
至于如何显示3D物体,小编不才,希望有高手回答。
登录后方可回复
@code4app : 4app上有个GLView的Dome。可以显示obj模型,但是自己写手势,手势该怎么写?比如左转右转?我该怎么判断是哪个方向?
登录后方可回复
你现在的问题解决了吗
我现在也要做这个
登录后方可回复
登录后方可回答
耗时 0.0771 秒怎么把obj文件和mtl文件导入3Dmax,让模型显示出贴图。_百度知道
怎么把obj文件和mtl文件导入3Dmax,让模型显示出贴图。
我现在有obj,mtl,dds,这三种格式的文件。我想把它导入3Dmax中,想让他正确的显示出贴图,应该怎么做。我用的是英文版。
提问者采纳
告诉你一个最简单的方法1、首先:file-import-import 导入你需要的OBJ文件2、窗口化你的max程序 。把DDS文件拖到你模型上。搞定! (注意不要拖到空白的地方了)查看这个东西的材质可以按 M 键。可以点吸管工具吸取物件的材质。PS: 至于是不是会显示你想要的贴出来的样子,要看你UV展的对不对了。另外 mtl 是你导出的时候的材质文件,如果不是什么其他渲染插件的材质,可以不管他,删掉。
我的贴图一个部位有2个,一个是有颜色的,另一个是黑白的(金属的亮)。这两个分别对应什么选项啊,我知道那个有颜色的是漫反射,另一个呢?
另一个黑白的应该是高光贴图,贴在specular level 通道&
提问者评价
其他类似问题
为您推荐:
obj文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 obj导入3dmax变形 的文章

 

随机推荐