2017-06-15 64 views
14

陰影模糊我添加一個節點,並嘗試設置陰影與SceneKit模糊軟陰影,在SceneKit

這裏是我的光的配置,我也嘗試設置shadowRadius

light = [SCNLight light]; 
light.type = SCNLightTypeDirectional; 
light.castsShadow = true; 
light.shadowMode = SCNShadowModeForward; 
light.shadowRadius = 5; 
light.shadowMapSize=CGSizeMake(4000, 4000); 
light.orthographicScale=25; 
light.zNear=1; 
light.zFar=1000; 

,但結果不是更柔軟比我不設置shadowRadius 它在這裏: enter image description here

我也嘗試添加samplecount

light = [SCNLight light]; 
light.type = SCNLightTypeDirectional; 
light.castsShadow = true; 
light.shadowMode = SCNShadowModeForward; 
light.shadowRadius = 5; 
// add samplecount 
light.shadowSampleCount = 5; 
light.shadowMapSize=CGSizeMake(4000, 4000); 
light.orthographicScale=25; 
light.zNear=1; 
light.zFar=1000; 

結果看起來像以下 enter image description here

陰影似乎軟但這個影子從節點的底部開始(Z座標是0)。我花了很多時間只在節點邊緣設置軟陰影,而不是從底部開始。但沒有結果。當添加兩個節點跨越(不只是節點和幾何形狀SCNFloor)

我的問題是如何與方向上的光獲得陰影模糊(軟陰影)

這個問題也時有發生。

任何幫助將不勝感激!

回答

1

我真的可以用orthographicScale做陰影模糊。我不知道爲什麼,但這個伎倆對我有用。希望可以幫助別人

light.shadowMapSize=CGSizeMake(4000, 4000); 
light.orthographicScale=100; // bigger is softer 

我也改變shadowMapSize到更大的價值,並設置isJitteringEnabledantialiasingMode減少走樣。

1

斯威夫特4 /的Xcode 9.2

我買了這些設置一個相當不錯的結果:

light2.castsShadow = true 
light2.automaticallyAdjustsShadowProjection = true 
light2.maximumShadowDistance = 20.0 
light2.orthographicScale = 1 

light2.shadowMapSize = CGSize(width: 2048, height: 2048) 
light2.shadowMode = .forward 
light2.shadowSampleCount = 128 
light2.shadowRadius = 3 
light2.shadowBias = 32 

增加shadowRadius 12幫助了很多與我的模型,但我需要增加shadowSampleCountshadowBias不會得到文物。