프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 6. 12. 23:57
ID3DXFont 인터페이스ID3DXFont 인터페이스는, 지정한 장치상으로 지정한 폰트를 렌더링 하기 위해서 필요한 텍스처와 리소스를 캡슐화하기 위해서 사용한다. ID3DXFont 멤버 Begin 텍스트를 드로잉(Drawing) 할 수 있도록(듯이) 장치를 준비한다. DrawText 정형된 텍스트를 드로잉(Drawing) 한다. 이 메서드는, ANSI 및 Unicode 캐릭터 라인을 지원 한다. End ID3DXFont::Begin 가 불려 간 시점의 장치 상태를 복원한다. GetDevice 폰트 개체에 관련지을 수 있는 Microsoft® Direct3D® 장치를 얻어온다. GetLogFont 폰트의 속성을 얻어온다. OnLostDevice 비디오 메모리 리소스에의 참조를 모두 릴리즈 해, 모든 스테..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 6. 12. 23:37
D3DXVECTOR3 연산 함수 // 크기를 리턴한다 FLOAT D3DXVec3Length( CONST D3DXVECTOR3* pv ); ex) D3DXVECTOR3 v(1.0f, 2.0f, 3.0f); float magnitude = D3DXVec3Length( &v ); // = sqrt(14) //벡터의 정규화 D3DXVECTOR3* D3DXVec3Normalize( D3DXVECTOR3* pOut, //결과 CONST D3DXVECTOR3* pV //정규화 하려는 벡터 ); //내적 FLOAT D3DXVec3Dot( CONST D3DXVECTOR3* pV1, //왼쪽 피연산자 CONST D3DXVECTOR3* pV2 //오른쪽 피연산자 ); //외적 D3DXVECTOR3* D3DXVec3Cros..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 6. 9. 17:56
LPD3DXSPRITE LPD3DXSprite(이하 스프라이트) Interface는 다이렉트 엑스에서 2D이미지를 그리기 편하게 해주는 인터페이스 입니다. 주로 UI를 그리거나 하는 평면 이미지를 그릴때 사용하는데, 3D상의 카메라에 2D이미지가 붙어 있다고 생각하시면 편합니다. 카메라를 움직이면 3D공간의 물체는 이동하지만 카메라에 붙은 2D이미지는 변함이 없는 것이지요. 여기서는 이 유용한 스프라이트 객체의 사용법에 대하여 알아보겠습니다. 1. 스프라이트 객체 생성과 해제 // 생성하기 LPD3DXSPRITE pSprite; D3DXCreateSprite(pd3dDevice, &pSprite); 스프라이트를 생성할때는 D3DXCreateSprite함수를 사용합니다. 함수를 간단히 살펴보면 HRESUL..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 5. 22. 23:11
Vertex Shader (버텍스 쉐이더, 정점 쉐이더) - 물체의 정점 정보에 수학적인 연산을 함으로써 물체에 특별한 효과를 주는데 사용되는 쉐이더. - 정점은 3차원의 위치를 나타내는 x, y, z좌표나 색상, 텍스쳐, 조명 정보 등의 정보를 가짐. - 버텍스 쉐이더는 정점의 정보값들을 변화시켜서 물체를 특별한 위치로 옮기거나 텍스쳐를 바꾸거나 색상을 바꾸는 등의 작업을 수행. - 기존의 정점을 삭제하거나 새로운 정점을 추가하는 등의 작업은 불가능. Pixel Shader (픽셀 쉐이더, PS) - 렌더링 될 각각의 픽셀들의 색을 계산하는 방식의 쉐이더. - 최종적으로 픽셀이 어떻게 보일지를 결정 함. - 언제나 같은 색을 출력하는 간단한 일로부터 텍스쳐로부터 색을 읽어 오거나 빛을 적용하는 것, 범..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 3. 30. 00:43
1.인덱스 버퍼의 기초 인덱스 버퍼란 정점의 인덱스를 보관하기 위한 전용 버퍼를 말한다. 메모리 소모량이 적고 캐시를 이용해 높은 효율을 낼 수 있다.(인덱스버퍼를 사용하는 이유) 캐시를 통한 최적화는 인덱스 버퍼를 사용할 때만 가능한 것으로 통상 출력 속도가 두 배 정도 빨라진다. 인덱스 버퍼는 DirectX 8.0에서 새롭게 등장한 것으로서, 인덱스된 렌더링에 사용할 인덱스를 저장합니다. 인덱스 버퍼는 복사 작업을 제거(하거나 최소한 줄이기 위해) 제공된 것으로서, DirectX 7.0에 비해 성능 상의 향상을 가져 왔습니다. 인덱스 버퍼는 16비트나 32비트로 할당됩니다. 최대 인덱스 값에 해당하는 제한 값이 있는데, 2**16이며, 모든 2**32는 아직 사용할 수 없습니다. //뭐, 남는건 아~..