DX11 Tutorial 1 의역
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

DX11 Tutorial 1 의역에 대한 보고서 자료입니다.

목차

DX11 의 구조 ..

SwapChain은 무엇인가.

DX11 - ImmediateContext
1.TargetRenderView은 뭘까.
2.ViewPort는 ?

Render 하려니 윈도우즈가 막는다.

Render를 할때 스크린 색상을 변경해보자.

본문내용

e like GetMessage() does, but when there is no message waiting, PeekMessage() returns immediately instead of blocking. We can then take this time to do some rendering. The modified message loop, which uses PeekMessage(),
우리는 이제 세팅된 윈도우(window)와 다이렉트3D 11 장치( Direct3D 11 device)가 존재한다. 그리고 우리 는 랜더링을 할 준비가 끝났다. 하지만 아직 계속 해야할 문제가 있는 그것은 메시지 루프를 만드는 것이다. 이것은 GetMessage()를 사용하여 메시지를 입력받는 것인데. 문제는 이 GetMessage()가 메시지를 입력 받는 것이 window 관련 내용만 입력받는단 것이다. GetMessage()는 메시지를 막고 돌려주지 않는다. 그리므로 우리는 대신 랜더링 할 수 있도록 도와줄 필요성이 있다. 우리는 병신 GetMessage()가 어플리케이션이 꺼지기 만을 기다리는 동안 PeekMessage()를 이용을 할것이다.
이녀석은 GetMessage()와 비슷한 성향을 지녔지만 메시지를 받지 않을때에는 기다리고, 받은 경우 즉시 반환하여 랜더링을 할 수 있게 다른 녀석에게 보낸다. 메시지 루프를 수정하여 PeekMessage()를 사용하자.
MSG msg = {0};
while( WM_QUIT != msg.message )
{
if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
Render(); // Do some rendering
}
}
The Rendering Code (휴 드디어!!)
Rendering is done in the Render() function. In this tutorial, we will render the simplest scene possible, which is to fill the screen with a single color. In Direct3D 11, an easy way to fill the render target with a single color is to use the immediate context's ClearRenderTargetView() method. First, we define an array of four floats that describe the color with which we would like to fill the screen. Then, we pass it to ClearRenderTargetView(). In this example, we choose a shade of blue. Once we fill our back buffer, we call the swap chain's Present() method to complete the rendering. Present() is responsible for displaying the swap chain's back buffer content onto the screen so that the user can see it.
랜더링 은 Render() 함수에 의해서 동작한다. 이 튜토리얼에서는 말이다. 우리는 간단한 장면을 랜더하는게 드디어 가능해졌다. 스크린을 어떤 색상으로 가득 채우거나. Direct3D 11에서는 쉽게 랜더 타겟의 색상을 변경할 수 있게 immediate context에 있는 ClearRenderTargetView() 메소드를 건드려 보겠다. 첫 번째로 우리는 네 개의 플로트형 주소를 정의해야 하며, 이것은 화면에 어떤 색상을 띄울지 결정하게 된다.
ClearRenderTargetView()가 작동 될 때 무사히 통과하여 backbuffer에 저장되어 버린다. 그리고 swapchain이 Present() 메소드를 통해 완전히 랜더링이 끝나면 Present()는 책임감 있게 디스플레이에 백버퍼에 저장된 스크린을 당신의 모니터에 찬란하게 띄울 것이다. void Render() {
//
// Clear the backbuffer
//
float ClearColor[4] = { 0.0f, 0.125f, 0.6f, 1.0f }; // RGBA
g_pd3dDevice->ClearRenderTargetView( g_pRenderTargetView, ClearColor );
g_pSwapChain->Present( 0, 0 );
}
최종 설명 :
윈도우 32 어플리 케이션 환경에서 작업하시오
Device 를 만들기 위해 필요한 오브젝트
SwapChain - BackBuffer와 FrontBuffer로 구성되어 있으며 이 둘이 번갈아 가며 화면에 그림을 그립니다. BackBuffer는 RenderTargetView를 통해 외부의 자료를 저장합니다.
RenderTargetView - 외부의 자료를 가져와 Buffer에 저장하는 역할을 합니다. ImmediateContext로 DX11에서 합병된 이후 보다 중요한 내용만 표시하게 변경되었습니다.
ViewPort - DX9시절엔 기본값 뷰포트가 있었지만 지금은 사라졌습니다. RenderTargetView에서 원하는 만큼만 지정하여 BackBuffer에서 FrontBuffer로 넘어가게 만듭니다. (자르기 도구) 마찬가지로 ImmediateContext에 합병되어 있습니다.
순서 -
Windows 32 Application -> Device InterFace -> SwapChain -> RenderTargetView -> ViewPort -> GetMessage() 수정 PeekMessage(,,,) -> Render() 함수 작성 -> Present()
거의 의역이고 튜토리얼을 그대로 설명한 내용이다 보니 앞뒤에 안맞고 잘 모르는 소스 코드들도 많이 나옵니다. 이부분에 대해서는 Tutorial 00에서 설명하겠습니다.

키워드

  • 가격2,300
  • 페이지수10페이지
  • 등록일2012.08.15
  • 저작시기2000.9
  • 파일형식한글(hwp)
  • 자료번호#761254
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니