Loading...
2010. 5. 5. 14:23

육면체 렌더링

삼각형 렌더링에 인덱스 버퍼만 추가된 정도. 회전값을 계속 지정해 주기 위해 render에 쉐이더 버퍼 값을 갱신한다. fx matrix matWorld; matrix matView; matrix matProjection; VS_Output VS( float4 pos : POSITION, float4 color : COLOR ) { VS_Output output = (VS_Output)0; output.pos = mul( pos, matWorld ); output.pos = mul( output.pos, matView ); output.pos = mul( output.pos, matProjection ); output.color = color; return output; } 이정도가 추가된 전부.

2010. 5. 5. 13:05

삼각형 렌더링

전의 삼각형 렌더링 예제에서는 정점쉐이더가 입력정점의 위치좌표를 그대로 리턴하였는데 이는 정점의 위치가 이미 클립공간에서의 위치일 경우에만 유효하다. 일반적으로 입력정점의 위치가 로컬공간이므로 정점쉐이더에서 이를 클립공간으로 변환해 주어야 한다. D3DXMATRIX matProjection; ID3D10EffectMatrixVariable* pkmatProjectionVariable = NULL; D3DXMatrixPerspectiveFovLH( &matProjection, (float)D3DX_PI * 0.5f, (float)SCREEN_WIDTH / (float)SCREEN_HEIGHT, 1.0f, 1000.0f ); // 상수버퍼 변수들을 얻는다. pkmatProjectionVariable = pk..

2010. 5. 2. 23:43

sprite 출력

2d sprite 출력 스프라이트 생성 ID3DX10Sprite* pkSprite; D3DX10CreateSprite(pkDevice, 64, &pkSprite); 이미지 로드 D3D10ShaderResourceView* pkTextureView = NULL; D3DX10CreateShaderResourceViewFromFile(pkDevice, L"G:/MProject/graphics/BackImg.jpg", NULL, NULL, &pkTextureView, NULL); 스프라이트 설정 구조체 D3DX10_SPRITE spriteDesc; spriteDesc.matWorld = W; spriteDesc.pTexture = pkTextureView; spriteDesc.TexCoord = D3DXVECT..

2010. 5. 2. 18:32

폰트 출력

회사에서도 맨날 폰트하는데....죽겠구만!!!!!! 폰트를 쓰는건 여러가지 방법이 있다. 1. CDXUTTextHelper의 사용 이 방식은 dxut에서 사용하는 방식이다. // 폰트의 생성 V_RETURN( D3DX10CreateFont( pd3dDevice, 15, 0, FW_BOLD, 1, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Arial", &g_pFont10 ) ); V_RETURN( D3DX10CreateSprite( pd3dDevice, 512, &g_pSprite10 ) ); g_pTxtHelper = new CDXUTTextHelper( g_pFont9, g_pSp..

2010. 5. 2. 10:03

2d 점찍기

창생성, 삼각형그리기에 이어 점찍기라니... 다시 시작한다는 마음으로 ㅎㅎㅎ. ID3D10EffectScalarVariable* vpWidthVariable = NULL; ID3D10EffectScalarVariable* vpHeightVariable = NULL; 이펙트 파일의 스칼라 값에 접근 하기 위해 위와 같은 인터페이스를 쓴다. vpWidthVariable = pkEffect->GetVariableByName( "vpWidth" )->AsScalar(); vpHeightVariable = pkEffect->GetVariableByName( "vpHeight" )->AsScalar(); vpWidthVariable->SetFloat( (float)SCREEN_WIDTH ); vpHeightVari..

2010. 4. 21. 00:00

dx10 창생성

1. 장치와 스왑체인 생성 스왑체인의 속성값을 설정 하기 위해 DXGI_SWAP_CHAIN_DESC 구조체를 사용한다. DXGI_SWAP_CHAIN_DESC scd; ZeroMemory( scd, sizeof(*scd) ); scd->BufferCount = 1; scd->BufferDesc.Width = width; scd->BufferDesc.Height = height; scd->BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; scd->BufferDesc.RefreshRate.Numerator = 60; scd->BufferDesc.RefreshRate.Denominator = 1; scd->BufferUsage = DXGI_USAGE_RENDER_TARGET_..

ID3D10InputLayout

정점은 여러가지 정보를 가진다. 기본적으로는 정점의 위치, 색상, 노말, 텍스쳐 좌표등이 그것이다. 이러한 정점 정보는 파이프라인의 첫번째 스테이지인 입력조립기(IA)스테이지로 입력된다. 렌더링 파이프라인의 입력조립기 스테이지는 개발자가 정의한 정점 구조체의 형식을 미리 알고 있어야 앞으로 파이프라인에 입력될 정점 데이터를 올바르게 해석할 수 있다. 장치에 정점의 형식을 알리는 방법은 정점에 대한 입력레이아웃 이라는 객체를 구성하고 이를 입력조립기 스테이지에 제공하는 것이다. 결국 입력레이아웃이란 입력조립기 스테이지가 입력데이터를 접근할 때에 사용하는 인터페이스이다. 정점구조체의 각 속성은 D3D10 _INPUT_ELEMENT_DESC구조체의 배열로 표현된다. ID3D10InputLayout Interf..