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

Kgc make stereo game on pc

May 24, 2015

Download

Technology

ozlael ozlael
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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

감사합니다~♪