yuchi's Development Home
글 수 201
먼저는 간단한 모델에만 적용해봤는데 이제 좀 복잡한 맵 데이타에 적용해봤다.
당연히 너무 느려서 처리가 불가능할 정도. 한시간 넘게 기다리긴 싫어서 코드를 수정했다.
라이트맵 텍셀이 변경될 때마다 이진트리를 검색해서 삼각형을 가져오던 방식을 비슷한 평면상의 라이트맵 패치 그룹단위로 삼각형을 가져오는 방식으로 변경했다.
레이 충돌검사시 이전에 충돌했던 삼각형은 재충돌 가능성이 높으므로 삼각형 리스트의 가장 앞쪽으로 가져와서 검색 우선순위를 높인다.
일단 두 가지 변경만으로 속도는 크게 향상되었다.
현재 싱글스레드로 20분 정도 걸리는것 같다.
멀티스레드로 바꾸면 대략 코어 개수만큼의 성능향상이 있고 cuda를 적용하면 거기서 2-3배 정도 성능 향상이 있을것이다.
멀티스레드를 적용하는 것은 오늘내일로 가능할듯 싶은데 cuda 적용은 취업 전까지 힘들듯.
Only Light Map
Light Map + Ambient Occlusion
Only Light Map(No diffuse texture)
Light Map + Ambient Occlusion (No diffuse texture)