SlideShare a Scribd company logo
1 of 133
Download to read offline
차세대 2D 그래픽스 라이브러리

Direct2D
         VS 2010 공식 팀블로그
         (http://vsts2010.net)

         2011.06.02
         박민근
Direct2D란?
 Windows7을 위한 새로운 2D 그래픽스 API

 GDI,GDI+를 대체하는 차세대 그래픽스 API
High Performance




    하드웨어 가속 지원 (immedate-mode)
High Quality




          Per-Primitive Antialiasing
          ClearType Text
GDI vs Direct2D
   http://zoome.jp/pcuser/diary/14
Direct 2D & Direct3D

  http://www.youtube.com/watch?v=-
  879yxtHLRI
가능한 것들



 2D 도형들 (Line, 도형, Curve등)
 비트맵(거의 모든 포맷,JPG,PNG등)
 텍스트 (텍스트 변형, 회전)
기존 API와 상호 운영 가능

          GDI, GDI+
          Direct3D
          MFC 호환
          (VS 2010 SP1)
Direct2D 아키텍쳐 레이어
Native Code 기반

C, C++에서 사용이 기본

Windows API Pack for .NET Framework를
이용하면 .NET에서도 사용은 가능
사용 대상
    대규모 Native 어플리케이션 개발자



    컨트롤 툴킷 및 라이브러리 개발자


    Server-Side 2D 그래픽 렌더링이 필요한 개발
    자

    Direct3D를 사용하면서, 간단하고 고성능의 2D
    도형과 텍스트를 이용한 메뉴나 UI, HUD등을 개
    발하는 개발자
요구 사항

  Windows SDK에 포함되어 있음

  윈도우 7, 윈도우 비스타 SP2 이상

  DirectX 10.1 이상
게임 개발시
2D 그래픽 라이브러리의
     필요성
각종 게임 개발툴

            컷신 연출툴

            마테리얼 개발툴

            퀘스트 툴
그럼 기존에는?
GDI, GDI+ 사용

구현이 간단함

2D 그래픽이 필요한 툴에서만 사용 가능하다

하드웨어 가속이 지원되지 않는다

게임에서는 사용 불가능하다 – Direct3D와 연동이 안됨
Direct3D 사용

  그래픽 속도가 필요한 경우

  배보다 배꼽이 더크다
WPF(Windows Presentation
Foundation) 사용

     하드웨어 가속 지원

     구현이 상당히 편하고, 간단하다

     하지만, .NET 전용

     게임(C++)에서는 당연히 사용 불가
그래서… Direct2D는?
하드웨어 가속 지원

AntiAliasing 지원 – 예쁘게 나온다

Direct3D와 같이 사용 가능

게임내에서도 사용 가능
사용하기 위한 코드가 간단하다


- Direct3D 보다는 간결함
- GDI보다는 조금 복잡함

기능이 많지 않으며, 간단해서 쉽게 익힐 수 있음
이미 IE9,   Firefox, 크롬에서는 사용중
하드웨어 가속 웹 렌더링에서 사용 (HTML5)
게임 UI 라이브러리로 사용하는 건 무리



       요구 사항
       Window7 이상
       DirectX 10.1 이상
게임 개발 툴에서 활용 가능성

2D 그래픽으로만 이루어진 개발툴이 의외로 많다
- 이걸 위해서 Direct3D를 사용하는 건 무리

2D 도형을 이용한 개발툴의 기능이 필요하다
샘플 프로젝트에서 활용




      시각화 샘플 프로젝트
      알고리즘 시각화 프로젝트
      간단한 2D 게임 만들기
Direct2D 시작하기
Illustration of two rectangles on a grid background
1. 헤더 파일 추가
2. 관련 객체 변수 선언
2. Direct2D Factory 생성
3. 렌더타겟 생성
4. 컬러 브러쉬 생성
4. 렌더 타겟 준비
5. 배경 그리드 렌더링
6. 사각형 렌더링
7. 렌더타겟 완료
VS 2010 SP1에는
MFC에 다 통합되어 있다!!

위 작업들 할 필요 없음!
http://msdn.microsoft.com/ko-kr/library/gg482848.aspx
Direct2D의 여러 기능들
Advanced Path Geometries Example




         Illustration of a river, mountains, and the sun

           http://msdn.microsoft.com/en-
           us/library/ee461072(v=VS.85).aspx
Illustration of several simple and path geometries




        Geometries Example




                                         Illustration of several simple and path
                                         geometries


                                         http://msdn.microsoft.com/en-
                                         us/library/ee329938(v=VS.85).aspx
Brush Types Example




     Illustration of solid color brush, linear gradient brush,
     radial gradient brush, and bitmap brush
           http://msdn.microsoft.com/en-
           us/library/dd799414(v=VS.85).aspx
Clip with Axis Aligned Rectangle Example




    Illustration of a goldfish and a clipped region of the goldfish



              http://msdn.microsoft.com/en-
              us/library/dd756624(v=VS.85).aspx
Clip with a Bitmap Mask Example




Illustration of a goldfish and a clipped region of the goldfish by using a
bitmap mask



                   http://msdn.microsoft.com/en-
                   us/library/dd756625(v=VS.85).aspx
Clip with Layers Example




Illustration of a goldfish and a clipped region of the goldfish by using layers

                    http://msdn.microsoft.com/en-
                    us/library/dd756626(v=VS.85).aspx
Combine Geometries Example




  Illustration of two geometries and the resulting geometry after various
  combination operations

                http://msdn.microsoft.com/en-
                us/library/dd370923(v=VS.85).aspx
Create Geometry Groups Example




    Illustration of composite geometry groups with the two fill modes

               http://msdn.microsoft.com/en-
               us/library/dd756627(v=VS.85).aspx
Draw Bitmap With Extend Mode Example




         Illustration of various effects of extend mode
          http://msdn.microsoft.com/en-
          us/library/dd940315(v=VS.85).aspx
Layers with Parameters Example
                 Illustrations of three bitmaps and the
                 resulting images after content bounds,
                 opacity masks, or geometric masks are
                 applied to them




                http://msdn.microsoft.com/en-
                us/library/ee329942(v=VS.85).aspx
Multiple Transforms Example




Diagram of a square being rotated and then translated




                http://msdn.microsoft.com/en-
                us/library/dd799446(v=VS.85).aspx
Opacity Masks Example




                                          http://msdn.microsoft.com/en
                                          -
                                          us/library/dd372307(v=VS.85)
                                          .aspx
Illustration of three bitmaps with
different opacity masks applied to them
Stroke Style Example




                                                     http://msdn.microsoft.com/en-
                                                     us/library/dd317107(v=VS.85).asp
                                                     x
Illustration of line join styles (miter line join, round line join, bevel line join,
and miter or bevel line join)
Direct2D & Direct3D
    같이 사용하기
Direct3D 10.1 버전 이상부터 Direct2D와 같이 사용이 가능하다




 • 2D 화면을 3D 화면의 백그라운드 이미지로 사용하거나

 • 2D 화면을 3D 오브젝트의 텍스쳐로 사용하거나

 • 2D 텍스트를 3D 화면에 표시하거나

 • 2D 오브젝트로 3D 게임의 UI로 사용하거나
DXGI를 통해서 서로 사용이 가능하다


• IDXGISurface, ID2D1RenderTarget 을 이용하여
  Direct2D 컨텐츠를 Direct3D 서페이스에 Direct2D
  컨텐츠를 렌더링할 수 있다.

• IDXGISurface에서 CreateShaderBitmap을 사용하
  여 ID2D1Bitmap을 생성하여, Direct3D의 씬을 거
  기에 Direct2D로 렌더링 할 수 있다.
자세한 내용은 DX10.1 이상의 아키텍쳐를 이해해
고 있어야 하기 때문에, 생략….

MSDN에 자세한 설명과, 샘플 코드가 있습니다.



   Direct2D and Direct3D Interoperability
   Overview
GDI, GDI+를 대체하는
최신의 2D 그래픽스 라이브러리
C++로 만들어야 하는 게임 개발툴에서 유용할 듯

- 셰이더 에디터, 마테리얼 에디터, 컷신 연출툴
2D 프로토 타입 or
2D 게임 개발시 유용할 듯
상용 게임의 UI에 적용하는 것은 무리

- 요구 사항 제한
참고 자료

MSDN Direct 2D

PDC 2008 - Introducing Direct2D

PDC 2008 - Improving Direct2D
Direct2D란?
 Windows7을 위한 새로운 2D 그래픽스 API

 GDI,GDI+를 대체하는 차세대 그래픽스 API
High Performance



    하드웨어 가속 지원 (immedate-mode)
High Quality




          Per-Primitive Antialiasing
          ClearType Text
GDI vs Direct2D
   http://zoome.jp/pcuser/diary/14
Direct 2D & Direct3D

  http://www.youtube.com/watch?v=-
  879yxtHLRI
가능한 것들



  2D 도형들 (Line, 도형, Curve등)
  비트맵
  텍스트 (텍스트 변형, 회전)
기존 API와 상호 운영 가능

          GDI, GDI+
          Direct3D
Direct2D 아키텍쳐 레이어
Native Code 기반



  C, C++에서 사용이 기본

  Windows API Pack for .NET Framework를 이용하면
  NET에서도 사용은 가능
사용 대상
    대규모 Native 어플리케이션 개발자



    컨트롤 툴킷 및 라이브러리 개발자


    Server-Side 2D 그래픽 렌더링이 필요한 개발
    자

    Direct3D를 사용하면서, 간단하고 고성능의 2D
    도형과 텍스트를 이용한 메뉴나 UI, HUD등을
    개발하는 개발자
요구 사항



    Windows SDK에 포함되어 있음

    윈도우 7, 윈도우 비스타 SP2 이상

    DirectX 10.1 이상
게임 개발시
2D 그래픽 라이브러리의
     필요성
각종 게임 개발툴

            컷신 연출툴

            마테리얼 개발툴

            퀘스트 툴
게임 UI, HUD
그럼 기존에는?
GDI, GDI+ 사용


 구현이 간단함

 2D 그래픽이 필요한 툴에서만 사용 가능하다

 하드웨어 가속이 지원되지 않는다

 게임에서는 사용 불가능하다 – Direct3D와 연동이 안됨
Direct3D 사용



     그래픽 속도가 필요한 경우

     배보다 배꼽이 더크다
WPF(Windows Presentation Foundation)
사용



           하드웨어 가속 지원

           구현이 상당히 편하고, 간단하다

           하지만, .NET 전용

           게임에서는 당연히 사용 불가
그래서… Direct2D는?
하드웨어 가속 지원


   AntiAliasing 지원 – 예쁘게 나온

   다

   Direct3D와 같이 사용 가능

   게임내에서도 사용 가능
사용하기 위한 코드가 간단하다



 - Direct3D 보다는 간결함
 - GDI보다는 조금 복잡함

 기능이 많지 않으며, 간단해서 쉽게 익힐 수 있음
이미 IE9,   Firefox, 크롬에서는 사용중
하드웨어 가속 웹 렌더링에서 사용 (HTML5)
게임 UI 라이브러리로 사용하는 건 무리



       요구 사항
       Window7 이상
       DirectX 10.1 이상
게임 개발 툴에서 활용 가능성

2D 그래픽으로만 이루어진 개발툴이 의외로 많다
- 이걸 위해서 Direct3D를 사용하는 건 무리

2D 도형을 이용한 툴의 기능이 필요하다
샘플 프로젝트에서 활용




      스터디용 샘플 프로젝트
      알고리즘 시각화 프로젝트
      간단한 게임 만들기 - 해보리
Direct2D 시작하기
Illustration of two rectangles on a grid background
1. 헤더 파일 추가
2. 관련 객체 변수 선언
2. Direct2D Factory 생성
3. 렌더타겟 생성
4. 컬러 브러쉬 생성
4. 렌더 타겟 준비
5. 배경 그리드 렌더링
6. 사각형 렌더링
7. 렌더타겟 완료
Direct2D의 여러 기능들
Advanced Path Geometries Example




         Illustration of a river, mountains, and the sun

           http://msdn.microsoft.com/en-
           us/library/ee461072(v=VS.85).aspx
Illustration of several simple and path geometries




        Geometries Example




                                         Illustration of several simple and path
                                         geometries


                                         http://msdn.microsoft.com/en-
                                         us/library/ee329938(v=VS.85).aspx
Brush Types Example




     Illustration of solid color brush, linear gradient brush,
     radial gradient brush, and bitmap brush
           http://msdn.microsoft.com/en-
           us/library/dd799414(v=VS.85).aspx
Clip with Axis Aligned Rectangle Example




    Illustration of a goldfish and a clipped region of the goldfish



              http://msdn.microsoft.com/en-
              us/library/dd756624(v=VS.85).aspx
Clip with a Bitmap Mask Example




Illustration of a goldfish and a clipped region of the goldfish by using a
bitmap mask



                   http://msdn.microsoft.com/en-
                   us/library/dd756625(v=VS.85).aspx
Clip with Layers Example




Illustration of a goldfish and a clipped region of the goldfish by using layers

                    http://msdn.microsoft.com/en-
                    us/library/dd756626(v=VS.85).aspx
Combine Geometries Example




  Illustration of two geometries and the resulting geometry after various
  combination operations

                http://msdn.microsoft.com/en-
                us/library/dd370923(v=VS.85).aspx
Create Geometry Groups Example




    Illustration of composite geometry groups with the two fill modes

               http://msdn.microsoft.com/en-
               us/library/dd756627(v=VS.85).aspx
Draw Bitmap With Extend Mode Example




         Illustration of various effects of extend mode
          http://msdn.microsoft.com/en-
          us/library/dd940315(v=VS.85).aspx
Layers with Parameters Example
                 Illustrations of three bitmaps and the
                 resulting images after content bounds,
                 opacity masks, or geometric masks are
                 applied to them




                http://msdn.microsoft.com/en-
                us/library/ee329942(v=VS.85).aspx
Multiple Transforms Example




Diagram of a square being rotated and then translated




                http://msdn.microsoft.com/en-
                us/library/dd799446(v=VS.85).aspx
Opacity Masks Example




                                          http://msdn.microsoft.com/en
                                          -
                                          us/library/dd372307(v=VS.85)
                                          .aspx
Illustration of three bitmaps with
different opacity masks applied to them
Stroke Style Example




                                                     http://msdn.microsoft.com/en-
                                                     us/library/dd317107(v=VS.85).asp
                                                     x
Illustration of line join styles (miter line join, round line join, bevel line join,
and miter or bevel line join)
Direct2D & Direct3D
    같이 사용하기
Direct3D 10.1 버전 이상부터 Direct2D와 같이 사용이 가능하다




 • 2D 화면을 3D 화면의 백그라운드 이미지로 사용하거나

 • 2D 화면을 3D 오브젝트의 텍스쳐로 사용하거나

 • 2D 텍스트를 3D 화면에 표시하거나

 • 2D 오브젝트로 3D 게임의 UI로 사용하거나
DXGI를 통해서 서로 사용이 가능하다


• IDXGISurface, ID2D1RenderTarget 을 이용
  하여 Direct2D 컨텐츠를 Direct3D 서페이스
  에 Direct2D 컨텐츠를 렌더링할 수 있다.

• IDXGISurface에서 CreateShaderBitmap을
  사용하여 ID2D1Bitmap을 생성하여,
  Direct3D의 씬을 거기에 Direct2D로 렌더링
  할 수 있다.
자세한 내용은 DX10.1 이상의 아키텍쳐를 이해해
고 있어야 하기 때문에, 생략….

MSDN에 자세한 설명과, 샘플 코드가 있습니다.



   Direct2D and Direct3D Interoperability
   Overview
GDI, GDI+를 대체하는
최신의 2D 그래픽스 라이브러리
C++로 만들어야 하는 게임 개발툴에서 유용할 듯

- 셰이더 에디터, 마테리얼 에디터, 컷신 연출툴
2D 프로토 타입 or
2D 게임 개발시 유용할 듯
스터디의 샘플 프로젝트
제작시에도 유용할 듯
상용 게임의 UI에 적용하는 것은 무리
- 요구 사항 제한
참고 자료

MSDN Direct 2D

PDC 2008 - Introducing Direct2D

PDC 2008 - Improving Direct2D

More Related Content

What's hot

Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018devCAT Studio, NEXON
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)ssuserbe87d6
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술henjeon
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)MinGeun Park
 
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍Chris Ohk
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011devCAT Studio, NEXON
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 

What's hot (20)

Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
이원, 온라인 게임 프로젝트 개발 결산 - 마비노기 개발 완수 보고서, NDC2011
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 

Similar to [0602 박민근] Direct2D

[0129 박민근] direct x2d
[0129 박민근] direct x2d[0129 박민근] direct x2d
[0129 박민근] direct x2dMinGeun Park
 
[0602 박민근] direct2 d
[0602 박민근] direct2 d[0602 박민근] direct2 d
[0602 박민근] direct2 dMinGeun Park
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)Dongho Kim
 
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
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기진현 조
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션codercay
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템noerror
 
안드로이드스터디 7
안드로이드스터디 7안드로이드스터디 7
안드로이드스터디 7jangpd007
 
Html5 게임 기술의 개요
Html5 게임 기술의 개요Html5 게임 기술의 개요
Html5 게임 기술의 개요Changhwan Yi
 
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
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
midas Gen 카달로그
midas Gen 카달로그midas Gen 카달로그
midas Gen 카달로그midasarchi
 
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기복연 이
 
[0312 조진현] good bye dx9
[0312 조진현] good bye dx9[0312 조진현] good bye dx9
[0312 조진현] good bye dx9진현 조
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
mago3D 한국어 소개 자료
mago3D 한국어 소개 자료 mago3D 한국어 소개 자료
mago3D 한국어 소개 자료 SANGHEE SHIN
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 

Similar to [0602 박민근] Direct2D (20)

[0129 박민근] direct x2d
[0129 박민근] direct x2d[0129 박민근] direct x2d
[0129 박민근] direct x2d
 
[0602 박민근] direct2 d
[0602 박민근] direct2 d[0602 박민근] direct2 d
[0602 박민근] direct2 d
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
[week12] D3.js_Basic
[week12] D3.js_Basic[week12] D3.js_Basic
[week12] D3.js_Basic
 
Flash Player 11과 AIR 3 환경에서 3D 개발
Flash Player 11과 AIR 3 환경에서 3D 개발Flash Player 11과 AIR 3 환경에서 3D 개발
Flash Player 11과 AIR 3 환경에서 3D 개발
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
 
Mineral
MineralMineral
Mineral
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
안드로이드스터디 7
안드로이드스터디 7안드로이드스터디 7
안드로이드스터디 7
 
Html5 게임 기술의 개요
Html5 게임 기술의 개요Html5 게임 기술의 개요
Html5 게임 기술의 개요
 
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
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
midas Gen 카달로그
midas Gen 카달로그midas Gen 카달로그
midas Gen 카달로그
 
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
『DirectX 12를 이용한 3D 게임 프로그래밍 입문』 - 맛보기
 
[0312 조진현] good bye dx9
[0312 조진현] good bye dx9[0312 조진현] good bye dx9
[0312 조진현] good bye dx9
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
mago3D 한국어 소개 자료
mago3D 한국어 소개 자료 mago3D 한국어 소개 자료
mago3D 한국어 소개 자료
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
Shader Driven
Shader DrivenShader Driven
Shader Driven
 

More from 흥배 최

Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용흥배 최
 
Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]흥배 최
 
Bash on Ubuntu on Windows
Bash on Ubuntu on WindowsBash on Ubuntu on Windows
Bash on Ubuntu on Windows흥배 최
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback흥배 최
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
Wtl 개요와 설치
Wtl 개요와 설치Wtl 개요와 설치
Wtl 개요와 설치흥배 최
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발흥배 최
 
닷넷 Apache avro
닷넷 Apache avro닷넷 Apache avro
닷넷 Apache avro흥배 최
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개흥배 최
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리흥배 최
 
Mongodb 개발 포인트
Mongodb 개발 포인트Mongodb 개발 포인트
Mongodb 개발 포인트흥배 최
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션흥배 최
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임흥배 최
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기흥배 최
 
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서흥배 최
 
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템흥배 최
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용흥배 최
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍흥배 최
 

More from 흥배 최 (20)

Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
 
Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]Go web framework 비교[번역 정리]
Go web framework 비교[번역 정리]
 
Bash on Ubuntu on Windows
Bash on Ubuntu on WindowsBash on Ubuntu on Windows
Bash on Ubuntu on Windows
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
Wtl 개요와 설치
Wtl 개요와 설치Wtl 개요와 설치
Wtl 개요와 설치
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
 
NLog 소개
NLog 소개NLog 소개
NLog 소개
 
닷넷 Apache avro
닷넷 Apache avro닷넷 Apache avro
닷넷 Apache avro
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리
 
Mongodb 개발 포인트
Mongodb 개발 포인트Mongodb 개발 포인트
Mongodb 개발 포인트
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
 
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
 
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
Twitter에 있어서 대규모 시스템 구성, 3개의 원칙과 시스템
 
MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용MongoDB 모바일 게임 개발에 사용
MongoDB 모바일 게임 개발에 사용
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
 

[0602 박민근] Direct2D

  • 1. 차세대 2D 그래픽스 라이브러리 Direct2D VS 2010 공식 팀블로그 (http://vsts2010.net) 2011.06.02 박민근
  • 2.
  • 3. Direct2D란? Windows7을 위한 새로운 2D 그래픽스 API GDI,GDI+를 대체하는 차세대 그래픽스 API
  • 4. High Performance 하드웨어 가속 지원 (immedate-mode)
  • 5. High Quality Per-Primitive Antialiasing ClearType Text
  • 6.
  • 7. GDI vs Direct2D http://zoome.jp/pcuser/diary/14
  • 8. Direct 2D & Direct3D http://www.youtube.com/watch?v=- 879yxtHLRI
  • 9. 가능한 것들 2D 도형들 (Line, 도형, Curve등) 비트맵(거의 모든 포맷,JPG,PNG등) 텍스트 (텍스트 변형, 회전)
  • 10. 기존 API와 상호 운영 가능 GDI, GDI+ Direct3D MFC 호환 (VS 2010 SP1)
  • 12. Native Code 기반 C, C++에서 사용이 기본 Windows API Pack for .NET Framework를 이용하면 .NET에서도 사용은 가능
  • 13. 사용 대상 대규모 Native 어플리케이션 개발자 컨트롤 툴킷 및 라이브러리 개발자 Server-Side 2D 그래픽 렌더링이 필요한 개발 자 Direct3D를 사용하면서, 간단하고 고성능의 2D 도형과 텍스트를 이용한 메뉴나 UI, HUD등을 개 발하는 개발자
  • 14. 요구 사항 Windows SDK에 포함되어 있음 윈도우 7, 윈도우 비스타 SP2 이상 DirectX 10.1 이상
  • 15.
  • 16. 게임 개발시 2D 그래픽 라이브러리의 필요성
  • 17. 각종 게임 개발툴 컷신 연출툴 마테리얼 개발툴 퀘스트 툴
  • 18.
  • 20. GDI, GDI+ 사용 구현이 간단함 2D 그래픽이 필요한 툴에서만 사용 가능하다 하드웨어 가속이 지원되지 않는다 게임에서는 사용 불가능하다 – Direct3D와 연동이 안됨
  • 21. Direct3D 사용 그래픽 속도가 필요한 경우 배보다 배꼽이 더크다
  • 22. WPF(Windows Presentation Foundation) 사용 하드웨어 가속 지원 구현이 상당히 편하고, 간단하다 하지만, .NET 전용 게임(C++)에서는 당연히 사용 불가
  • 24. 하드웨어 가속 지원 AntiAliasing 지원 – 예쁘게 나온다 Direct3D와 같이 사용 가능 게임내에서도 사용 가능
  • 25. 사용하기 위한 코드가 간단하다 - Direct3D 보다는 간결함 - GDI보다는 조금 복잡함 기능이 많지 않으며, 간단해서 쉽게 익힐 수 있음
  • 26.
  • 27. 이미 IE9, Firefox, 크롬에서는 사용중 하드웨어 가속 웹 렌더링에서 사용 (HTML5)
  • 28. 게임 UI 라이브러리로 사용하는 건 무리 요구 사항 Window7 이상 DirectX 10.1 이상
  • 29. 게임 개발 툴에서 활용 가능성 2D 그래픽으로만 이루어진 개발툴이 의외로 많다 - 이걸 위해서 Direct3D를 사용하는 건 무리 2D 도형을 이용한 개발툴의 기능이 필요하다
  • 30. 샘플 프로젝트에서 활용 시각화 샘플 프로젝트 알고리즘 시각화 프로젝트 간단한 2D 게임 만들기
  • 32. Illustration of two rectangles on a grid background
  • 34. 2. 관련 객체 변수 선언
  • 39. 5. 배경 그리드 렌더링
  • 42. VS 2010 SP1에는 MFC에 다 통합되어 있다!! 위 작업들 할 필요 없음! http://msdn.microsoft.com/ko-kr/library/gg482848.aspx
  • 43.
  • 45. Advanced Path Geometries Example Illustration of a river, mountains, and the sun http://msdn.microsoft.com/en- us/library/ee461072(v=VS.85).aspx
  • 46. Illustration of several simple and path geometries Geometries Example Illustration of several simple and path geometries http://msdn.microsoft.com/en- us/library/ee329938(v=VS.85).aspx
  • 47. Brush Types Example Illustration of solid color brush, linear gradient brush, radial gradient brush, and bitmap brush http://msdn.microsoft.com/en- us/library/dd799414(v=VS.85).aspx
  • 48. Clip with Axis Aligned Rectangle Example Illustration of a goldfish and a clipped region of the goldfish http://msdn.microsoft.com/en- us/library/dd756624(v=VS.85).aspx
  • 49. Clip with a Bitmap Mask Example Illustration of a goldfish and a clipped region of the goldfish by using a bitmap mask http://msdn.microsoft.com/en- us/library/dd756625(v=VS.85).aspx
  • 50. Clip with Layers Example Illustration of a goldfish and a clipped region of the goldfish by using layers http://msdn.microsoft.com/en- us/library/dd756626(v=VS.85).aspx
  • 51. Combine Geometries Example Illustration of two geometries and the resulting geometry after various combination operations http://msdn.microsoft.com/en- us/library/dd370923(v=VS.85).aspx
  • 52. Create Geometry Groups Example Illustration of composite geometry groups with the two fill modes http://msdn.microsoft.com/en- us/library/dd756627(v=VS.85).aspx
  • 53. Draw Bitmap With Extend Mode Example Illustration of various effects of extend mode http://msdn.microsoft.com/en- us/library/dd940315(v=VS.85).aspx
  • 54. Layers with Parameters Example Illustrations of three bitmaps and the resulting images after content bounds, opacity masks, or geometric masks are applied to them http://msdn.microsoft.com/en- us/library/ee329942(v=VS.85).aspx
  • 55. Multiple Transforms Example Diagram of a square being rotated and then translated http://msdn.microsoft.com/en- us/library/dd799446(v=VS.85).aspx
  • 56. Opacity Masks Example http://msdn.microsoft.com/en - us/library/dd372307(v=VS.85) .aspx Illustration of three bitmaps with different opacity masks applied to them
  • 57. Stroke Style Example http://msdn.microsoft.com/en- us/library/dd317107(v=VS.85).asp x Illustration of line join styles (miter line join, round line join, bevel line join, and miter or bevel line join)
  • 58. Direct2D & Direct3D 같이 사용하기
  • 59.
  • 60. Direct3D 10.1 버전 이상부터 Direct2D와 같이 사용이 가능하다 • 2D 화면을 3D 화면의 백그라운드 이미지로 사용하거나 • 2D 화면을 3D 오브젝트의 텍스쳐로 사용하거나 • 2D 텍스트를 3D 화면에 표시하거나 • 2D 오브젝트로 3D 게임의 UI로 사용하거나
  • 61. DXGI를 통해서 서로 사용이 가능하다 • IDXGISurface, ID2D1RenderTarget 을 이용하여 Direct2D 컨텐츠를 Direct3D 서페이스에 Direct2D 컨텐츠를 렌더링할 수 있다. • IDXGISurface에서 CreateShaderBitmap을 사용하 여 ID2D1Bitmap을 생성하여, Direct3D의 씬을 거 기에 Direct2D로 렌더링 할 수 있다.
  • 62. 자세한 내용은 DX10.1 이상의 아키텍쳐를 이해해 고 있어야 하기 때문에, 생략…. MSDN에 자세한 설명과, 샘플 코드가 있습니다. Direct2D and Direct3D Interoperability Overview
  • 63.
  • 64. GDI, GDI+를 대체하는 최신의 2D 그래픽스 라이브러리
  • 65. C++로 만들어야 하는 게임 개발툴에서 유용할 듯 - 셰이더 에디터, 마테리얼 에디터, 컷신 연출툴
  • 66. 2D 프로토 타입 or 2D 게임 개발시 유용할 듯
  • 67. 상용 게임의 UI에 적용하는 것은 무리 - 요구 사항 제한
  • 68. 참고 자료 MSDN Direct 2D PDC 2008 - Introducing Direct2D PDC 2008 - Improving Direct2D
  • 69. Direct2D란? Windows7을 위한 새로운 2D 그래픽스 API GDI,GDI+를 대체하는 차세대 그래픽스 API
  • 70. High Performance 하드웨어 가속 지원 (immedate-mode)
  • 71. High Quality Per-Primitive Antialiasing ClearType Text
  • 72.
  • 73. GDI vs Direct2D http://zoome.jp/pcuser/diary/14
  • 74. Direct 2D & Direct3D http://www.youtube.com/watch?v=- 879yxtHLRI
  • 75. 가능한 것들 2D 도형들 (Line, 도형, Curve등) 비트맵 텍스트 (텍스트 변형, 회전)
  • 76. 기존 API와 상호 운영 가능 GDI, GDI+ Direct3D
  • 78. Native Code 기반 C, C++에서 사용이 기본 Windows API Pack for .NET Framework를 이용하면 NET에서도 사용은 가능
  • 79. 사용 대상 대규모 Native 어플리케이션 개발자 컨트롤 툴킷 및 라이브러리 개발자 Server-Side 2D 그래픽 렌더링이 필요한 개발 자 Direct3D를 사용하면서, 간단하고 고성능의 2D 도형과 텍스트를 이용한 메뉴나 UI, HUD등을 개발하는 개발자
  • 80. 요구 사항 Windows SDK에 포함되어 있음 윈도우 7, 윈도우 비스타 SP2 이상 DirectX 10.1 이상
  • 81.
  • 82. 게임 개발시 2D 그래픽 라이브러리의 필요성
  • 83. 각종 게임 개발툴 컷신 연출툴 마테리얼 개발툴 퀘스트 툴
  • 86. GDI, GDI+ 사용 구현이 간단함 2D 그래픽이 필요한 툴에서만 사용 가능하다 하드웨어 가속이 지원되지 않는다 게임에서는 사용 불가능하다 – Direct3D와 연동이 안됨
  • 87. Direct3D 사용 그래픽 속도가 필요한 경우 배보다 배꼽이 더크다
  • 88. WPF(Windows Presentation Foundation) 사용 하드웨어 가속 지원 구현이 상당히 편하고, 간단하다 하지만, .NET 전용 게임에서는 당연히 사용 불가
  • 90. 하드웨어 가속 지원 AntiAliasing 지원 – 예쁘게 나온 다 Direct3D와 같이 사용 가능 게임내에서도 사용 가능
  • 91. 사용하기 위한 코드가 간단하다 - Direct3D 보다는 간결함 - GDI보다는 조금 복잡함 기능이 많지 않으며, 간단해서 쉽게 익힐 수 있음
  • 92.
  • 93. 이미 IE9, Firefox, 크롬에서는 사용중 하드웨어 가속 웹 렌더링에서 사용 (HTML5)
  • 94. 게임 UI 라이브러리로 사용하는 건 무리 요구 사항 Window7 이상 DirectX 10.1 이상
  • 95. 게임 개발 툴에서 활용 가능성 2D 그래픽으로만 이루어진 개발툴이 의외로 많다 - 이걸 위해서 Direct3D를 사용하는 건 무리 2D 도형을 이용한 툴의 기능이 필요하다
  • 96. 샘플 프로젝트에서 활용 스터디용 샘플 프로젝트 알고리즘 시각화 프로젝트 간단한 게임 만들기 - 해보리
  • 98. Illustration of two rectangles on a grid background
  • 100. 2. 관련 객체 변수 선언
  • 104. 4. 렌더 타겟 준비
  • 105. 5. 배경 그리드 렌더링
  • 109. Advanced Path Geometries Example Illustration of a river, mountains, and the sun http://msdn.microsoft.com/en- us/library/ee461072(v=VS.85).aspx
  • 110. Illustration of several simple and path geometries Geometries Example Illustration of several simple and path geometries http://msdn.microsoft.com/en- us/library/ee329938(v=VS.85).aspx
  • 111. Brush Types Example Illustration of solid color brush, linear gradient brush, radial gradient brush, and bitmap brush http://msdn.microsoft.com/en- us/library/dd799414(v=VS.85).aspx
  • 112. Clip with Axis Aligned Rectangle Example Illustration of a goldfish and a clipped region of the goldfish http://msdn.microsoft.com/en- us/library/dd756624(v=VS.85).aspx
  • 113. Clip with a Bitmap Mask Example Illustration of a goldfish and a clipped region of the goldfish by using a bitmap mask http://msdn.microsoft.com/en- us/library/dd756625(v=VS.85).aspx
  • 114. Clip with Layers Example Illustration of a goldfish and a clipped region of the goldfish by using layers http://msdn.microsoft.com/en- us/library/dd756626(v=VS.85).aspx
  • 115. Combine Geometries Example Illustration of two geometries and the resulting geometry after various combination operations http://msdn.microsoft.com/en- us/library/dd370923(v=VS.85).aspx
  • 116. Create Geometry Groups Example Illustration of composite geometry groups with the two fill modes http://msdn.microsoft.com/en- us/library/dd756627(v=VS.85).aspx
  • 117. Draw Bitmap With Extend Mode Example Illustration of various effects of extend mode http://msdn.microsoft.com/en- us/library/dd940315(v=VS.85).aspx
  • 118. Layers with Parameters Example Illustrations of three bitmaps and the resulting images after content bounds, opacity masks, or geometric masks are applied to them http://msdn.microsoft.com/en- us/library/ee329942(v=VS.85).aspx
  • 119. Multiple Transforms Example Diagram of a square being rotated and then translated http://msdn.microsoft.com/en- us/library/dd799446(v=VS.85).aspx
  • 120. Opacity Masks Example http://msdn.microsoft.com/en - us/library/dd372307(v=VS.85) .aspx Illustration of three bitmaps with different opacity masks applied to them
  • 121. Stroke Style Example http://msdn.microsoft.com/en- us/library/dd317107(v=VS.85).asp x Illustration of line join styles (miter line join, round line join, bevel line join, and miter or bevel line join)
  • 122. Direct2D & Direct3D 같이 사용하기
  • 123.
  • 124. Direct3D 10.1 버전 이상부터 Direct2D와 같이 사용이 가능하다 • 2D 화면을 3D 화면의 백그라운드 이미지로 사용하거나 • 2D 화면을 3D 오브젝트의 텍스쳐로 사용하거나 • 2D 텍스트를 3D 화면에 표시하거나 • 2D 오브젝트로 3D 게임의 UI로 사용하거나
  • 125. DXGI를 통해서 서로 사용이 가능하다 • IDXGISurface, ID2D1RenderTarget 을 이용 하여 Direct2D 컨텐츠를 Direct3D 서페이스 에 Direct2D 컨텐츠를 렌더링할 수 있다. • IDXGISurface에서 CreateShaderBitmap을 사용하여 ID2D1Bitmap을 생성하여, Direct3D의 씬을 거기에 Direct2D로 렌더링 할 수 있다.
  • 126. 자세한 내용은 DX10.1 이상의 아키텍쳐를 이해해 고 있어야 하기 때문에, 생략…. MSDN에 자세한 설명과, 샘플 코드가 있습니다. Direct2D and Direct3D Interoperability Overview
  • 127.
  • 128. GDI, GDI+를 대체하는 최신의 2D 그래픽스 라이브러리
  • 129. C++로 만들어야 하는 게임 개발툴에서 유용할 듯 - 셰이더 에디터, 마테리얼 에디터, 컷신 연출툴
  • 130. 2D 프로토 타입 or 2D 게임 개발시 유용할 듯
  • 132. 상용 게임의 UI에 적용하는 것은 무리 - 요구 사항 제한
  • 133. 참고 자료 MSDN Direct 2D PDC 2008 - Introducing Direct2D PDC 2008 - Improving Direct2D