22년 11월 25일 개발노트
1. Lumen 최적화 작업 이어서 하기
어제 2.5ms정도 줄였던 Lumen관련 렌더소요시간을 좀 더 줄여보고자 한다.
https://www.youtube.com/watch?v=jwopXeKdkRI
오늘은 이 영상을 참고해서 작업을 해보려고한다.
정리하자면 아래의 관련 커맨드들을 입력하게 된다.
이는 다른 곳에서 제안하는 커맨드와 동일한게 대부분이지만, 그 값은 다른게 많다. 일단 참고해두자.
Added console commands to one user's suggestion:
Virtual Shadow Maps:
r.Shadow.Virtual.ContactShadowLength - controls precision of contactShadows to the casting object. Set it to 0.01 for example, or lower.
r.Shadow.Virtual.ResolutionLodBias - controls smoothing of virtualShadows based on distance. Be careful to select the right option according to your light-type. 0 or negative values for wider smoothing range.
r.Shadow.Virtual.NormalBias - use this to fix virtual shadow artifacts which appear when the casting shadow is to close to casting object's surface. Set it to 1 or even higher values like 1.5. Default should be 0.5.
Lumen Reflections:
r.Lumen.Reflections.HierachicalScreenTraces.MaxIterations - reduce this to low values to get rid of unrealistic dark areas (shadows?) in lumen reflections. Set it to 4 for example.
r.Lumen.DiffuseIndirect.MaxMeshSDFTraceDistance - seems to control the distance to which distance field meshes are taken into account, affecting basically the mesh clarity/resolution range in lumen reflections.
Lumen Global Illumination:
r.Lumen.DiffuseIndirect.MinTraceDistance - increase this if you find nearby areas from light reflecting surfaces to be to dark (very subtle).
r.Lumen.ScreenProbeGather.MaxRayIntensity - values between 0 and 1. Controls the overall amount of indirect lighting intensity in the whole scene.
r.Lumen.ScreenProbeGather.FullResolutionJitterWidth - higher values mean less jittering (it gets wider) but more visible noise from the indirect lighting. 1 should be default.
r.Lumen.ScreenProbeGather.DownsampleFactor - lower values mean more probes are used to collect light for the scene, which increases overall lighting precision/quality and reduces noise, but for a high cost in performance, default is 16 and should only be changed if absolutely necessary.
r.Lumen.ScreenProbeGather.SpatialFilterMaxRadianceHitAngle - gives some control over ambient occlusion (in my opinion, but I don't really know, what it does). Higher values for sharper and (I find more precise looking) ambient occlusion. I suggest to think in degrees from 0 to 90.
r.Lumen.ScreenProbeGather.SpatialFilterNumPasses - how good the jittering is filtered, higher values give smoother lighting results.
일단 루멘은 이 정도 까지 하고, 내일은 2ms정도 소요되는 Basepass에 대해서 알아보자.