Closed Jin02 closed 6 years ago
Ray Marching / Tracing을 이용한 Volumetric Lighting도 괜찮아보인다. 성능은 모르겠지만.. 가장 좋아보이긴 하다.
정리하자니.. 구현이 총 2가지로 나뉜다.
현재 내가 구현하려고 했었던 것은 2번이다.
내가 이해하기로는.. 2번으로는 태양이나 전구와 같은 간단한 발광체 형태만이 구현이 용이하고, 사용하고 있는 카메라로 쏟아져오는 빛만을 표현할 수 있다.
즉, 손전등과 같은 Spot Light와 같은 형태는 구현할 수 없다. 뭐.. 손전등같은 라이트를 눈/카메라로 직접 쏴버린다면 구현이야 가능하지만 내가 원하는건 그게 아니다.
그려내고 싶은건, 아래 같은게 아니라 참고 : http://http.developer.nvidia.com/GPUGems3
이거 참고 : https://sdm.scad.edu/
그래서 몇일동안 자료 및 여러 오픈소스를 찾아봤는데 Ray Tracing이나 Ray Marching을 이용한 Volumetric Lighting을 해야한다. 이걸 리얼타임상에서 돌리려면 어느정도 해상도는 낮추고 블러링 및 노이즈를 적용시켜가며 해야할 듯 싶다.
기존에 구현했던건 Sun Shaft로 명칭을 바꾸고 작업하면 될 것 같다. 위의 코멘트에서 아래쪽에 속하는건 #55 Volumetric Light Scattering으로 이슈를 따로 파서 작업할 예정이다.
개인정비 시간때 손코딩하면서 생각하다보니, 고쳐야 할 것도 꽤 있고, 개발해야할 양도 생각보다는 있는편이라서 12월까지로 일정을 바꿨다.
이제 남은건 LightShaftMap 작성이 남았다.
여러 Light를 Light Shaft 적용시켜줄까 고민을 많이 해봤는데.. 귀찮다. 단 하나의 Directional Light만 Light Shaft를 적용해준다.
작년에 고민했던게 물거품이 되지만.. 그래도 귀찮다. 적당히 하고 엔진 작업 끝내야 구직활동 들어가니까.. 과한 설계는 하지말고 적당히 끝내야겠다.
기존에 LightShaft Index라고 만들어둔걸 UserFlag로 변경한다
끝
From @Jin02 on November 4, 2016 14:19
Light Shaft를 구현한다.
Copied from original issue: Jin02/SOCEngine#54