Unity3d 经验小结

Unity3d 经验小结

文本教程 你是第2541个围观者 0条评论 供稿者:Jamesgary 标签:unity3d教程

  • Fbx、贴图导入Unity时的注意事项:

在导出Fbx之前,Maya中已经对物体连接了正确的贴图,并且贴图文件名不能更改。

把Fbx和贴图放在同一文件夹内,直接把此文件加拖入Unity内。此时Diffuse贴图应能自动识别。

此时,对贴图修改后,在Unity中更新贴图(删除老贴图,导入新贴图,并保持命名,路经一致),模型能够自动更新。

假如Unity中删除贴图,关闭Unity,再打开Unity,导入之前删除的贴图,模型不会自动更新贴图。

——————————————————

i3D的这篇教程中的模型比例有问题,先根据Unity官方帮助文档中的内容说一下:

Unity官方帮助文档中认为,模型的缩放尺寸是非常重要的。特别是涉及到一些物理特效模拟的时候。

Unity认为,在理想状态下,不要更改模型的Transforms
Scale值,保持Scale值为(1,1,1)。(这样的话,模型在Maya中制作时需要freeze,使缩放值为(1,1,1))。原因是,额外的缩放数值会增加不必要的计算量。

Unity首先推荐模型在创建时使用真实尺寸。其次是在Unity的Import
Settings中更改尺寸。Unity在进行场景优化时会根据物体尺寸来进行优化。

当在Unity中把一个物体parent到另外一个物体时,最好父级物体的坐标值是(0,0,0),否则之后会遇到不少头痛问题。

Unity的粒子系统不受Transforms Scale值的影响。

物体的不均匀缩放值在Parent后会产生不良后果(这个情况和Maya中是一样的)

Unity中,1个单位尺寸代表1米。即在Unity中创建一个Cube的尺寸是1x1x1米大小。

Unity推荐把人的身高定为大约2个Unity单位高度(2米)。

在Max中,只要正确设置单位尺寸(系统单位尺寸设置以及输出时单位尺寸设置)成厘米后,得到的效果是一致的。

经常有人说模型从maya导入到max中或者模型从max导入到maya之后模型的尺寸会变掉.其实这个就是软件系统内部的单位精度设置不统一的问题,max中默认是英寸(或英尺?),
maya中默认是cm(厘米),统一尺寸之后任意来回互导理论上是没问题的.实际操作之后发现obj没问题,fbx有问题. 不解…

——————————————————

在unity中导入fbx文件模型、贴图,不建议直接在项目文件夹中操作。

如何把贴图贴上模型,这个教程里不厌其烦的每一个模型都这么操作了一遍,看过的应该很清楚了。

首先是更改材质,diffuse或者diffuse+specular,看你是否需要高光。

高光贴图需要做进color贴图的alpha通道里,这点比较特别。

Unity可以直接根据color贴图的灰度图充当specular贴图,一般的场景这么做足可应付。

Normal贴图有时不能直接正确识别,Unity可以修正。

——————————————————

下面是关于灯光方面的。

pro版本的Unity可以有实时阴影,free版本没有。

阴影可以实时阴影和bake到贴图上的阴影混合使用(Lightmap),帮助文档里有例子。

Lighting

Edit>Project Setting>Quality

Editor Quality : Fantastic

Edit>Rendering Setting

Ambient Light  会影响全局暗部色调,设置成全黑,接下来将手动打光模拟Ambient Light.

添加预设Skybox天空效果

Asset->Import Package->Skyboxes 添加Unity自带Skybox素材

1.选择Edit->Render Settings from the menu bar.

2.拖动Skybox材质球到Inspector面板中的Skybox Material栏中.

———————————————————–

17_Lightmapping_Part01

Unity自带Beast插件(也有其他游戏引擎集成这个插件)

多边形物体需要2套UVset

一套UVset用来显示普通贴图

另一套UVset用来显示Lightmap

在倒入Unity的Fbx多边形属性中勾选”Generate Lightmap UVs”

方法:”Project”面板中选中模型组,”Inspector”面板中找到”FBXImporter”选项,勾选”Generate
Lightmap UVs”

Window>Lightmapping

Ctrl+A全选所有物体

Static 勾选,表示物体不会移动

小窗口中(Scene窗口中右下角的Lightmap Display窗口),勾选Show
Resolution,物体表面可看到黑白格子,通过Lightmapping窗口>Object>Scale In Lightmap
值来改变需要设置的Lightmap精度

远方的物体用最低的Lightmap精度,画面中能近距离看到的物体用较高的Lightmap精度

Lightmapping窗口>Bake

[Mode] : Dual Lightmaps 创建2套Lightmap,分别对应摄像机远/近距离

[Quality]: High

[Use in forward rend]:

[Bounces] : 1 反射次数 (预览1,正式2)

[Sky Light Intensity] : (预览0.5,正式0.75 。0表示无天光)

[Bounce Boost] : (预览1,正式1.5)提高场景中间接照明光量,如地面上反弹到墙壁上的光

[Bounce Intensity] : (预览1,正式)对间接灯光的强度进行乘积操作(乘以此值后的亮度)

[Final Gather Rays] :  (预览设置32,正式500,默认1000过高)

[Contrast Threshold] : 0.05 默认
 (让表面光滑,较高的值会减少细节,类似PS中的高斯模糊)

[Interpolation] : 0 默认  正式0.2
(FG产生的颜色如何进行插值运算,0线形运算,1较高级的算法)

[Interpolation Points] : 15 默认  正式20 (值越高越光滑,相应的丢失细节)

[Ambient Occlusion] : 多边形的交接处、凹处产生阴影。与灯光信息无关。

[Resolution] : 全局分辨率,最影响渲染时间的设置。预览设置10,正式不要超过20

Lightmapping窗口>Maps

Array Size: 全部场景产生的LightMap数量,范围0-254

选择屋顶,勾选Static,

Scale In Lightmap : 0 参与Lightmap运算,但是不产生Lightmap贴图。

关于透明贴图,

在Unity中,透明材质球不接受阴影。

使用Transparent/Cutout/Bumped Diffuse材质,透明通道稍差但是接收阴影。

同时对其Cast Shadow去勾,以便不产生阴影。

Alpha cutoff 最大

以较低的预览参数设置,bake全体Lightmap。然后检查有无灯光过亮灯问题。

选中灯光,可在Lightmapping窗口中单独设置灯光参数。根据需要跟改Bounce Intensity值,调整光源。

把SunLight的Bounce Intensity: 2 (正式)

Ambient Occlusion:1

Max Distance:3

Contrast:0.5

选择天窗,Emmit Light: 50 模拟更真实的天窗强烈照射效果。

——————————

OPtimization Techniques

Per object shadow casting/receiving  没必要显示影子的物体就不需要设置影子

Shader complexity:

- shader type

- vertex vs. pixel shaders

实时渲染速度最快的材质: Vertexlit

Light Linking

Polygon/Traingle count

Combine Objects 能合并的多边形尽量合并

Share Materials 能共用材质球的尽量共用

速度

各内置材质球计算速度由低到高排列:

Unlit.

VertexLit.

Diffuse.

Normal mapped.

Specular.

Normal Mapped Specular.

Parallax Normal mapped.

Parallax Normal Mapped Specular

Rendering Paths Comparison

Deferred Lighting Forward Rendering Vertex Lit

Features

Per-pixel lighting (normal maps, light cookies) Yes Yes -

Realtime shadows Yes 1 Directional Light -

Dual Lightmaps Yes – -

Depth&Normals Buffers Yes Additional render passes -

Soft Particles Yes – -

Semitransparent objects – Yes Yes

Anti-Aliasing – Yes Yes

Light Culling Masks Limited Yes Yes

Lighting Fidelity All per-pixel Some per-pixel All
per-vertex

Performance

Cost of a per-pixel Light Number of pixels it illuminates Number
of pixels * Number of objects it illuminates -

Platform Support

PC (Windows/Mac) Shader Model 3.0+ Shader Model 2.0+
Anything

Mobile (iOS/Android) – OpenGL ES 2.0 OpenGL ES 2.0 & 1.1

Consoles 360, PS3 360, PS3

Unity3d 经验小结,布布扣,bubuko.com

时间: 2024-08-23 21:51:08

Unity3d 经验小结的相关文章

多线程06-多线程共享数据的方式(经验小结)

1.案例分析-01 通过代码实现火车票出售的例子 在实现代码之前先对问题进行分析:火车票出售应该是在多个窗口进行的(即多个线程),以一个车的班次来说,该班次的火车票张数即为多个窗口共享的数据 即这份共享数据为出售特定班次的火车票,这个动作在多个窗口都是不变的,变更的只有火车票的剩余张数.代码实现如下: package org.lkl.thead; /** * * Function : 多线程共享数据 * * @author : Liaokailin CreateDate : 2014-6-13

Windows网络编程经验小结

转自:CSDN网友的强贴,其ID:gdy119 (夜风微凉) 1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已经处于连接状态的soket

DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)

下面是笔者自己总结的使用 DevExpress Gridview 的一些经验小结,分享给大家: 1.去除 GridView 头上的 "Drag a column header here to group by that column" -->  点击 Run Designer  -> 找到:OptionView ->  将 ShowGroupPanel : 设置为 false ; 2.如何显示出 GridView 自带的搜索功能 -->  点击 Run Desi

IE8+兼容经验小结(转)

IE8+兼容经验小结 January 15, 2014 最近一段时间,我都使用Flask+Bootstrap3的框架组合进行开发.本文就是在这种技术组合下,分享IE8+兼容性问题的解决方法.根据我的实践经验,如果你在写HTML/CSS时候是按照W3C推荐的方式写的,然后下面的几点都关注过,那么基本上很大一部分IE8+兼容性问题都OK了(这里的IE8+主要是指IE8,据个人目测,IE9+的渲染效果已经非常好了). 前期准备 测试IE兼容性必须要在Windows中测,而且是Win7+,因为WinXP

性能测试个人经验小结

性能测试定义: 通过一定的工具结合相应的测试方法,对部署的系统应用进行测试,发现系统应用内部存在的代码逻辑问题及应用部署的机器硬件资源瓶颈问题及应用部署架构存在架构错误问题,如:网络端.客户端.服务端搭建的架构问题: 负载测试:是一个分析软件应用程序和支撑架构.模拟真实环境的使用,从而来确定能够接收的性能过: 压力测试(Stress Testing):是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试: 性能测试的目的: 性能测试的目的主要体现在三个方面:以真实的

IE8+兼容经验小结

最近一段时间,我都使用Flask+Bootstrap3的框架组合进行开发.本文就是在这种技术组合下,分享IE8+兼容性问题的解决方法.根据我的实践经验,如果你在写HTML/CSS时候是按照W3C推荐的方式写的,然后下面的几点都关注过,那么基本上很大一部分IE8+兼容性问题都OK了(这里的IE8+主要是指IE8,据个人目测,IE9+的渲染效果已经非常好了). 前期准备 测试IE兼容性必须要在Windows中测,而且是Win7+,因为WinXP最高只支持IE8,IE9就呵呵啦!大部分做Web的童鞋都

基于webmagic的爬虫项目经验小结

大概在1个月前,利用webmagic做了一个爬虫项目,下面是该项目的一些个人心得,贴在这里备份: 一.为什么选择webmagic? 说实话,开源的爬虫框架已经很多了,有各种语言(比如:python.java)实现的,有单机的,还有大型分布式的,多达上百种,详情可见: http://www.oschina.net/project/tag/64/spider?lang=0&os=0&sort=view& github上随手搜索一下spider之类的关键字,也不计其数,如何选择呢? 我的

WP小游戏产品海外发行经验小结

在群里和大家聊天的时候,大家最多抱怨的就是国内WP份额低,辛辛苦苦做的APP变现困难.我和大家一样,兼职做一些开发,不过我的APP主要面向的是海外市场,从5月份上线到现在不到两个月的时间,没有花费一分钱用于推广,目前已经有用户近10万,单日最高日活超过3000,通过广告每天有300左右的软妹币进账,当然还有内购收入,而且几乎不耽误正常的工作. 所以我想分享大家的就是,与其抱着可怜的中国市场用户不放,不妨试试海外市场,微软给我们开拓了一个非常便捷也非常庞大的全球发行渠道,不好好利用,真的是可惜了.

php调用dll经验小结

最近做一个网站,需要频繁使用远程数据,数据接口已经做好.在做转换的时候遇到了性能上的问题:开始打算用php来实现转换,苦苦查了数天,都没有找到直接操作字节的方法.虽然可以使用 pack() 方法将各个数据压入结构中,但是在解压的时候却不能通过 unpack() 简单的解出来,需要通过 //php code for( $i = 0; $i < $length; $i+=2 ){ $tempstr = $tempstr.chr( hexdec(substr($array["data"