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 아이폰 프로그래밍 첫 연습작

dx11프로젝트 – 테셀레이션(Curved PN Triangles)

만들어둔 모델을 가지고 부드럽게 보이려면 어떻게 해야되나..라고 생각해서 베지어함수를 쓰면 될까 했는데 삼각형 리스트로 만들어둔 모델에 적용하기는 무리. 샘 플을 찾아보니 Curved PN Triangles이라는 기법에 대한 샘플이 있다. pdf문서를 읽어봤는데 일단 제대로 이해하지는 못했다. 코드로 만들어놓고 고치다보면 이해가 되겠지…라는 생각으로 일단 코드만 뜯어서 dx11엔진에다 집어넣었다. 일단 효과는 확실한데 노말맵을 병행해야 그럴싸한 결과물을 얻을 수 있을것 … More dx11프로젝트 – 테셀레이션(Curved PN Triangles)

dx11프로젝트 – 테셀레이션

DX샘플을 참고해서 일단 테셀레이션 기능을 끼워넣었다. 컨트롤포인트를 다루는 방법이 상당히 여러가지 있을것 같은데 현재까지는 Normal Map과 Height Map을 이용해서 조정하는거 외엔 모르겠다. 캐릭터를 매끈하게 뽑고 싶다면 Normal Map,Height Map을 사용하는 것보다는 컨트롤 포인트에서 베지어함수를 쓸 수 있어야 할것 같은데 아직 방법을 모른다. 좀 더 연구해봐야지. 하여간 기본적인 구현은 했다.

dx11엔진 프로젝트 – 렌더타겟으로 그림자처리 & 툰쉐이딩(외곽선제외)

영 진도가 안나갔었는데 그래픽 카드를 바꾸고 나니 의욕이 좀 생겼다. 툰테이블 텍스쳐를 이용한 툰쉐이딩과 버텍스별 라이팅 처리를 끝냈다. 렌더텍스쳐 클래스도 제대로 구현해놨다. 렌더텍스쳐와 LiPSM을 이용해서 캐릭터 그림자를 구현했다. 이 와중에 갖가지 문제들을 해결하고 코드를 정리했다. 생각보다 오래 걸렸다. 렌더텍스쳐 코드를 완료한 시점에서 그림자 처리는 반나절이면 될거라고 생각했는데 사소한 문제들을 잡느라 결국 밤샜다. 기본 기능은 대충 … More dx11엔진 프로젝트 – 렌더타겟으로 그림자처리 & 툰쉐이딩(외곽선제외)

dx11 엔진 프로젝트 – 현재까지 진척상황

게임을 플레이하기 위한 기본 기능들은 대충 구현했다. 실시간 라이팅,그림자 처리는 전혀 되어있지 않다. 렌더타겟도 구현되어있지 않으므로 포스트이펙트는 물론 물효과 등도 전혀 사용할 수 없다. HW오클루젼 컬링도 구현되어있지 않아서 DX9버젼에 비해서 더 느리다. 하여간 게임을 돌릴 수 있는 정도의 프레임워크를 만들어놨다는걸로 일단 만족. 차차 개선시켜나가자. 위쪽이 DX9버젼, 아래가 DX11버젼. DX9 DX11

dx11 – 폰트와 스프라이트 처리

예전 d3d9 엔진에선 텍스쳐 캐싱을 이용해서 꽤 고속으로 폰트를 렌더링  했었다. D3DXFONT보다 10배쯤은 빨랐다. 감히 생각건데 남들보다 꽤 잘 만들었다고 생각한다. 나중에는 클리어타입폰트에 대한 처리,그림자기능,외곽선 기능까지 추가해서 요즘 시대에도 뒤지지 않게 만들었었다. 이걸 이번에 D3D11에서 구현하려니 문제가 있었다. 리소스로부터 읽기가 가능한 타입은 STAGING타입뿐이다. 그런데 STAGING타입은 쉐이더에 리소스로 지정할 수 없다. 뭐 된다고 해도 그런식으로 하면 속도가 … More dx11 – 폰트와 스프라이트 처리