Çȼ¿ ¼ÎÀÌ´õ DirextX 8.0ÀÇ tutorial12¿¡ Çȼ¿ ¼ÎÀÌ´õ¸¦ Ãß°¡ÇÏ°Ú´Ù. Ä®¶ó·Î ³ª¿À´ø ȸéÀ» Èæ¹éÀ¸·Î º¸¿©ÁÖ°Ô µÈ´Ù.
ÀÔ·Â º¤ÅÍ ·¹Áö½ºÅÍ: »ó¼ö ·¹Áö½ºÅÍ: Çȼ¿ ¼ÎÀÌ´õ ¿ª½Ã Á¤Á¡ ¼ÎÀÌ´õ¿Í È帧Àº Å©°Ô ´Ù¸£Áö ¾Ê´Ù
DirextX 8.0ÀÇ tutorial 12¿¡ »õ·Ó°Ô Ãß°¡µÈ°Í¸¸ ¼³¸íÇÏ°Ú´Ù. 1) ¼ÎÀÌ´õ º¯¼ö ¼±¾ð DWORD g_hPShader
= 0; //¹öÅؽº ¼ÎÀÌ´õÀÇ ÇÚµé 2) ¼ÎÀÌ´õ »ý¼º HRESULT CreateShader() { const char szPixelShader[] = "ps.1.1 \n" //"def c2, 0.3333f, 0.59f, 0.11f, 0.0f \n" "tex t0 \n" "dp3 r0, t0, c2 \n"; ID3DXBuffer* pShaderBuffer; ID3DXBuffer* pShaderErrors; if (FAILED(D3DXAssembleShader(szPixelShader, sizeof(szPixelShader) - 1, 0, NULL, &pShaderBuffer, &pShaderErrors))) return E_FAIL; if (FAILED(g_pd3dDevice->CreatePixelShader((DWORD *)pShaderBuffer-> GetBufferPointer(), &g_hPShader))) return E_FAIL; _RELEASE_(pShaderBuffer); return S_OK; } CreateShader()¸¦ RenderInit(), Áï ¹öÅؽº ¹öÆÛ »ý¼º ÀÌÀü¿¡ ½ÇÇàÇÑ´Ù. D3DXAssembleShader°ú D3DXAssembleShaderFromFile 2°¡Áö°¡ Àִµ¥,
¼ÎÀÌ´õ°¡ °£´ÜÇϱ⠶§¹®¿¡ D3DXAssembleShader¸¦ »ç¿ëÇÏ¿© ¼ÎÀÌ´õ ÄÚµåÀÇ
ÃʼÒÇÑ ¿¡·¯Ã¼Å©¿Í ÀÌÁøÄÚµå·Î ¸¸µé¸¦ ÀÖ´Ù. ¼ÎÀÌ´õ ¹®¹ýÀº ¸¶Áö¸·¿¡ ¼³¸íÇÏ°Ú´Ù. D3DXAssembleShader()ÈÄ¿¡ CreatePixelShader()·Î µð¹ÙÀ̽º »ó¿¡ ½ÇÁ¦ÀûÀ¸·Î ¼ÎÀÌ´õ ÀνºÅϽº¸¦ »ý¼ºÇÑ´Ù.3) ·»µå¸µ HRESULT Render3D () { HRESULT hr; D3DXMATRIX matTranslation; // Clear the scene g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(150,150,255), 1.0f, 0 ); g_pd3dDevice->BeginScene(); D3DXMatrixIdentity( &matTranslation ); g_pd3dDevice->SetTransform(D3DTS_WORLD, &matTranslation); //Set texture g_pd3dDevice->SetTexture( 0, g_pTexture ); g_pd3dDevice->SetStreamSource(0, g_pVertexBuffer, sizeof(MYVERTEX)); g_pd3dDevice->SetVertexShader(D3DFVF_MYVERTEX); float fColorConstant[][4] = { { 0.3333f, 0.59f, 0.11f, 0.0f} }; g_pd3dDevice->SetPixelShaderConstant( 2, (VOID*)fColorConstant ,1); g_pd3dDevice->SetPixelShader(g_hPShader); g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2); //Clear texture g_pd3dDevice->SetTexture( 0, NULL ); g_pd3dDevice->EndScene(); hr = g_pd3dDevice->Present( NULL, NULL, NULL, NULL ); return hr; } ÅؽºÃÄÀÇ Çȼ¿°ú Á¶ÇÕµÉ Ä®¶ó°ªÀ» c0¿¡ º¤ÅÍ°ªÀ¸·Î ³Ñ°ÜÁØ´Ù. ¿ì¸®°¡ ÇÁ·Î±×·¡¹ÖÇÑ ¼ÎÀÌ´õ·Î ±×¸®±â À§ÇØ
Çȼ¿¼ÎÀÌ´õ¸¦ ¼³Á¤ÇÑ´Ù. 4) ¼Ò¸ê if(g_hPShader) { g_pd3dDevice->DeletePixelShader(g_hPShader); g_hPShader = NULL; }5) ¼ÎÀÌ´õ ÄÚµå ¼³¸í
¼ÎÀÌ´õ ¹öÀüÀ» ¼³Á¤ÇÑ´Ù.
t0 ·¹Áö½ºÅÍ·Î ÅؽºÃĸ¦ ·ÎµùÇÑ´Ù. ±×·³... À¯¿ì³ªÀÇ ÀÌ»Û ¾ó±¼ÀÌ Èæ¹éÀ¸·Î Ãâ·ÂµÈ´Ù. ´ÙÀÌ·ºÆ® X 9.x¿¡¼´Â ¼ÎÀÌ´õ »ç¿ë¹ýÀÌ ¾à°£ ¹Ù²î¾ú´Ù. [Æß] DirectX ½Ç½Ã°£ ·»´õ¸µ ½ÇÀü Å×Å©´Ð - Á¤º¸ ¹®È»ç http://www.t-pot.com |