SlideShare a Scribd company logo
1 of 166
DevRookie 조 진현( GOGN )
영원할 것 같았던~~ DX9 와의 시간은…
이제 끝났습니다…
Good bye~~ DX9! 이제 너랑 안놀아~~
어려운 걸로 준비했습니다! 오늘의 내용 DevRookie 199회 특집이라서…
주의 사항!!!
시간
시대
패러다임의 변화
DirectX…
DirectX 의 변화를 요구하다… 멀티 코어 GPU 발전
DirectX 10 그래서 등장했습니다!!!
DirectX11 API는…  DirectX 10.1 기반입니다!!
DirectX11 의 특징들 Dynamic Shader Linkage ,[object Object]
interface construct works on older profilesHardware Tessellation ,[object Object],HLSL Shader Model 5 ,[object Object]
Some new constructs emulated on older profilesMultithreaded Rendering & Resource Creation ,[object Object],DirectCompute ,[object Object]
CS 4.x on some DX10.x h/wBC6H/BC7 Texture Formats ,[object Object],[object Object]
변화의 흔적들
http://blog.naver.com/asesin/130072247615
DirectX9 싱글 코어 기반의 API API 중심의 파이프라인 처리
DirectX10 멀티 코어 기반의 API 하드웨어 중심의 파이 파이프라인 처리
더 이상 게임 목적이 아니다!!! 굴러온 돌 Win32 Application Win32 Application Win32 Application Future Graphics Components Direct3D API GDI Direct3D API User-Mode Driver HAL Device DXGI Device Driver Interface ( DDI ) Kernel-mode Driver.  Hardware Graphics Hardware
하드웨어가 변하기 시작!!!
우리가 하는 일은… API 를 통한 하드웨어 제어
하드웨어는 이미 변했다! Rasterizer Rasterizer Tessellator
시대는 점점… Multi-Thread Multi-Core Multi-GPU
DirectX 의 최신 트렌드는? 멀티 코어 활용 GPU 활용
DX API 변화
DX11 은 이를 더욱 향상!! DirectX10 API 디자인 목표 ,[object Object],☞ Device와 driver 간의 오버헤드 감소. ,[object Object],☞ 렌더링 작업의 여러 스레드들로 분산. ,[object Object],☞ 한번 기록한 커맨들의 재사용으로 인한 성능 향상.
CPU  처리 최적화! CPU 성능 개선 이슈 Debug Layer Draw Call Management Constant Updates Resource Updates State Management Shader Linkage Asynchronous Queries …
멀티 스레딩 지원 강화 Direct3D API 측면에서의 변화 ID3D11Device ID3D10Device ID3D11DeviceContext
thread-safe Core Interface 분류
ID3D11Asynchronous
ID3D11Resource
ID3D11View
이 모든 게 멀티스레딩을 위함! ID3D11DeviceChild 상속 ID3D11ClassInstance  ID3D11ClassLinkage ID3D11CommandList ID3D11RasterizerState ID3D11SamplerState ID3D11DepthStencilState ID3D11InputLayout ID3D11BlendState ,[object Object]
ID3D11DomainShader
ID3D11GeometryShader
ID3D11HullShader
ID3D11PixelShader
ID3D11VertexShader
…,[object Object]
사용가능한Device를 검색
 IDirect3DDevice9 를 생성
 Caps를 조회
리소스들을 생성( POOL ),[object Object]
 ID3DXGOPOutput 탐색
 ID3D10Device 생성( 스왑체인 생성 )
리소스 생성내 블로그에 관련 글 있다!
DX10부터는… Caps 소멸 Device-Lost 걱정 無
그렇다면, 리소스 관리 전략은 어떻게 구상해야 하나요?
리소스 관리 전략 리소스의 업데이트 CPU에서의 접근 권한
리소스 메모리 플래그
XNA Math
D3DX 9 Lib Xbox Math Lib D3DX 10 Lib
XNA Math Lib
XMVerifyCPUSupport() SSE/SSE2 VMX128
XNA Math 를 써야하는 이유 더 많은 inline 더 좋은 SIMD최적화 D3DXMath는 끝!
주의! 혼합해서 사용하지 말 것!
Tessellation
Adaptive vs Uniform
Texture 시대 Pixel 시대 Vertex 시대
텍스쳐의 힘?
Regularly drawn Froblin No tessellation used
FroblinClose-up:No tessellation
폴리곤을 늘리자!!! 어떻게 하면 더욱 정밀한 표현을  할 수 있나요?
High Detail Froblinwith Tessellation and Displacement Mapping
Froblin With Tessellation and Displacement Mapping Close-up
많은 폴리곤은 범죄!!! 왜 게임에서는 폴리곤갯수를  증가시키기 어려운가요?
또 다른 문제…
근본적으로 본 개수가 많음!!! 스키닝 연산의 최적화 각종 수치 데이터를 최대한 활용.  데이터 양을 줄이는 방법.  DX10의 경우에는 StreamOut기능 활용.
H/W 테셀레이션 님이 등장! 문제들… 그래픽 퀄리티의 향상 텍스쳐링의 한계 멀티패스 렌더링의 보편화 스키닝 부담
DX11 에서 채택! ATI의 노력  RADEON 8500 시리즈에서 시작.  X-Box 360 에서 도입.  ATI 제품군에 전면 도입.
패치란… ,[object Object]
제어점들에 의해 정의.
삼각형들은 패치들에 의해서 증가.
패치 단위로 LOD 가 연산.,[object Object]
카메라 기반 or 패치의 크기.
효과적인 렌더링 방법.,[object Object]
문제 발생의 경우
DX9  vs DX11 Tessellation Pipeline Input Assembler Vertex Shader Input Assembler HullShader Tessellator Tessellator Vertex Shader Domain Shader Memory / Resources Geometry Shader Stream Output Rasterizer Rasterizer Pixel Shader Pixel Shader Output Merger Output Merger
이미 존재했던 개념! DX9  Tessellation API ,[object Object]
IDirect3DDevice9::SetNPatchMode
ID3DXPMesh
Etc…,[object Object]
DX9 Adaptive Tessellation
DX9의 테셀레이션 문제점 ,[object Object]
별도의 메모리가 필요.,[object Object]
 LOD 판정.HullShader Tessellator Domain Shader Geometry Shader Rasterizer Pixel Shader Output Merger
Parallel~~~ DX11 Adaptive Tessellation Input Assembler Vertex Shader HullShader Tessellator Control Points(  ID 식별 ) Hull Shader Domain Shader Geometry Shader patch control points from the VS. Rasterizer Patch Constant Data ( Tessellation Factors 포함 ) Pixel Shader Output Merger
DX11 Adaptive Tessellation Input Assembler Vertex Shader HullShader BaryCentric Coordinate 생성 Tessellator Domain Shader Geometry Shader Stream Output Rasterizer Pixel Shader Output Merger
무게 중심 좌표(BaryCentric Coordinate ) C weight = Area of APB / Area of ABC
[domain("tri")] DS_OUTPUT DS(   HS_CONSTANT_DATA_OUTPUT input, float3 BarycentricCoordinates : SV_DomainLocation, const OutputPatch<HS_CONTROL_POINT_OUTPUT, 3> TrianglePatch ) { 	DS_OUTPUT output = (DS_OUTPUT)0; 	// Interpolate world space position with barycentric coordinates 	float3 vWorldPos = BarycentricCoordinates.x * TrianglePatch[0].vWorldPos +BarycentricCoordinates.y * TrianglePatch[1].vWorldPos + BarycentricCoordinates.z * TrianglePatch[2].vWorldPos;
Surface evaluation Displacement mapping DX11 Adaptive Tessellation Input Assembler Vertex Shader HullShader Tessellator Hull Shader Output Control Points Domain Shader Domain Shader Vertex Position Geometry Shader Stream Output Rasterizer Tessellator Stage  Output Texture Coordinates Pixel Shader Output Merger
H/W Tessellation 의 이점은 ? GPU 의 프로세싱 능력 활용! ( 1PASS ) 메모리 절약! 대역폭 감소! 렌더링퀄리티 향상 성능의 향상
DX11을 활용할 만큼 GPU가 빠른가요?
Rasterizer Geometry Unit( with Tessellator )
NT = 411 × NL
의심하지 말라~~ 테셀레이션은 성능 향상이 목적!!!
옛날 그래픽 카드들에서 DX11 실행이 가능한가요?
DX9  DX11 로 업그레이드 하고 싶어요! 오래 걸리나요?
어렵다!!! DX9  DX11 DX9  DX10 으로 포팅하라!  모든 파이프라인 사용 방법 수정  스테이트 오브젝트 사용할 것.  InputLayout으로 쉐이더 연결할 것.  상수 버퍼 사용할 것.   etc..
테셀레이션은렌더링 목적! 테셀레이션 처리된 메시의 경우 충돌체크를 어찌해야 하나요?
테셀레이션 처리된 메시의인스턴싱 처리는어떻게 해야 하나요?
다시 소프트웨어 렌더링 시대로 회귀할 것이다!!
cbuffercbPerFrame : register( b0 ) {     matrix g_mViewProjection;     float  g_fTessellationFactor; }; struct VS_CONTROL_POINT_INPUT {     float3 vPosition        : POSITION; }; struct VS_CONTROL_POINT_OUTPUT {     float3 vPosition        : POSITION; };
VS_CONTROL_POINT_OUTPUT VS( VS_CONTROL_POINT_INPUT Input ) {     VS_CONTROL_POINT_OUTPUT Output; Output.vPosition = Input.vPosition;     return Output; }
struct HS_CONSTANT_DATA_OUTPUT {     float Edges[3]             : SV_TessFactor;     float Inside            : SV_InsideTessFactor; }; struct HS_OUTPUT {     float3 vPosition           : POSITION; };
HS_CONSTANT_DATA_OUTPUT ConstantHS( InputPatch<VS_CONTROL_POINT_OUTPUT, 3> ip, uintPatchID : SV_PrimitiveID ) {         HS_CONSTANT_DATA_OUTPUT Output; Output.Edges[0] = Output.Edges[1]  		        = Output.Edges[2]                           = g_fTessellationFactor; Output.Inside = g_fTessellationFactor;     return Output; }
[domain("tri")] [partitioning(HS_PARTITION)] [outputtopology("triangle_cw")] [outputcontrolpoints(3)] [patchconstantfunc("ConstantHS")] HS_OUTPUT HS( InputPatch<VS_CONTROL_POINT_OUTPUT, 3> p,  uinti : SV_OutputControlPointID, uintPatchID : SV_PrimitiveID ) {     HS_OUTPUT Output; Output.vPosition = p[i].vPosition;     return Output; }
struct DS_OUTPUT {     float4 vPosition        : SV_POSITION; }; [domain("tri")] DS_OUTPUT DS( HS_CONSTANT_DATA_OUTPUT input,                      float3 UVW : SV_DomainLocation,                     const OutputPatch<HS_OUTPUT, 3> patched ) {     DS_OUTPUT Output; float3 finalPos = UVW.x * patched[0].vPosition +  UVW.y * patched [1].vPosition +  UVW.z * patched [2].vPosition; Output.vPosition = mul( float4(finalPos,1), g_mViewProjection );     return Output;     }
Displacementmapping
Multi-ThreadedRendering
Deferred Cotext!!! 멀티 스레드 기반으로  렌더링 작업을 할 수 있나요?
과거 세대의 렌더링
DX11의 렌더링
DX11의 렌더링
Multi-Threaded Rendering  ID3D11Device Immediate Context ID3D11DeviceContext Deferred Context free thread Rendering Command
DX11의 렌더링 Immediate Context Deferred Context
이전 세대의 렌더링
이전 세대의 렌더링
이전 세대의 렌더링
이전 세대의 렌더링
이전 세대의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
DX11의 렌더링
ID3D11CommandList intm_iRenderThreadCount; HANDLE*    			m_pDefferredThreadHandleArray; HANDLE*    			m_pBeginDeferredEventHandleArray; HANDLE*    			m_pEndDeferredEventHandleArray; ID3D11DeviceContext**     	m_ippDeferredContextArray; ID3D11CommandList**      	m_ippCommandListArray
CreateDeferredContext ID3D11DeviceContext* ipResultPointer = 0x00; for( inti = 0;    i < m_iRenderThreadCount;    ++i  ) { ipResultPointer = JinRenderUtil::CreateDeferredContext( this->m_ipGPU ); m_ippDeferredContextPointerArray[ i ] = ipResultPointer; m_pDeferredThreadHandleArray[ i ] = (HANDLE)_beginthreadex    (  NULL,0,  DeferredProcForRenderPerScene,  &i,         CREATE_SUSPENDED,  NULL ); ResumeThread( this->m_pDeferredThreadHandleArray[ i ] ); }
FinishCommandList for(;;) {     ::WaitForSingleObject( GetBeginDeferredEventHandle( iInstance ), INFINITE ); RenderSomething();     hr = ipDeferredContextPtr->FinishCommandList( FALSE, &ipCommandListPtr );     assert( hr ==  S_OK );     ::SetEvent( Jin3D::GetInstance()->GetEndDeferredEventHandle( iInstance ) ); }
ExecuteCommandList for(  inti = 0;	I < m_iThreadCount;    ++i;  ) { m_ipImmediateContext->ExecuteCommandList( m_ippCommandListArray[ I ], TRUE ); }
MTR 이란… 스레드들을 생성 ( 코어 개수만큼 ) 커맨드 생성( 각 스레드별) 렌더링( 메인 스레드) 커맨드 전송( To GPU )
DirectCompute
GPGPU ? DirectCompute ? ComputeShader ?
GPGPU General-Purpose computing on Graphics Processing Unit
DirectCompute GPGPU 를 위한 MS의 플랫폼
Applications Media playback or processing, media UI, recognition, etc.  Technical Domain Libraries Domain Languages Accelerator, Brook+, Rapidmind, Ct MKL, ACML, cuFFT, D3DX, etc. Compute Languages DirectCompute, CUDA,  CAL, OpenCL, LRB Native, etc. Processors CPU, GPU, Larrabee nVidia, Intel, AMD, S3, etc.
ComputeShader DirectCompute를 구현하기 위한 HLSL
공부할 게 늘었다!!!!
CPU vs GPU SIMD SIMD SIMD SIMD SIMD CPU 0 CPU 1 SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD CPU 2 CPU 3 SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD SIMD L2 Cache SIMD SIMD SIMD SIMD SIMD L2 Cache

More Related Content

What's hot

리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해필성 권
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2YEONG-CHEON YOU
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기Kiheon Park
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011devCAT Studio, NEXON
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발YEONG-CHEON YOU
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리YEONG-CHEON YOU
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기YEONG-CHEON YOU
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2Kyoung Seok(경석) Ko(고)
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5YEONG-CHEON YOU
 

What's hot (20)

리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5
 

Viewers also liked

게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환Yggdrasil610
 
3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교yoonhs306
 
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료MinGeun Park
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
Windows to reality getting the most out of direct3 d 10 graphics in your games
Windows to reality   getting the most out of direct3 d 10 graphics in your gamesWindows to reality   getting the most out of direct3 d 10 graphics in your games
Windows to reality getting the most out of direct3 d 10 graphics in your gameschangehee lee
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략MinGeun Park
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder우진 이
 
Dll파일 호출
Dll파일 호출Dll파일 호출
Dll파일 호출abapier
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터Mark Choi
 
Cocos2d x a to z (상)
Cocos2d x a to z (상)Cocos2d x a to z (상)
Cocos2d x a to z (상)SeungIl Choi
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정abapier
 
[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기Sun Park
 
게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출hongsungbock
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2진상 문
 
4.5부동소수점
4.5부동소수점4.5부동소수점
4.5부동소수점JaeHong Park
 
Silverlight vs flash
Silverlight vs flashSilverlight vs flash
Silverlight vs flash권 태혁
 
3D Engine (ICON 2007)
3D Engine (ICON 2007)3D Engine (ICON 2007)
3D Engine (ICON 2007)SeongWan Kim
 
GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체Mark Choi
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Thisisone Lee
 

Viewers also liked (20)

게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교3 d 그래픽 엔진 비교
3 d 그래픽 엔진 비교
 
[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료[NHN_NEXT] DirectX Tutorial 강의 자료
[NHN_NEXT] DirectX Tutorial 강의 자료
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
Windows to reality getting the most out of direct3 d 10 graphics in your games
Windows to reality   getting the most out of direct3 d 10 graphics in your gamesWindows to reality   getting the most out of direct3 d 10 graphics in your games
Windows to reality getting the most out of direct3 d 10 graphics in your games
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder
 
Dll파일 호출
Dll파일 호출Dll파일 호출
Dll파일 호출
 
GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터GameMath-Chapter 01 벡터
GameMath-Chapter 01 벡터
 
Cocos2d x a to z (상)
Cocos2d x a to z (상)Cocos2d x a to z (상)
Cocos2d x a to z (상)
 
Dom 생성과정
Dom 생성과정Dom 생성과정
Dom 생성과정
 
[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기[NDC14] 파워포인트로 그래픽 리소스 만들기
[NDC14] 파워포인트로 그래픽 리소스 만들기
 
게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출게임 개발자로서의 가치 창출
게임 개발자로서의 가치 창출
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2
 
4.5부동소수점
4.5부동소수점4.5부동소수점
4.5부동소수점
 
Silverlight vs flash
Silverlight vs flashSilverlight vs flash
Silverlight vs flash
 
투영 공식
투영 공식투영 공식
투영 공식
 
3D Engine (ICON 2007)
3D Engine (ICON 2007)3D Engine (ICON 2007)
3D Engine (ICON 2007)
 
GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체GameMath-Chapter 13 발사체
GameMath-Chapter 13 발사체
 
Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2Chapter 2, 선형 변환과 행렬 1/2
Chapter 2, 선형 변환과 행렬 1/2
 

Similar to [0312 조진현] good bye dx9

NDC11_김성익_슈퍼클래스
NDC11_김성익_슈퍼클래스NDC11_김성익_슈퍼클래스
NDC11_김성익_슈퍼클래스Sungik Kim
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스noerror
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blogozlael ozlael
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01SangYun Yi
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013Esun Kim
 
DEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxDEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxhanbeom Park
 
Deview 2019 눈발자국
Deview 2019 눈발자국Deview 2019 눈발자국
Deview 2019 눈발자국hanbeom Park
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shadingMinGeun Park
 
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기zupet
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 명신 김
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012Esun Kim
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)Sang Don Kim
 
Windows Debugging Technique #2
Windows Debugging Technique #2Windows Debugging Technique #2
Windows Debugging Technique #2Wooseok Seo
 
Flash Player 11과 AIR 3 환경에서 3D 개발
Flash Player 11과 AIR 3 환경에서 3D 개발Flash Player 11과 AIR 3 환경에서 3D 개발
Flash Player 11과 AIR 3 환경에서 3D 개발Yongho Ji
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문Jin Woo Lee
 

Similar to [0312 조진현] good bye dx9 (20)

NDC11_김성익_슈퍼클래스
NDC11_김성익_슈퍼클래스NDC11_김성익_슈퍼클래스
NDC11_김성익_슈퍼클래스
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blog
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01Unity Surface Shader for Artist 01
Unity Surface Shader for Artist 01
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
 
CDVS/CDVA
CDVS/CDVACDVS/CDVA
CDVS/CDVA
 
DEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxDEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptx
 
Deview 2019 눈발자국
Deview 2019 눈발자국Deview 2019 눈발자국
Deview 2019 눈발자국
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
 
Windows Debugging Technique #2
Windows Debugging Technique #2Windows Debugging Technique #2
Windows Debugging Technique #2
 
Flash Player 11과 AIR 3 환경에서 3D 개발
Flash Player 11과 AIR 3 환경에서 3D 개발Flash Player 11과 AIR 3 환경에서 3D 개발
Flash Player 11과 AIR 3 환경에서 3D 개발
 
Direct x 11 입문
Direct x 11 입문Direct x 11 입문
Direct x 11 입문
 

More from 진현 조

[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp진현 조
 
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로진현 조
 
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑진현 조
 
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑진현 조
 
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈 [Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈 진현 조
 
[0319 조진현] 뇌를 자극하는 드라마 & 책
[0319 조진현] 뇌를 자극하는 드라마 & 책[0319 조진현] 뇌를 자극하는 드라마 & 책
[0319 조진현] 뇌를 자극하는 드라마 & 책진현 조
 
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정진현 조
 
[1218 조진현] 폐차쿠챠 특집 행복한-게임개발자_되기
[1218 조진현] 폐차쿠챠 특집   행복한-게임개발자_되기[1218 조진현] 폐차쿠챠 특집   행복한-게임개발자_되기
[1218 조진현] 폐차쿠챠 특집 행복한-게임개발자_되기진현 조
 
[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러진현 조
 
[1211 조진현][gpg1]플로킹
[1211 조진현][gpg1]플로킹[1211 조진현][gpg1]플로킹
[1211 조진현][gpg1]플로킹진현 조
 
[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )진현 조
 
[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개진현 조
 

More from 진현 조 (12)

[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
 
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
 
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
 
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
 
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈 [Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
 
[0319 조진현] 뇌를 자극하는 드라마 & 책
[0319 조진현] 뇌를 자극하는 드라마 & 책[0319 조진현] 뇌를 자극하는 드라마 & 책
[0319 조진현] 뇌를 자극하는 드라마 & 책
 
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
 
[1218 조진현] 폐차쿠챠 특집 행복한-게임개발자_되기
[1218 조진현] 폐차쿠챠 특집   행복한-게임개발자_되기[1218 조진현] 폐차쿠챠 특집   행복한-게임개발자_되기
[1218 조진현] 폐차쿠챠 특집 행복한-게임개발자_되기
 
[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러[0108 조진현]출발 소프트웨어 렌더러
[0108 조진현]출발 소프트웨어 렌더러
 
[1211 조진현][gpg1]플로킹
[1211 조진현][gpg1]플로킹[1211 조진현][gpg1]플로킹
[1211 조진현][gpg1]플로킹
 
[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )
 
[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개
 

[0312 조진현] good bye dx9