1. Path Tracing
4학년 1학기 시스템 프로그래밍 과제로 병렬처리에 대해 발표하면서
만든 Path Tracing 기반 Raytracer 입니다.
 
kd-tree를 사용, 공간을 분할 해 빠른 Ray-Hit가 이루어질 수 있도록 했습니다.
 
 
 
발표자료
실행파일
 
키조작
A, D : 회전
좌우 화살표 : 애니메이션 프레임 이동
스페이스바 : 렌더링 시작
 
renderSetting.set 파일을 메모장으로 열어 환경설정을 수정할 수 있습니다.
sampleCnts : 샘플 개수
bucketSize : 한 스레드가 담당하는 영역크기
threadCnts : 스레드 개수
 
 
 
2. Deferred Renderer
Deferred Rendering을 구현한 과정입니다.
 
2.1. Light-Pre Pass Renderer
Normal과 Depth 값만 G-Buffer에 넣고 조명 처리를 한 다음
다시 한번 객체를 Draw해서 재질을 렌더링하는 2단계를 거치는 변형된 Deferred Renderer 입니다. 
 
 
normal
 
depth
 
diffuse
 
specular
 
final
 
 
2.2. Deferred Renderer 
Light-Pre Pass의 렌더러의 경우 2번의 Draw Call과 색상있는 Specular를 나타내기 위해서는 2개의 HDR 포맷의 Render Target이 필요해 Light-Pre Pass 방식을 버리고, 일반적인 Deferred Renderer로 작업했습니다. 
 
G-Buffer 구성은 아래와 같습니다. 
 
MRT0 : Albedo(RGB), Specular(A)
MRT1 : Normal(RGB)
MRT2 : Depth(R32F)
MRT3 : Global Lighting(LogLUV)
 
 
모두 32비트이고 마지막 렌더 타겟은 Ambient, Directional Light,, Emissive, 환경반사 등을 처리하기 위한 버퍼로 32bit LogLUV로 인코딩합니다. 
 
그림자의 경우 4단계 PSSM으로 처리했습니다. 
SSE 명령어를 사용해서 CPU 스키닝을 최적화시켰습니다.
Bullet 물리 엔진을 사용해서 조명상자가 물리 기반 애니메이션이 됩니다.
텍스쳐 크기를 최소화 시키기 위해 DXT 포맷의 dds 파일을 사용했습니다.
노말맵의 경우 G값에 X, A값에 Y값을 넣고 Z 값은 쉐이더에서 구하는 방식을 사용했습니다.
뒷배경의 원포맷은 RGBE 포맷인데 DXT5로 압축해서 사용했습니다.
 
DOF : OFF
 
DOF : ON
 
개발 & 테스트환경
Visual Studio .Net 2008
DirectX 9.0c
Windows XP
Geforce 9800 GTX
 
실행파일 
 
 
 d3dx9_41.dll을 요구합니다. 필요하실 경우 다운받으세요.
D3DX9_41.dll
다운로드
 
 
키조작
W, A, S, D : 이동
마우스 이동 : 회전
마우스 왼쪽 버튼 : 조명상자 생성
마우스 오른쪽 버튼 : 조명상자 삭제
'1' : Bloom On/Off
'2' : SSAO On/Off
'3' : Depth of Field On/Off
'4' : Draw Aabb On/Off
'+' : 노출 증가
'-' : 노출 감소
'T' : Focus 거리 증가
'G' : Focus 거리 감소
'Y' : Blur 시작거리 증가
'H': Blur 시작거리 감소
'U' : Blur 최대거리 증가
'J' : Blur 최대거리 감소
 
샘플소스(엔진헤더파일)
영상
 
Posted by hwixlab
,

d3dx9_41.dll 을 필요로 할 수 있습니다.

D3DX9_41.dll
다운로드

 


1. Software Rasterizer 좀 더 향상된 소프트웨어 래스터라이저 입니다.  VertexShader, PixelShader를 클래스로 만들어서 Shader 효과가 나오도록 했습니다.

2. Rigid Body Simulation 강체 물리 시뮬레이션을 이해하기 위해 Bullet, JigLib를 참고해서 제작한 물리 시뮬레이션 어플리케이션입니다. 

rigidBody.exe
다운로드

3. Cloth Simulation Verlet Integration을 이용한 Cloth Simulation 입니다. W, A, S, D키로 옷감을 움직일 수 있습니다.

VerletIntegration.exe
다운로드

4. LightMap Raytracing, Radiosity를 이용한 LightMap 생성 어플리케이션입니다. 

실행파일

lightmap.rar
다운로드

키조작 화살표 : 회전 스페이스바 : 라이트맵 생성을 시작하고 완료되면 적용합니다. 약 10분정도 걸립니다.

5. Photon Mapping Realistic Image Synthesis Using Photon Mapping 책을 보고 만들어본 포톤맵핑입니다.

PhotonMapping_Sample32.exe
다운로드

실행하면 곧바로 렌더링을 시작합니다.

Posted by hwixlab
,
모바일용 3D 게임을 제작한 프로젝트들입니다.
모든 프로젝트에서 메인 프로그래머, 3D 엔진 프로그래머를 맡았습니다. 

1. G2 Racer
총 3대의 차량과 레이싱 경주를 하는 게임입니다.
에뮬레이터가 제대로 동작하지 않은 관계로 테스트 기판에서 그대로 촬영한 화면입니다. 


2. 아차카차 레이싱
총 4인과 네트워크 레이싱을 펼치는 게임입니다.

C#과 DirectX를 이용한 자체 트랙 제작 툴입니다.

3. 파타타 레이싱
아차카차 레이싱을 기반으로 향상된 트랙, 렌더링, 물리, AI를 구현했습니다.
일본 GALA사와 계약하여 제작된 게임입니다.

좀 더 향상된 트랙 제작 툴입니다.

4. MSM7k
윈도우 개발과 모바일 개발 동시에 개발이 가능하게 만든 엔진입니다. 
렌더링 기능을 향상시키고 강체 물리가 들어갔습니다.

5. OpenGLES2 기반 포팅작업 
G2 Racer와 액션 게임 LegendES를 OpenGL ES2.0 기반으로 포팅한 프로젝트입니다.
Legend ES의 예전 스크린샷을 첨부합니다.


6. 그외 툴작업
다른 팀의 툴 프로그래머로 참여한 프로젝트 입니다.

- 세계대전 초기 맵툴

- 크로스 워드 제작 툴


Posted by hwixlab
,