unity3d 場景設定注意事項
阿新 • • 發佈:2019-02-16
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 |