2017-06-15 36 views
14

gölge bulanıklık Bir düğüm eklemek ve gölge SceneKit ile bulanıklık ayarı deneyinyumuşak gölge, SceneKit

burada ışığım yapılandırma, ben 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; 

ayarlamak çalıştım ama sonuç değil yumuşaktır Ben shadowRadius ayarladığınız zaman değil daha burada': enter image description here

Ben samplecount

eklemeye çalıştım (Z koordinat 0)
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; 

sonuç enter image description here

gölge aşağıdaki gibi yumuşak gibi, ancak bu gölge düğümün altından başlar. Yumuşak gölgeyi yalnızca düğmenin kenarında, alttan değil ayarlamak için çok zaman harcıyorum. Ama sonuç yok. iki düğüm

Benim problem yönü ışık gölge bulanıklık (yumuşak gölge) elde etmek için nasıl üzerinde çapraz (SCNFloor olarak sadece düğüm ve geometri) eklerken

bu sorun, aynı zamanda meydana geldi.

herhangi bir yardım için teşekkür ederiz!

cevap

1

Gerçekten orthographicScale ile gölge bulanıklığı oluşturabilirim. Nedenini bilmiyorum, ama bu hile benim için çalışıyor. Birisi

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

Ben de büyük değer ve isJitteringEnabledantialiasingMode aliasing azaltmaya ayara shadowMapSize değiştirmek yardımcı olabilir umuyoruz.

1

Swift 4/Xcode 9.2

Ben çok iyi bir bu ayarlarla sonuç var

: 12 shadowRadius benim modeli ile çok yardımcı oldu artırılması

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 

, ama sonra gerekli artikakt almak için shadowSampleCount ve shadowBias'u artırmak.