라이트맵 계산시에 Ambient Occlusion적용하기 #2

먼저는 간단한 모델에만 적용해봤는데 이제 좀 복잡한 맵 데이타에 적용해봤다. 당연히 너무 느려서 처리가 불가능할 정도. 한시간 넘게 기다리긴 싫어서 코드를 수정했다. 라이트맵 텍셀이 변경될 때마다 이진트리를 검색해서 삼각형을 가져오던 방식을 비슷한 평면상의 라이트맵 패치 그룹단위로 삼각형을 가져오는 방식으로 변경했다. 레이 충돌검사시 이전에 충돌했던 삼각형은 재충돌 가능성이 높으므로 삼각형 리스트의 가장 앞쪽으로 가져와서 검색 우선순위를 … More 라이트맵 계산시에 Ambient Occlusion적용하기 #2

라이트맵 계산시에 Ambient Occlusion적용하기

몇 주전 kasa세미나에서 스크린스페이스에서의 Ambient Occlusion처리 방법에 대한 세미나를 들었다. 사실 난 Ambient Occlusion이 뭔지 몰랐다. 전혀 관심이 없었으니까. 발표자 분이 너무나 쉽게 설명을 잘 해주셔서 개념을 쉽게 이해할 수 있었다. 설명을 듣고나니 스크린스페이스에서 적용할 경우 당장이라도 지금 엔진에 적용할 수 있을것 같았다. 그런데 내 엔진의 경우는 라이트맵을 베이스로 사용하기 때문에 일단 라이트맵 구울때 Ambient … More 라이트맵 계산시에 Ambient Occlusion적용하기

그림자 개선중#3 – Cascade Shadow Maps

셀프쉐도우를 넣기 위해서 손을 대기 시작한게 cascade shadow maps까지 와 버렸다. 일단 캐릭터를 위한 그림자로선 충분히 효과를 얻었으나 내친 김에 전체 씬을 cascade shadow maps으로 다 덮어버리면 어떨까 해서 이리저리 실험을 해봤다. 역시나 문제가 있는데 cascade된 뷰프러스텀 별로 depth bias가 달라질 필요가 있는데 도저히 수동세팅으론 맞출 수가 없다. ddx,ddy명령을 이용해서 텍셀 샘플링할때 최적의 bias를 구하는 … More 그림자 개선중#3 – Cascade Shadow Maps

그림자 개선중#2

어제 15시간동안 매달려서 멀티스레드 렌더링 코드 싹 들어내고 VSM을 이용해서 소프트쉐도우를 구현해봤다. 그럭저럭 괜찮은데 문제가 있다. 1. 라이트맵을 사용하기 때문에 움직이는 개체들의 그림자만 드리우려고 한다. 따라서 쉐도우맵에는 움직이는 개체들의 깊이값과 그 제곱만 기록한다. 즉 라이트맵을 사용하는 건물과 필드 오브젝트들은 쉐도우맵에 아무것도 기록하지 않는다. 기존 쉐도우맵 비교 방식이면 상관이 없는데 vsm의 경우는 체비셰프 부등식으로 그림자 색을 … More 그림자 개선중#2

그림자 개선중

전에는 셀프쉐도우를 사용하지 않았다. 처음에는 사용하려고 했으나 테스트를 해봐도 영 이쁘게 나오지 않았다. 기본적으로 만화풍 그래픽인데 셀프쉐도우를 써서 득될게 있나 싶어서 아예 사용하지 않았는데 요새 아이마스나 이런저런 카툰풍 게임들을 보면 셀프쉐도우가 깔끔하게 나오는것 같다. 셀프쉐도우를 쓰려면 쉐도우맵의 해상도 문제도 있고, 또 그림자의 계단현상도 해결해야하겠다는 생각이 들었다. 그냥 이 참에 그림자 코드 왕창 갈아엎기로 결정. 1. … More 그림자 개선중

DX11엔진 프로젝트 – DoF, Glow, Dynamic 라이트 등 완료

예전에 만들었던 DX9엔진의 기능은 거의 다 넣었다. 포스트 이펙트 처리하는 부분에서 2패스 렌더링을 싸그리 MRT기반의 1패스 렌더링으로 바꿨다. 다이나믹 라이트 처리도 2패스 렌더링이었던 것을 1패스 렌더링으로 바꿨다. 그렇다고 해서 속도가 기존 dx9엔진보다 빨라진 것은 아니다. 효율적으로 바뀐 부분도 있지만 기본적으로 DX11이 9보다 느려서 최종적으로는 DX9엔진보다 30%는 느리다. 어차피 DX11지원하는 하드웨어를 전제로 했으므로 glow와 dof에 들어가는 … More DX11엔진 프로젝트 – DoF, Glow, Dynamic 라이트 등 완료

dx11프로젝트 – 아웃라인 쉐이더 및 테셀레이션

아이폰 개발에 신경쓴다고 손놓고 있던 dx11 엔진 프로젝트를 다시 진행하고 있다. 역시 에일리언웨어 노트북의 그래픽카드를 GTX260M에서 GTX460M으로 바꾼게 크게 동기부여가 되었다. PC그래픽카드보다 비싼 43만원짜리 그래픽 카드를 꽂아줬으니 돈은 뽑아야… 집이 더워서 상당 부분 작업을 스타벅스에서 진행했다. 아 커피값이여… 화면 전체에 포스트 이펙트로 아웃라인을 먹이는 방법은 실제 상용 프로젝트에 적용하기엔 문제가 많다. 오브젝트별로 아웃라인을 사용하지 않을지 … More dx11프로젝트 – 아웃라인 쉐이더 및 테셀레이션

첫 아이폰 어플을 앱스토어에 등록했습니다.

아이폰 프로그래밍 학습겸 개인적인 필요에 의해서 만든 어플을 앱스토어에 등록했습니다. 몇 년전 아이팟을 처음 구입했을 당시 DSLR로 촬영한 1000만화소 이상의 이미지를 아이팟에서 리뷰하고 싶었는데 불가능하더군요. 아이튠즈의 사진 동기화는 화질을 엄청나게 떨어뜨리면서 리사이즈를 해버렸습니다. 유료 이미지뷰어 몇 개를 구입했으나 99.99%의 앱이 리사이즈된 이미지를 보여주더군요. Good Reader 한 개만 1:1픽셀 매칭을 해줬는데 그것도 어느 정도 크기를 넘어가면 … More 첫 아이폰 어플을 앱스토어에 등록했습니다.

Mac OS X와 XCODE를 사용하면서 느낀점.

요새 Mac OS X와 XCODE를 붙잡고 씨름하면서 많은 생각을 한다. 맥빠들이 보기에 XCODE가 Visual Studio보다 아름다워보이긴 할텐데… Visual Studio와 XCODE의 성능과 안정성을 비교한다면 뭐…말할 필요도 없고. 단적으로 변수 내용 확인하려고 gdb콘솔을 불나게 두들겨야되는게 난 이해가 안된다. 97년도에도 난 변수 내용 확인하자고 콘솔창을 두들기진 않았다고. Visual Studio가 편하다고 생각해본 적이 없는데 XCODE쓰면서 처음으로 VS가 무척 편리한 … More Mac OS X와 XCODE를 사용하면서 느낀점.

아이폰 프로그래밍 첫 연습작

맥 추종자들이 보면 열폭하겠지만 이건 확실히 해두고 싶다. 빌어먹을 Mac Os X 빌어먹을  X Cdoe 빌어먹을 Objective C 빌어먹을 COCOA프레임웍 ‘쓰.레.기.같.아’ 하여간. 예전부터 불만이 많았는데 아이폰에는 제대로된 이미지뷰어가 거의 없다. 코코아터치에서 지원해주는 컴포넌트만 사용하니 빅사이즈 이미지를 제대로 보여주지 못한다. 모바일에서 그런 큰 이미지를 뭐하러 보냐…라고 반문할수도 있겠지만 DSLR로 찍은 사진들 갖고 다니면서 보려면 리사이즈 하기도 짜증나고 … More 아이폰 프로그래밍 첫 연습작