Loading...

정점 셰이더, 픽셀셰이더, HLSL 사용법

정점 셰이더 : 폴리곤의 형태를 바꾼다.정점 셰이더에 관한 변수인 LPDIRECT3DVERTEXSHADER9과모델의 정점 데이터 선언에 관한 변수인 LPDIRECT3DVERTEXDECLARATION9이 필요하다. 사용 예// 정점선언 오브젝트 생성 D3DVERTEXELEMENT9 decl[] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, D3DDECL_END() }; // 정점 선언if( FAILED( hr = m_pd3dDevice->CreateVertexDeclaration( decl, &m_pVertexDeclaration ) ) ) { return hr; } // 셰이더 읽기 if( FAILED(..

d3dx9d.dll 못 찾을 경울.

오래된 책 예제를 좀 돌려보려하니 d3dx9d.dll 못찾는다고 징징 거린다.dx sdk 깔려있는디 말여... 그래서 찾아봤더니 예전 네이버 블로그에 써 두었던 글을 발견했다.그런데 당시(2007)와 dx버전이 틀린지 DirectX.cab파일을 현재 버전 (june, 2010)에서 찾아보니 보이질 않는다.그래서 혹시나 오래된 예제를 돌릴 때를 대비해서 이곳에 d3dx9d.dll 파일을 올려둔다.

디바이스 소실에 따른 처리

참고 : http://www.gpgstudy.com/forum/viewtopic.php?topic=1451 http://www.gpgstudy.com/gpgiki/D3D%20%EB%94%94%EB%B0%94%EC%9D%B4%EC%8A%A4%20%EC%86%8C%EC%8B%A4%20%EC%B2%98%EB%A6%AC 나중에 한번 자세히 보면서 처리추가를 해야 할듯.

DirectX SDK 9.0c 의 Pure Device 에 대한 보고

출처 : http://www.tomatowax.com/ZeroboardXE/6856 1. DirectX SDK Direct3D Device 의 생성시 사용될 수 있는 PURE DEVICE Option Flag D3DCREATE_PUREDEVICE Specifies that Direct3D does not support Get* calls for anything that can be stored in state blocks. It also tells Direct3D not to provide any emulation services for vertex processing. This means that if the device does not support vertex processing, then the ..

비디오 메모리, 시스템 메모리 체크하는법

출처 : http://gpgstudy.com/forum/viewtopic.php?t=2744 대충 이렇네요.. 코드: view source print? #include ... m_MaxAllocMem = m_pDevice->GetAvailableTextureMem(); ///// LPDIRECTDRAW7 lpDD = NULL; DDSCAPS2 ddsCaps2; DWORD dwTotal; DWORD dwFree; HRESULT hr; hr = DirectDrawCreateEx(NULL, (VOID**)&lpDD, IID_IDirectDraw7, NULL ); if (FAILED(hr)) return FALSE; // Initialize the structure. ZeroMemory(&ddsCaps2, si..

2009. 12. 16. 23:54

D3D10 resource usage.

출처 : http://blog.naver.com/lifeisforu/80073203984 D3D10 에서는 더 이상 memory pool 에 대한 고민을 할 필요가 없어졌습니다. 출처 : DXSDK 도움말. 이제 더 이상 resource 를 video memory 에 생성할지 system memory 에 생성할지 고민할 필요가 없어졌다. 그리고 runtime 이 memory 를 관리할지 말지도 고민할 필요가 없다. 새로운 WDDM 의 구조에 감사하기 바란다. Application 은 이제 "application 이 resource data 를 무슨 의도로 생성했는지"에 대한 usage flag 를 지정하기만 하면 된다. 새로운 driver model 은 resource 에 의해 사용되는 memory 를 ..

큐브맵의 밉맵생성

환경맵핑때문에 만들어둔 큐브맵에 밉맵을 생성해서 사용해야 할 일이생겼다. msdn에 보니 레벨부분만 0으로 설정해주면 생성이 된다고 하던데.... 문제는 생성된 나머지 레벨에는 쓰레기 값만 있다는 거다. 그래서 gpg에서 검색해 보니 아래와 같은 글을 발견했다. pd3dDevice->CreateTexture( MAP_SIZE, MAP_SIZE, 0, D3DUSAGE_RENDERTARGET|D3DUSAGE_AUTOGENMIPMAP, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT , &g_pShadowTex, NULL); 로 텍스쳐를 생성한 후에 텍스쳐를 렌더타켓으로 설정 후 뭔가를 그린 후에 이 텍스쳐를 어딘가에 사용하기 전에 g_pShadowTex->SetAutoGenFilterType( D..

cbuffer

Constant Buffers Starting with Direct3D 10, an application can use a constant buffer to set shader constants (shader variables). dx10에서는 쉐이더 상수(변수)를 위해 상수버퍼를 사용한다. Constant buffers are declared using a syntax similar to C-style structs. 상수버퍼는 c스타일의 구조체와 비슷한 문법으로 선언된다. Constant buffers reduce the bandwidth required to update shader constants by allowing shader constants to be grouped together and..