1. 程式人生 > >Unity 3D中的陰影設定

Unity 3D中的陰影設定

在Unity 3D中,經常需要用到光照陰影,即Directional Light的Shadow,Shadow分為Hard Shadow和Soft Shadow。區別是Soft Shadow的陰影邊緣比較平滑,接近真實,但是效能消耗大於Hard Shadow

  Lightmapping有3種選擇:實時光照陰影(RealTimeOnly)、場景烘焙陰影(BakedOnly)、以及上面兩者結合的陰影(Auto)。

  RealTimeOnly:所有場景物體的光照都實時計算,實時光照對效能消耗比較大;

  BakedOnly:只顯示被烘焙過的場景的光照效果(如果有地方沒有被烘焙過,則不會顯示光照效果):場景烘焙是可以選擇一些靜態物體進行烘焙,這裡的靜態物體是指在遊戲過程中不會動的物體(需要在物件的Inspector面板中勾上static),因此可以在遊戲執行前就先把光照效果做好,生成光照貼圖,然後遊戲執行的時候直接把光照貼圖顯示出來就可以了,不用實時計算光照效果,用空間(貼圖的儲存空間)換取了時間(實時光照的計算時間)。

  Auto:這種就是上述兩者的結合,如果選擇這個模式,那麼被烘焙過的部分就用光照貼圖直接顯示,沒有被烘焙過的地方就實時計算。

  但是在使用Shadow的過程中,可能會遇到一個問題:本來以前顯示的好好的,陰影突然不顯示了。在Shadow裡面選擇了顯示陰影,仍然沒有效果,陰影選擇Hard Shadow和Soft Shadow都不行,選擇RealTime only、Bake only、Auto也都不行,這是什麼原因呢?

  有下面三種情況可能導致這種現象的發生,如果遇到這種問題可以試試。

  情況一:距離太遠了,看不到陰影,把攝像機鏡頭放近試試,這種情況一般會在選擇實時光照(RealTimeOnly)時發生。如果還不行,那麼看看第二種情況。

  情況二:開啟EditàProject SettingsàQuality,在Inspect面板中檢視,如下圖。在Levels中綠色的是釋出時候會選擇的模式,當前選擇的是Good,可以再Unity中實時檢視這個Levels下的顯示情況,在Good Levels下,Unity自定義了一下Good情況下的顯示效果,在圖的下方:Rendering、Shadows、Other,如果選擇了Fast,Shadows預設是不顯示陰影的。因此遇到陰影不顯示的情況,可以檢查一下這個地方。不過這種情況一般也是會在實時陰影時出現。

  情況三:由PC平臺轉到了Android平臺。這種情況,使用實時陰影或者烘焙可能都會出現在Android平臺上無法顯示陰影的問題。解決方法就是,在從PC平臺轉到Android平臺的時候,在Player Settings中將Use Direct3D 11後面的勾去掉(如下圖),然後再Switch到Android平臺,這時陰影效果就會有了。

相關推薦

Unity 3D陰影設定

在Unity 3D中,經常需要用到光照陰影,即Directional Light的Shadow,Shadow分為Hard Shadow和Soft Shadow。區別是Soft Shadow的陰影邊緣比較平滑,接近真實,但是效能消耗大於Hard Shadow。   Lig

Unity 3d Debug.Log和Print的區別。

Debug.Log和print是unity中常見的兩種查詢BUG,輸出資訊的方式。 Debug.Log 英文描述為:Logs message to the Unity Console. 解釋:記錄訊息到unity控制檯。 適用於整個程式。 平行的還有 Debug

Unity-程式碼動態設定Material引數

我們知道在Unity中可以在程式碼中動態地改變Material監視面板中的引數,如改變數值大小或替換貼圖。常用的API有:SetColor , SetFloat, SetInt, SetTexture. 然而今天在設定一個StandardShader的材質貼圖

Unity 3D的射線與碰撞檢測

在我們的遊戲開發過程中,有一個很重要的工作就是進行碰撞檢測。例如在射擊遊戲中子彈是否擊中敵人,在RPG遊戲中是否撿到裝備等等。在進行碰撞檢測時,我們最常用的工具就是射線,Unity 3D的物理引擎也為我們提供了射線類以及相關的函式介面。本文將對射線的使用進行一個總結。 射線

Unity 3D的射線(上)

圖6 控制檯中輸出的碰撞檢測資訊 利用二次發射射線的方式檢測內部物體 有的時候我們要檢測的物體在其他物體的內部,並且這兩個物體都具有碰撞器,用射線檢測返回的是第一個物體的資訊。在這種情況下,我們需要使用二次射線發射的做法,即以第一次射線碰撞的外層物體的碰撞點作為第二次射線發射的起點,沿原來方向發射射線,

unity 3d使用BMFont製作清晰字型

 1.大家可以在這免費下載到我們今天的主角工具BMFOnt。 下載BMFont      2.我們把它安裝好後開啟它,就是個樣子了。                3.我們現在來製作我們想要的一些文字,這裡我用來測試。新建一個txt文字文件,裡面我的內容是: 大家

unity 3d實現點選某個UI啟用一個物體,再點選禁用物體

using UnityEngine; using UnityEngine.EventSystems; public class PointerClickUi : MonoBehaviour,IPointerClickHandler {     public GameObjec

[Unity] Unity 3D 的旋轉

Unity 3D 中的旋轉 一、Unity 3D 中 Rotation 在Unity中,旋轉通常可以用一個三維向量(x,y,z)表示。實際上這是尤拉角。三個分量分別是繞x軸、y軸和z軸的旋轉角度。 要對一個GameObject進行旋轉,可以直接通過如下

unity 3d 的quaternion.Slerp的作用以及用法

<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="csharp">using UnityEngine; usin

unity 3D】關於unity製作繩子(Rope)的總結

    這幾天因為專案需要,一直在搜尋和學習unity中關於繩子製作的資源。於是開始在CSDN、BaiDu、Bilibili上面找各種相關的資源,但是隻是講解了最基本的關於繩子的通用製作方法,即:繩子由若干個Gameobject(可以是Cube、Capusual、Cylinder

unity 3D 在安卓環境下使用assetbundle打包Imageshader丟失問題

最近經常做一些2D專案,因為畫面很重要,所以加了很多特效。有時候我們已經把所需要的shader新增至editor-project setting -graphics-always included shaders ,用assetbundle打包之後還是會丟失。今天找到處理方法

Unity在執行時(程式碼設定材質的渲染模式(RenderingMode)

public enum RenderingMode { Opaque, Cutout, Fade, Transparent, } public static void SetMaterialRenderingMode (Material material, Render

Unity 3D:訪問另一個C#類的屬性或方法

在開發Unity 3D 遊戲的過程中,經常遇到在某個C#類中訪問另一個C#類中的方法或屬性;比如:在Eenmy.cs中訪問PlayAttack.cs指令碼中的TakeDamage(int damage

Unity 3D之cloth開發遇到的一個問題

在unity 5.x開發中遇到了一個很鬱悶的問題,這個問題不會影響你的遊戲的執行,但是卻會使你在演示或是交流的時候出現尷尬。 問題描述:Mesh.colors is out of bounds. T

[Unity優化]資源匯入設定--3D模型

Unity模型資源匯入設定 如下圖,是一個模型的匯入設定: 首先是Model切頁: Mesh網格設定: Scale Factor:縮放因子,不同的建模程式生成的模型檔案,尺度單位不同,為了在U3D裡統一,就需要進行縮放。 模型檔案的縮放因子:

Unity 3D學習】鍵盤控制人物在場景移動

一、第一種情況,鍵盤左右鍵控制人物旋轉,讓人物可以面向四方,然後上下鍵控制移動。 public float speed = 3.0F; public float rotateSpeed = 3.0F; CharacterController controller; voi

unity 3D匯入STL並設定為透明

這裡寫自定義目錄標題 歡迎使用Markdown編輯器 新的改變 功能快捷鍵 合理的建立標題,有助於目錄的生成 如何改變文字的樣式 插入連結與圖片 如何插入一段漂亮的程式碼片 生成一個適合你的列表 建

Unity利用貝塞爾曲線來實現3D的曲線運動

下面是在理解後寫的2階三階曲線 using UnityEngine; using System.Collections; using System.Collections.Generic; public class TestCurve : MonoBehaviour

Unity3DVideo Player的使用及3D音效的設定

問題速覽: 1.Video Player的使用 2.Video Player如何輸出聲音 3.如何讓Video Player輸出的聲音有3D效果。 官方文件:https://docs.unity3d.com/Manual/class-VideoPlayer.html 1

Smartform如何設定背景陰影色(Shading)

有兩種方法能在smartforms中設定背景色或者叫陰影色, 1、template,table設定背景色 在template或者是table 的屬性中,選中單元格可以在shading的選項中設定顏色(color)和透明度(saturation). 注意:在output options tab頁中也有