kgc make stereo game on pc

130
PC에서 3D 입체 영상 게임 개발하기

Upload: ozlael-ozlael

Post on 24-May-2015

1.314 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: Kgc make stereo game on pc

PC에서

3D 입체 영상 게임

개발하기

Page 2: Kgc make stereo game on pc

OUTLINE

입체 영상의 개론

PC 게임의 적용

Page 3: Kgc make stereo game on pc

입체 영상 & 게임 전망

입체 영상 인식 및 구성 요소

디스플레이 기술

입체 영상의 개론

PC 게임의 적용

Page 4: Kgc make stereo game on pc

이미지 출처 : 아바타, 2009

Page 5: Kgc make stereo game on pc
Page 6: Kgc make stereo game on pc

자료 출처 : nVIDIA

500 입체 지원 PC 게임 수

Page 7: Kgc make stereo game on pc
Page 8: Kgc make stereo game on pc

이미지 출처 : 인터넷

Page 9: Kgc make stereo game on pc
Page 10: Kgc make stereo game on pc
Page 11: Kgc make stereo game on pc

이미지 출처 : 재미있는 레이더즈

Page 12: Kgc make stereo game on pc

님하 관심좀

Page 13: Kgc make stereo game on pc
Page 14: Kgc make stereo game on pc

몰입도

이미지 출처 : nVIDIA

Page 15: Kgc make stereo game on pc

깊이 정보

L

이미지 출처 : 신나는 건즈2

Page 16: Kgc make stereo game on pc

깊이 정보

R

이미지 출처 : 신나는 건즈2

Page 17: Kgc make stereo game on pc

물리적 제작 비용

Page 18: Kgc make stereo game on pc

입체 영상의 개론

PC 게임의 적용

입체 영상 & 게임 전망

입체 영상 인식 및 구성 요소

디스플레이 기술

Page 19: Kgc make stereo game on pc

입체시 Stereo vision “ ”

Page 20: Kgc make stereo game on pc

양안시차, 양안부등 binocular disparity

이미지 출처 : 재미있는 레이더즈

좌안 left-eye

영상

우안 right-eye

영상

Page 21: Kgc make stereo game on pc

안간 interocluar

이미지 출처 : 재미있는 레이더즈

6.5cm

Page 22: Kgc make stereo game on pc

Interaxial

이미지 출처 : flickr.com/themusicoflife/

Page 23: Kgc make stereo game on pc

이미지 출처 : flickr.com/themusicoflife/

Separation

= Interaxial / Screen Width

/

Page 24: Kgc make stereo game on pc

Separation

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 25: Kgc make stereo game on pc

Separation

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 26: Kgc make stereo game on pc

폭주, 수렴 convergence

이미지 출처 : 재미있는 레이더즈

Page 27: Kgc make stereo game on pc

Convergence

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 28: Kgc make stereo game on pc

Convergence

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 29: Kgc make stereo game on pc

Parallax

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 30: Kgc make stereo game on pc

Parallax

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 31: Kgc make stereo game on pc

Parallax

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 32: Kgc make stereo game on pc

Parallax

이미지 출처 : Fundamentals of Stereoscopic Imaging - Bernard Mendiburu

Page 33: Kgc make stereo game on pc

이미지 출처 : iz3d.com

Convergence Point

Positive

Negative

Page 34: Kgc make stereo game on pc

입체 영상의 개론

PC 게임의 적용

입체 영상 & 게임 전망

입체 영상 인식 및 구성 요소

디스플레이 기술

Page 35: Kgc make stereo game on pc

셔터 shutter

이미지 출처 : chulin28ho.egloos.com

Page 36: Kgc make stereo game on pc

R L

Page 37: Kgc make stereo game on pc

동영상 출처 : www.jonathanpost.com

Page 38: Kgc make stereo game on pc

편광 polarization

이미지 출처 : skyobserver.net

Page 39: Kgc make stereo game on pc
Page 40: Kgc make stereo game on pc

시차방벽 Parallax barrier

이미지 출처 : wikimedia

Page 41: Kgc make stereo game on pc

BREAK TIME

Page 42: Kgc make stereo game on pc

미들웨어 이용

입체 영상 생성 룰

포워드 방식 고려 사항

디퍼드 방식 고려 사항

한계 및 주의점

PC 게임의 적용

Page 43: Kgc make stereo game on pc

이미지 출처 : 3D world runner, nintendo

Page 44: Kgc make stereo game on pc

MIDDLEWARE MIDDLEWARE !

Page 45: Kgc make stereo game on pc
Page 46: Kgc make stereo game on pc

MIDDLEWARE

Page 47: Kgc make stereo game on pc

MIDDLEWARE

Page 48: Kgc make stereo game on pc

MIDDLEWARE

Page 49: Kgc make stereo game on pc
Page 50: Kgc make stereo game on pc

이미지 출처 : DX9 MultiAnimation 샘플

Page 51: Kgc make stereo game on pc

미들웨어 이용

입체 영상 생성 룰

특수 효과 고려 사항

디퍼드 방식 고려 사항

한계 및 주의점

PC 게임의 적용

Page 52: Kgc make stereo game on pc

DX Draw Call

Left Eye Right Eye

Middleware

Page 53: Kgc make stereo game on pc

이미지 출처 : nVIDIA

Page 54: Kgc make stereo game on pc

이미지 출처 : nVIDIA

Page 55: Kgc make stereo game on pc

Convergence * 10 : 깊이감 90%

10~100 : 9%

이미지 출처 : nVIDIA

Page 56: Kgc make stereo game on pc

Create RT

Create Left RT Create Right RT

Middleware

Page 57: Kgc make stereo game on pc

분리 대상

렌더타겟

Page 58: Kgc make stereo game on pc

비율

비 정사각형

크기

백버퍼 이상

Page 59: Kgc make stereo game on pc

그림자맵

이미지 출처 : nVIDIA

Page 60: Kgc make stereo game on pc

VS

vPosLight = mul( vPos, g_mViewToLightProj );

코드 출처 : DX9 Shadowmap 샘플

Page 61: Kgc make stereo game on pc

PS

… float2 ShadowTexC = 0.5 * vPosLight.xy / vPosLight.w + float2( 0.5, 0.5 ); … sourcevals[0] = (tex2D( g_samShadow, ShadowTexC ) + …

코드 출처 : DX9 Shadowmap 샘플

Page 62: Kgc make stereo game on pc

비율

비 정사각형

Page 63: Kgc make stereo game on pc

조건 없음

API 통해서만 제어 가능

Page 64: Kgc make stereo game on pc

분리 제외 : UI, HUD

스크린 깊이

Page 65: Kgc make stereo game on pc

W = 1

D3DFVF_XYZRHW

Page 66: Kgc make stereo game on pc

포인터

크로스헤어, 마우스커서, 케릭터명

Page 67: Kgc make stereo game on pc

UI예제스샷

L

Page 68: Kgc make stereo game on pc

UI예제스샷

R

Page 69: Kgc make stereo game on pc

레이져 사이트

미들웨어 자체 기능 제공

Page 70: Kgc make stereo game on pc

이미지 출처 : DX9 MultiAnimation 샘플

Page 71: Kgc make stereo game on pc
Page 72: Kgc make stereo game on pc

미들웨어 이용

입체 영상 생성 룰

특수 효과 고려 사항

디퍼드 방식 고려 사항

한계 및 주의점

PC 게임의 적용

Page 73: Kgc make stereo game on pc

Screen Position

Soft Particle

Distortion

Page 74: Kgc make stereo game on pc

WRONG

Page 75: Kgc make stereo game on pc

VS

World to Screen matrix

Screen Coord

PS

Page 76: Kgc make stereo game on pc

VS

vPosScreen = mul( vPos, g_mWorldToScreen );

코드 출처 : DX9 Shadowmap 샘플

Page 77: Kgc make stereo game on pc

PS

… float2 ScreenTexC = vPosScreen.xy / vPosScreen.w; float4 d = (tex2D(samShadow, ShadowTexC ) + …

Page 78: Kgc make stereo game on pc

VPOS

PS 3.0

Page 79: Kgc make stereo game on pc

CORRECT L

Page 80: Kgc make stereo game on pc

CORRECT R

Page 81: Kgc make stereo game on pc

미들웨어 이용

입체 영상 생성 룰

특수 효과 고려 사항

디퍼드 방식 고려 사항

한계 및 주의점

PC 게임의 적용

Page 82: Kgc make stereo game on pc

Unprojection problem

Deferred Shading

Post Processing

Screen Space

“ ”

Page 83: Kgc make stereo game on pc

View Projection Inverse Matrix Depth map

PS

Page 84: Kgc make stereo game on pc

//reconstruct original view-space pos … float4 position = mul(float4(x, y, z, 1.0/*w*/), InvViewProj); position.xyz = position.xyz / position.www; position.w = 1.0f;

코드 출처 : nVIDIA Deferred Shading 샘플

PS

Page 85: Kgc make stereo game on pc

WRONG L

Page 86: Kgc make stereo game on pc

WRONG R

Page 87: Kgc make stereo game on pc

VS

View to Light matrix

Position on Light

PS

이미지 출처 : nVIDIA

Page 88: Kgc make stereo game on pc

View to Light matrix

PS

MONO !=

STEREO

Page 89: Kgc make stereo game on pc

WRONG L

Page 90: Kgc make stereo game on pc

WRONG R

Page 91: Kgc make stereo game on pc

CORRECT L

Page 92: Kgc make stereo game on pc

CORRECT R

Page 93: Kgc make stereo game on pc

View Projection Inverse Matrix Depth map

PS Stereo Texture

[-]Separation

Convergence

Page 94: Kgc make stereo game on pc

NVAPI

http://developer.nvidia.com/nvapi

nvstereo.h

NVIDIA Graphics SDK 11에 포함

Page 95: Kgc make stereo game on pc

참고 샘플

NVIDIA SDK 11 3D Vision Sample http://developer.nvidia.com/nvidia-graphics-sdk-11-direct3d

Stereo Unprojection Sample http://developer.nvidia.com/3d-vision-and-surround-technology

Page 96: Kgc make stereo game on pc

… NvAPI_Status status = NvAPI_Initialize(); … NvAPI_Status status = NvAPI_Stereo_CreateHandleFromIUnknown (m_D3D9Device , &m_StereoHandle); …

초기화

Page 97: Kgc make stereo game on pc

nv::StereoParametersD3D9 m_StereoParamD3D9; … m_StereoParamD3D9.createGraphics (m_D3D9Device ); … m_StereoParamD3D9. makeStereoSideMap( m_D3D9Device ); …

초기화

Page 98: Kgc make stereo game on pc

… NvAPI_Stereo_GetConvergence(,,); NvAPI_Stereo_GetSeparation (,,); NvAPI_Stereo_GetEyeSeparation (,,); … m_StereoParamD3D9. getStereoParamMapTexture());

파라미터 취득

Page 99: Kgc make stereo game on pc

… float getStereoSide() { return tex2Dlod (g_StereoParamMap,

float4( 0,0,0,0)).x; } …

Shader

-1: 좌안 1: 우안

Page 100: Kgc make stereo game on pc
Page 101: Kgc make stereo game on pc
Page 102: Kgc make stereo game on pc

? 유지보수

Page 103: Kgc make stereo game on pc

양안 직접 렌더 Explicit 3D rendering

이미지 출처 : DirectX 11 Rendering in Battlefield 3, GDC2011

Page 104: Kgc make stereo game on pc

NVAPI NDA version

Page 105: Kgc make stereo game on pc

… NvAPI_Stereo_SetActiveEye (StereoHandle, NVAPI_STEREO_EYE_RIGHT); … mProj._31 += Separation; mProj._41 -= Separation*Convergence; … DPCall();

양안 지정 렌더

Page 106: Kgc make stereo game on pc

IZ3D API www.iz3d.com/api

Page 107: Kgc make stereo game on pc

IStereoAPI* g_StereoAPI; … D3D 디바이스 생성 … if (HMODULE hMod = LoadStereoLibrary()) { CreateStereoAPI( hMod, &g_StereoAPI ); }; …

초기화

Page 108: Kgc make stereo game on pc

… separation = pStereoAPI->GetSeparation(); convergence = pStereoAPI->GetConvergence();

파라미터 취득

Page 109: Kgc make stereo game on pc

pStereoAPI-> SetRenderTargetCreationMode( 0 ); … 좌안 타겟 생성; 우안 타겟 생성; … pStereoAPI-> SetRenderTargetCreationMode( 2 ); …

타겟 생성

무조건 모노

조건 스테레오

Page 110: Kgc make stereo game on pc

… pStereoAPI->BeginMonoBlock(); … leftRT와 rightRT에 직접 렌더 … pStereoAPI->EndMonoBlock(); …

렌더

Page 111: Kgc make stereo game on pc

… pStereoAPI->SetBltDstEye( 1 ); pD3DDevice-> StretchRect( rightRT,,pBackbuffer,,); … pStereoAPI->SetBltDstEye( 0 ); pD3DDevice-> StretchRect( leftRT,,pBackbuffer,,); …

렌더 타겟 복사

Page 112: Kgc make stereo game on pc

API

COMING SOON

Page 113: Kgc make stereo game on pc

DEMO

On

REALSPACE 3.0

Page 114: Kgc make stereo game on pc

미들웨어 이용

입체 영상 생성 룰

포워드 방식 고려 사항

특수 효과 고려 사항

한계 및 주의점

PC 게임의 적용

Page 115: Kgc make stereo game on pc

Fake 3D

범프맵 빌보드

Page 116: Kgc make stereo game on pc

Out of Screen

2D UI

VS

Page 117: Kgc make stereo game on pc

Performance

컴빨

Page 118: Kgc make stereo game on pc

휴먼팩터 Human Factor

적절한 기본 값

Page 119: Kgc make stereo game on pc

마무리

Page 120: Kgc make stereo game on pc

미국 3D콘텐츠 산업구조 분석과 진출방안 연구 - KOCCA 글로벌 주요국 3D 산업 현황과 진출방안 - Kotra 스마트TV의 등장에 따른 미디어산업 구조변화에 관한 연구 - kovaco 3DTV 3차원 입체 영상 정보처리 - 두양사 3D 입체 영상 표현의 기초 - 성안당 3D멀미 발생 메커니즘과 그 대책 - 게임비평 Fundamentals of Stereoscopic Imaging - Bernard Mendiburu Image Distortions in Stereoscopic Video Systems - Andrew Woods

레퍼런스(1/4)

Page 121: Kgc make stereo game on pc

A Beginner’s Guide to Shooting Stereoscopic 3D - Tim Dashwood The Past, Present, and Future of 3D Gaming - S3DGA The History of Stereoscopic 3D Gaming - Benj edwards Stereoscopic viewing - Jim Blanchard and Reiko Tsuneto NVIDIA 3D Vision Automatic Best Practices - nVIDIA Stereo Unprojection - nVIDIA SIGGRAPH Asia 2010: Stereoscopy, from XY to Z - nVIDIA

레퍼런스 (2/4)

Page 122: Kgc make stereo game on pc

GTC 2010: Implementing Stereoscopic 3D in Your Applications - nVIDIA The In and Out:Making Games Play Right with Stereoscopic 3D Technologies - nVIDIA 3D Stereoscopic Game Development: How to Make Your Game Look Like Beowulf 3D - nVIDIA Stereoscopic 3D Demystified: From Theory to Implementation in Starcraft2 - nVIDIA Practical 3D Vision in Games:Principle, Implementation and Optimization- nVIDIA Game Developers Guide for TriDef 3D - TriDef Guig's separation and convergence guide - iZ3D How to use Stereo API - iZ3D

레퍼런스 (3/4)

Page 123: Kgc make stereo game on pc

DirectX 11 Rendering in Battlefield 3, DICE Rendering in Cars 2, Disney/Pixar Making 3D Games on the Playstation 3, Sony Bringing stereo to consoles, Crytek The Past, Present, and future of 3D gaming, S3DGA

레퍼런스 (4/4)

Page 124: Kgc make stereo game on pc
Page 125: Kgc make stereo game on pc
Page 126: Kgc make stereo game on pc
Page 127: Kgc make stereo game on pc

WE RE

HIRING

Page 128: Kgc make stereo game on pc

Special Thanks

to

Page 129: Kgc make stereo game on pc

감사합니다~♪