1. 程式人生 > >unity3d 場景設定注意事項

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