u3d中如何查看某个u3d模型双面显示多少个面

【求助】从MAX导出的模型在U3D里只显示正面,怎么让背面也显示?_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:57,893贴子:
【求助】从MAX导出的模型在U3D里只显示正面,怎么让背面也显示?收藏
在U3D里只能看到一面,转个角度就看不到了。。怎么才能让两面都显示?
3d室内模型下载,系统全面的室内模型教程,从0基础到高级,大量实战案例,学室内设计首选教程,名师教学,课程系统权威,注重实战,循序渐进,快速全面掌握室内设计
应该用特殊的材质球可以做到,一般情况下,制作模型时做双面处理
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或请教关于u3d的面数限制问题_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:57,893贴子:
请教关于u3d的面数限制问题收藏
请教各位大神,用u3d做模型面数有什么限制?对于生产级的项目来说同屏一般不要超过多少个面?人物模型不要超过多少个面?跪谢啦
3d室内模型下载,系统全面的室内模型教程,从0基础到高级,大量实战案例,学室内设计首选教程,名师教学,课程系统权威,注重实战,循序渐进,快速全面掌握室内设计
听到了两个差别很大的说法:一个说是同屏最多2万面,一个说是同屏可以20万面,单个模型2万面哪个更符合实际哈?
手游和端游是不同的。手游一个模型2000个面(三角面,3dmax中看的是四边形,就是1000个面)就已经很高了,天龙八部3D一个模型1500个面。差不多就是这个量级了。
主角可以稍微精细一点,怪物面数可以稍微少一些。端游没有什么经验,感觉差不多2w个面吧。
手游看手机,20w可以支持的。但是端游的话一个模型上万面都有
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或最先执行的方法是:1、(激活时的初始化代码)Awake,2、Start、3、Update【FixUpdate、LateUpdate】、4、(渲染模块)OnGUI、5、再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy高频问答的问题:1.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。主要步骤有:本地坐标-&视图坐标-&背面裁剪-&光照-&裁剪-&投影-&视图变换-&光栅化。2.如何优化内存?有很多种方式,例如A、压缩自带类库;B、将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;C、释放AssetBundle占用的资源;AssetBundle资源包D、降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;E、使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。3.动态加载资源的方式?(有时候也问区别,具体请百度)1.通过Resources模块,调用它的load函数:可以直接load并返回某个类型的Object,前提是要把这个资源放在Resource命名的文件夹下,Unity不关有没有场景引用,都会将其全部打入到安装包中。Resources.Load();2.通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用WWW模块get 下来,然后从这个bundle中load某个object。AssetBundle3.通过AssetDatabase.loadasset :这种方式只在editor范围内有效,游戏运行时没有这个函数,它通常是在开发中调试用的【AssetDatabase 资源数据库】区别:Resources的方式需要把所有资源全部打入安装包,这对游戏的分包发布(微端)和版本升级(patch)是不利的,所以unity推荐的方式是不用它,都用bundle的方式替代,把资源达成几个小的bundle,用哪个就load哪个,这样还能分包发布和patch,但是在开发过程中,不可能没更新一个资源就打一次bundle,所以editor环境下可以使用AssetDatabase来模拟,这通常需要我们封装一个dynamic resource的loader模块,在不同的环境下做不同实现。动态资源的存放&&有时我需要存放一些自己的文件在磁盘上,例如我想把几个bundle放在初始的安装里, unity有一个streaming asset的概念,用于提供存储接口的访问。我们需要在编辑器建立一个StreamingAssets名字的文件夹,把需要我们放在客户磁盘上的动态文件放在这个文件夹下面,这样安装后,这些文件会放在用户磁盘的指定位置,这个位置可以通过Application.streamingAssetsPath来得到。4.什么是协同程序?在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。5.你用过哪些插件?一 界面制作 推荐:NGUI二 2D游戏制作 推荐:2D Toolkit& &//[?tu:lk?t] 工具包,工具箱三 可视化编程 推荐:PlayMaker四 插值插件 推荐:iTween,HOTween五 路径搜寻 推荐:Simple Path六 美术及动画制作 推荐:RageSpline,Smooth Moves七 画面增强& & 推荐:Bitmap2Material,Strumpy Shader Editor八 摄像机管理&&推荐:Security Camera九 资源包&&推荐:Nature Pack&十、造路插件EasyRoads3D6.使用实现2d游戏,有几种方式?1.使用本身的GUI;2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴;//[??:&?'ɡr?f?k] adj. 正字法的,拼字正确的;正射3.使用2d插件,如:2DToolKit;7.Unity3d中的碰撞器和触发器的区别?触发器只是碰撞器身上的一个属性,碰撞器是触发器的载体。碰撞器有碰撞的效果,IsTrigger=false,可以调用OnCollisionEnter/Stay/Exit函数;{[k??l??n]n. 碰撞;冲突;(意见,看法)的抵触;(政党等的)倾轧}触发器没有碰撞效果,IsTrigger=true,可以调用OnTriggerEnter/Stay/Exit函数。a.如果不想让碰撞检测影响物体移动但是又想检测到碰撞这时用到触发器(Trigger)b.触发器用来检测一个物件是否经过空间中的某个区域&8.物体发生碰撞的必要条件两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。8.1 .CharacterController和Rigidbody的区别?CharacterController自带胶囊碰撞器,里面包含有刚体的属性;Rigidbody就是刚体,使物体带有刚体的特征。[CharacterController:角色控制器]Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的Rigidbody,具有一定的物理效果但不是完全真实的9.在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数三个阶段1.OnCollisionEnter(进入碰撞) 2.OnCollisionStay (逗留碰撞) 3.OnCollisionExit(当退出碰撞)&10.Unity3d的物理引擎中,有几种施加力的方式,分别描述出来rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函数中。11.什么叫做链条关节?Hinge Joint,可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力。{ [h?nd?] n. 铰链,折叶;关键,转折点;枢要,中枢}12.物体自身旋转使用的函数?Transform.Rotate()13.物体围绕某点旋转使用的函数?Transform.RotateAround()14.Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数PlayerPrefs.SetInt() PlayerPrefs.GetInt()15.Unity3d提供了几种光源类型,分别是哪几种?四种。平行光:Directional Light 点光源:Point Light聚光灯:Spot Light 区域光源:Area Light16.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。Awake&&Start&&Update&&FixedUpdate&&LateUpdate&&OnGUI&&Reset&&OnDisable&&OnDestroy17.物理更新一般放在哪个系统函数里?FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。18.移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中?LateUpdate,在每帧执行完毕调用,它是在所有Update结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有Update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。19.当游戏中需要频繁创建一个物体时,我们需要怎样做能够节省内存?使用预制物体对象Prefab,然后复制创建。20.在场景中放置多个Camera并同时处于活动状态会发生什么?游戏界面可以看到很多摄像机的混合。21.请描述Prefab的作用,并描述如何在移动设备的环境下恰当的使用它?Prefab在实例化的时候用到,主要用于经常会用到的物体,属性方便修改。如何销毁一个UnityEngine.Object及其子类?使用Destroy()方法;22.请简述Unity3d下如何安全的在不同工程间迁移asset数据,请列举出三种方法?1.可以把assets目录和Library目录一起迁移2.导出包3.用Unity带的assets Server功能&23.请描述游戏动画有哪几种,以及其原理?主要有关节动画、骨骼动画、单一网格模型动画(关键帧动画)。a.关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一 个整体的动画,角色比较灵活,Quake2中使用这种动画;b.骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观;c.单一网格模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。24.请描述为什么Unity3d中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了25.alpha blend工作原理Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。{['?lf?] 透明(度); [blend] 混合;把&掺在一起}26.写出光照计算中的diffuse的计算公式计算公式为: Idiffuse = Dintensity*Dcolor*N.L ; (Dintensity表示漫反射强度, Dcolor 表示漫反射光颜色, N 为该点的法向量, L 为光源向量 其中N与L点乘,如果结果小于等于0,则漫反射为0。){[d?'fju:z] vi. 传播;四散|intensity[?n'tens?t?] n. 强烈;(感情的)强烈程度;强度;烈度}27.Lod是什么,优缺点是什么?LOD(Level of detail)多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。28.两种阴影判断的方法、工作原理。A.阴影由两部分组成:本影与半影a.本影:景物表面上那些没有被光源直接照射的区域(全黑的轮廓分明的区域)b.半影:景物表面上那些被某些特定光源直接照射但并非被所有特定光源直接照射的区域(半明半暗区域)求阴影区域的方法:做两次消隐过程一次对每个光源进行消隐,求出对于光源而言不可见的区域L;一次对视点的位置进行消隐,求出对于视点而言可见的面S;shadow area= L & SB.阴影分为两种:自身阴影和投射阴影自身阴影:因物体自身的遮挡而使光线照射不到它上面的某些可见面工作原理:利用背面剔除的方法求出,即假设视点在点光源的位置。投射阴影:因不透明物体遮挡光线使得场景中位于该物体后面的物体或区域受不到光照照射而形成的阴影工作原理:从光源处向物体的所有可见面投射光线,将这些面投影到场景中得到投影面,再将这些投影面与场景中的其他平面求交得出阴影多边形,保存这些阴影多边形信息,然后再按视点位置对场景进行相应处理得到所要求的视图(利用空间换时间,每次只需依据视点位置进行一次阴影计算即可,省去了一次消隐过程)若是动态光源此方法就无效了。29.Vertex Shader是什么,怎么计算?顶点着色器顶点着色器是一段执行在GPU上的程序,用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。Vertex Shader对输入顶点完成了从local space到homogeneous space(齐次空间)的变换过程,homogeneous space即projection space的下一个space。在这其间共有world transformation, view transformation和projection transformation及lighting几个过程。30.MipMap是什么,作用?MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。31.机试:二选一1.用代码实现第三角色控制器2.实现吊机吊物体的功能【吊机吊物体需要节点挂接和坐标系转换】32.反向旋转动画的方法是什么?【反转动画,讲动画的速度调到-1,碰撞时,被碰撞物体与碰撞物体有collider组件,碰撞物体有刚体组件,或角色碰撞得包含角色组件 OR 改变animation.speed】33.碰撞检测需要物体具备什么属性?能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器【Physics.Overlaphere相交球检测碰撞,碰撞检测需要包围盒】34.获取、增加、删除组件的命令分别是什么?获取:GetComponent 增加:AddComponent&&删除:Destroy35.Animation.CrossFade命令作用是:(C)&&{Fadevi. 褪去,失去光泽;}A.动画放大& & & & B.动画转换& & & & C.动画的淡入为其他动画36.Application.loadLevel命令为:(A)A加载关卡& & & & B.异步加载关卡& & & & C.加载动作37.调试记录到控制台的命令是什么?Debug.Log();39.编辑器类存放路径是什么?工程目录下的Assets/Editor文件夹下。40.使用原生GUI创建一个可以拖动的窗口命令是什么?GUI.DragWindow();41.localPosition与Position的使用区别?localPosition:自身位置,相对于父级的变换的位置。Position:在世界坐标transform的位置意义连线Mathf.Round& & & &&&插值Mathf.Clamp& & & &&&四舍五入Mathf.Lerp& & & &&&限制42.写一个计时器工具,从整点开始计时,格式为:00:00:0043.写出Animation的五个方法AddClip 添加剪辑、Blend 混合、Play 播放、Stop 停止、Sample 采样44.怎么拿到一个对象上脚本的方法GameObject.GetComponent&&();上机题:用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放(用一个Cube即可)。45.请简述向量的点乘,向量的叉乘以及向量归一化的几何意义?点乘的几何意义是:计算两个向量之间的夹角,以及在某一方向上的投影;叉乘的几何意义是:创建垂直于平面,三角形,或者多边形的向量;&46..Unity3D是否支持写成多线程?如果支持的话要注意什么?支持:如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine.{ [k?ru:'ti:n] n. 协同程序}注意:C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象47.Unity3D中的协程(Coroutine)和C#线程之间的区别是什么?Unity3d没有多线程的概念,不过unity也给我们提供了StartCoroutine(协同程序)和LoadLevelAsync(异步加载关卡)后台加载场景的方法。 StartCoroutine为什么叫协同程序呢,所谓协同,就是当你在StartCoroutine的函数体里处理一段代码时,利用yield语句等待执行结果,这期间不影响主程序的继续执行,可以协同工作。而LoadLevelAsync则允许你在后台加载新资源和场景,所以再利用协同,你就可以前台用loading条或动画提示玩家游戏未卡死,同时后台协同处理加载的事宜asynchronous[e??s??kr?n?s].synchronous同步48.请简述四元数的作用以及四元数相对于欧拉角的优点A.四元数一般定义如下:q=w+xi+yj+zk其中 w,x,y,z是实数。同时,有: i*i=-1& & j*j=-1& & k*k=-1B.四元数也可以表示为: q=[w,v]有多种方式可表示旋转,如 axis/angle、欧拉角(Euler angles)、矩阵(matrix)、四元组等。 相对于其它方法,四元组有其本身的优点:a.四元数不会有欧拉角存在的 gimbal lock 问题[万向节死锁]b.四元数由4个数组成,旋转矩阵需要9个数c.两个四元数之间更容易插值d.四元数、矩阵在多次运算后会积攒误差,需要分别对其做规范化(normalize)和正交化& & & & (orthogonalize),对四元数规范化更容易e.与旋转矩阵类似,两个四元组相乘可表示两次旋转49.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及他们执行的意义?当renderer(渲染器)在任何相机上都不可见时调用:OnBecameInvisible&当renderer(渲染器)在任何相机上可见时调用:OnBecameVisible50.动画层(Animation Layers)的作用是什么?动画层作为一个具有层级动画编辑概念的工具,可以用来制作和处理任何类型的动画51.52.请说出4种面向对象的设计原则,并分别简述它们的含义。1) 单一职责原则 (The Single Responsiblity Principle,简称SRP):一个类,最好只做一件事,只有一个引起它的变化.2) 开放-封闭原则 (The Open-Close Principle,简称OCP):对于扩展是开放的,对于更改是封闭的3) Liskov 替换原则(The Liskov Substitution Principle,简称LSP):子类必须能够替换其基类4) 依赖倒置原则(The Dependency Inversion Pricinple,简称DIP):依赖于抽象5) 接口隔离原则 (The Interface Segregation Principle,简称ISP):使用多个小的专门的接口,而不要使用一个大的总接口。53.Material和Physic Material区别?PhysicMaterial 物理材质:物理材质描述,如何处理物体碰撞(摩擦,弹性)。Material材质(材质类)为了获得一个对象使用的材质,可以使用 Renderer.materia属性:54.法线贴图 、CG动画A.法线贴图:是在原物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,你可以把它理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。&B.CG动画:原为Computer Graphics的英文缩写。随着以计算机为主要工具进行视觉设计和生产的一系列相关产业的形成,国际上习惯将利用计算机技术进行视觉设计和生产的领域通称为CG。它既包括技术也包括艺术,几乎囊括了当今电脑时代中所有的视觉艺术创作活动,如平面印刷品的设计、网页设计、三维动画、影视特效、多媒体技术、以计算机辅助设计为主的建筑设计及工业造型设计等。NGUI(NUGUI1、NGUI2)55、NGUI Button怎样接受用户点击并调用函数,具体方法名称是什么a、直接监听事件把下面脚本直接绑定在按钮上,当按钮点击时就可以监听到,这种方法不太好很不灵活。56、请描述游戏动画有哪几种,以及其原理。  主要有关节动画、单一网格模型动画(关键帧动画)、骨骼动画。 a、关节动画把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活Quake2([kwe?k]vi.发抖,颤抖;)中使用了这种动画;b、 单一网络模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。 c、骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,由关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观。皮肤网格每一个顶点都会受到骨骼的影响,从而实现完美的动画57、下面哪种做法可以打开Unity的Asset StoreWindows -& Asset Store58、Mecanim系统中,Body Mask的作用是?  指定身体的某一部分是否参与渲染59、以下哪种操作步骤可以打开Unity编辑器的Lightmapping视图?  Windows --& Lightmapping60、关于光照贴图  A:使用光照贴图比使用实时光源渲染要快 B:可以降低游戏内存消耗 C、多个物体可以使用同一张光照贴图61、关于Vector3的API,以下说法正确的是?  Vector3.forward与Vector3(0,0,1)是一样的意思;&62、 以下哪个函数在游戏进入新场景后会被马上调用?  MonoBehaviour.OnLevelWasLoaded63、 什么是导航网格( NavMesh)?  一种用于实现自动寻路的网格64、什么是局部坐标,什么是世界坐标?  世界坐标是不会变的,一直以世界坐标轴的XYZ为标准。局部坐标其实就是自身的坐标,会随着物体的旋转而变化的。65、itween插件的作用是什么,itween作用于世界坐标还是局部坐标,请列举出3个其常用方法?& & iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出。让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等&  方法:a、MoveTo&&物体移动 ;b、ColorTo:随着时间改变对象的颜色组; c、LookTo:随时间旋转物体让其脸部朝向所提供的Vector3或Transform位置66、请简述NGUI中Panel和Anchor的作用  Anchor包含UIAnchor脚本。UIAnchor的功能是把对象锚定在屏幕的边缘(左上,左中,左下,上,中,下,右上,右中,右下),或缩放物体使其匹配屏幕的尺寸  Panel对象有UIPanel脚本,UIPanel是一个容器,它将包含所有UI小部件,并负责将所包含的部件组合优化,以减少绘制命令的调用。67、Unity摄像机有几种工作方式,分别是什么?68、LayerMask.NameToLayer()这个方法有什么作用?  LayerMask的使用是按位操作的,LayerMask.NameToLayer("Players") 返回该Layer的编号。69、请描述MeshRender中material和shader的区别?  Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)  Shader大体上可以分为两类:表面着色器(Surface Shader) 、片段着色器(Fragment Shader)70、什么是矢量图矢量图:计算机中显示的图形一般可以分为两大类&&矢量图和位图。矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。例如一幅花的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小。矢量图形最大的优点是无论放大、缩小或旋转等不会失真;最大的缺点是难以表现色彩层次丰富的逼真图像效果。71、Unity 连接数据库  需要得到Mono.Data.Sqlite.dll 文件与System.Data.dll文件72、四元组是什么?  所谓四元数,就是把4个实数组合起来的东西。4个元素中,一个是实部,其余3个是虚部。
阅读(...) 评论()原地址:/p/
我觉得有三点感觉在导出时比较重要的1.单位的设置3dsmax系统单位设置就设成厘米显示单位公制也设成厘米这样在max里的一网格就是10厘米,像这样子但感觉不是很理想,我这把枪太长了差不多占了6个网格,OhNo这样子就有60厘米长了,我得给它来个整体的缩放,我要把它缩放成1厘米这样到unity就是1米刚好,可是现在一网格是10厘米不好缩放,等缩放成一厘米我的这把枪就看不见了,还是把系统单位设成1毫米可靠,设成1毫米再把枪缩放到大致一个网格那么长,大致就像这样子2.导出设置这不用说了大家都会设置(不过细节还是得说下),不过具体情况还是需要具体分析的像我上面的这种情况就是具体情况,来张图比较好看看到图中展开的项了吗嵌入的媒体必勾,不勾导出到unity3d不给你把贴图导进去(很多人导出后贴图丢失没有大多出在这),勾上后导出到unity3d就会自动生成贴图文件夹像我下图生成的贴图文件夹就是PanLong.fbm,不勾你准备作死吧(不过我有第二手补救办法),办法来了不过还是要举例子,有些人喜欢先把fbx模型拖进unity3d工程然后再把贴图拖进来(那你等着一个一个为材质球上贴图吧),遇到这种情况先拖贴图进unity3d工程后拖fbx进来(此种方法是你导出时没有勾选嵌入媒体的情况下,勾选了那就容易了自动为你倒入贴图生成贴图文件夹,贴图不丢失),导出单位设置是厘米(这就是具体情况具体分析了),因为我是想以厘米作单位的但是系统单位设置毫米是为了适应max的网格大小这样刚好一格一厘米,所以导出面板大小当然以厘米作单位具体看你做多大的东西了在unity3d中显示的比例图(刚好1单位1米)3.轴心问题3dsmax的模型导出到unity3d都会面临轴心问题,轴心不对,不过在max里是可以解决这个问题的调节仅影响轴可以解决看图最方便(把仅影响轴旋转到图示那样就解决了)再来张unity3d的图可以看到轴调整过来了这就是我的心得与大家分享了
原地址:/ychellboy/archive//2615751.html
& 最近房价涨得太快也懒得去看房了,空下来的时间看一下unity,发现unity3D-3.5版官方的AngryBots示例效果很震撼,就下了一个unity来玩玩。想把unity玩起来自然离不开model,面对3dsmax这些nb工具,作为一名服务器端程序员对此表示压力很大,无奈只能求助谷哥找一些model。
&&& 废了九牛二虎之力后把model从3dsmax导入unity,把模型drag到一个1*1的场景里,结果如下图......
&&& 呃,我的模型呢?还好在Hierarchy里有我导入的model,双击后可以看到(给我的Peon打了一个Point light^_^):
&&& 看来是model的scale太小了,为什么会太小了呢?3dsmax和unity的unit scale不一样?怎么设置才能达到想要的效果?本文将逐一解答这些问题。
一、比例问题的产生原因
&&& 简而言之:在默认情况下U3D系统的一个单位(1unit)等于1米,而在3dsmax中默认的单位是inch,因此产生了上述的比例问题。下面的引用来自unity官方论坛:
&&& By default, the units in Unity are meters. So the default size for terrains is 1000m x 1000m, with a max height of 600m. You can change this in the Terrain-&Set Resolution menu.&&&& The default settings for gravity, and audio dopplar also reflect the default 1 unit = 1m.&&&& This means that if you want to use the units as some other distance (eg, inches, feet, miles, or whatever), as well as importing models scaled to this new size, you'll also need to adjust the gravity and dopplar settings accordingly so that they produce sensible results for your new world scale.
知道了比例问题产生的原因,接下来就要想办法来解决。
二、解决办法
&&& 解决方法有两个方面,一种是在unity中调整模型的Scale Factor;另一种是在3dsmax导出的时候按照unity的单位导出。下面分别进行介绍:
(1)在unity中进行调整
&&& 模型由3dsmax按照inch的系统单位导出成FBX格式的文件,导出的模型一个单位代表一个inch。unity每个单位代表1米,而unity导入FBX模型是以厘米为最小单位的,因此需要对模型进行一定比例的放大操作。放大比例应该设为多少呢?先做一个实验:
&&& 在max中创建一个1*1的plane,并把参数设置成:
&&& 导出fbx文件时注意把单位设置成厘米(cm):
&&& 将fbx文件导入unity后,把Insepector面板里的Scale Factor设为1,即放大100倍。下图左侧是一个1*1的terrain(一平方米),右侧就是放大100倍后的plane。可以看出来plane的边长大概是terrain的2.5倍,也就是2.5米左右。可以来计算一下:max中一个1inch * 1inch的plane,其实也就是2.54cm * 2.54cm &&& 以cm为单位导出成fbx文件 &&& 导入unity后放大100倍,变成2.54米 * 2.54米(2.54个单位)的plane。看来这个流程应该是正确的。
总结&&在unity中调整放大比例:
& & 1、如果模型以厘米为单位从max中导出,则导入unity放大100倍可以得到想要的结果。
& & 2、如果模型以inch为单位(默认情况下)从max中导出,则导入unity后需放大254倍。1inch * 2.54 && 2.54cm && 乘以100倍得到结果
PS:unity的模型放大有两种方法:一种方法是修改FBXImporter中的Scale Factor数值(上文提到的Insepector面板里的Scale Factor,其值默认为0.01),将Scale Factor的数值恢复为1,但这样做据说会占用模型资源,比较消耗物理缓存;另一种方法是从Hierarchy中选中待修改物品,使用Scale同时放大x,y,z各100倍,这种设置据说耗费的资源比较少,同时还能通过使用脚本来进行这个放大操作,十分方便。
(2)在3dsmax中进行调整
&&& 在max中进行调整就是要对模型进行整体缩放,这里有两种方法。
1、第一种方法:在max中选中模型后按R键或者在左上部的工具栏按钮可以进行缩放,还可以在右下角找到,进行缩放。但这种方法不会改变模型本身的绝对大小,只是改了一个缩放因子,因此不推荐使用。
2、&第二种方法是等比例缩放:全选模型 &》点右上角的工具面板&-》点击&更多&
-》点击&重缩放世界单位&
-》点击右边的按钮
-》按照图中的比例选择&场景&然后点击确定完成模型的整体放大。
&&& 放大比例是1:100,max导出时要放大100倍。(注意导出FBX文件时&单位&要选择厘米)
三、比例问题总结
&&& unity中默认的unit scale和3dsmax的默认scale是不一致的,因此在unity中使用max制作或导出的model时一定要注意比例问题。
下图是一个128个单位(inch)的cliff,图中白色的方块是unity中一个4*4的terrain。128个单位的inch等于128*0.2米,从图中可以看出比例应该是正确的。
四、Unity3d和3dMax美工部分总结
&& &&本小节的内容全部转载自
&&& 3dsmax2010安装插件,输出FBX的类型导入Unity3D中。默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体。
1.面数控制&&&& 在MAX软件中制作单一Game Object物体的面数不能超过65000个三角形,即32500个多边形Poly,如果超过这个数量的物体不会显示出来,这就需要我们合理分布多边形和模型数量。打开MAX场景,选择File/Properties/Summary Info可以打开文件属性记录。其中Faces可以看到每个物体的实际数量,模型面数要少,个体数量不能超过65000个Faces面。&&&& 有特殊效果的模型需要单独制作,物体命名要统一(SanLou_YanHuiTing_JingZi或者SanlouYanhuitingJingzi),但不能出现重复,否则整合模型会被覆盖,给后期工作造成不必要的麻烦。
2.建模控制&&&& Unity3D软件支持Line渲染和编辑之后所产生的模型。大部分模型都依靠Polygon进行制作。在模型表面可以承认多出四边形的面,但不渲染交错的面。默认情况下,U3D引擎是不承认双面材质的,除非使用植物材质球Nature类型。所以在制作窗户、护栏等物体,如果想在两面都能看到模型,那需要制作出厚度,或者复制两个面翻转其中一个的Normal法线。
3.文件的放置&&&& 模型可以继承MAX的材质,但是文件的设置要按照以下形式进行放在项目的Assets文件夹内,新创建一个Object文件夹。并在其中创建Materials和Texture文件夹(分别自动存放材质球和贴图)。模型物体并列保存在Object文件夹内。这个规律模式不要打乱,否则会破坏整个系统逻辑。
4.材质数量控制&&&& 物体材质要赋予默认的标准材质standard,特殊材质需要特殊调节(玻璃,镜面等),透明材质需要给双面。如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。&&&& 如果一个物体给与多个材质球,我们需要用Multi/SubObject来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。&&&& 如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。&&&& 综合而言Unity3D软件对于材质的兼容还是很好的。
5.物体的质感&Diffuse、Diffuse Bumped、Bumped Specular,这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。&Decal&&&& 这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha通道的图像,形成和原图像相叠加的效果。&Diffuse Detail&&&& 这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。&Reflective&&&& 其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。&Transparent&&&& 其中各种类型可以创造出透明的效果,需要增加具有Alpha的通道贴图。&&&& 注意:如果要做玻璃贴图,Alpha如果全是灰色或黑色(即要求全透明),那么Alpha就会失效,如果要全透明,材质Alpha其中必须至少有1像素为白色。&Nature&&&& 其中Soft Occlusion Leaves类型主要应用于片状的树叶材质。
6.关于复制&&&& 场景中的灯光布局,重复的模型物体都可以使用系统Prefab进行关联复制,这样可以改变一个参数的同时将所有关联物体属性改变。
7.山脉控制&&&& 在创建山脉之后,选择Terrain/Set Resolution可以设置山脉的大小和属性。&&&& 需要注意的是,默认情况下Terrain Width和Terrain Height为1000米。如果设置这个数值太小,那么绘制草的时候会产生偏移,因为草的尺寸必须减少到0.1的单位。&&&& 也就是说,山脉在处理0.1单位的时候会产生0.01的偏差,如果模型太小,这种偏差是显而易见的,所以建议用户不要让模型过小。
8.光晕控制&&&& 光晕又称为Lens Flare即灯光光效。可以选择一个GameObject物体给与Component/Rendering/Lens Flare,并在Flare中增加一个Standard Assets/Light Flares/50mm Zoom项目。这样在运行之后就会产生光晕。但有时候如果光晕太远太高却看不到。一种办法是将光晕离近,另一种办法是将所有摄影机Camera的Far clip plane的数值增加。
9.摄影机控制&&&& 如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。
References:
阅读(...) 评论()}

我要回帖

更多关于 u3d模型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信