DirectX 9를 인스턴스화한 후 하드웨어를 복원하려면 어떻게 해야 합니까?

PC가 느리게 실행되고 있습니까? 알 수 없는 오류 메시지와 충돌이 발생합니까? 그렇다면 Windows 오류를 수정하고 최적의 성능을 복원하기 위한 Reimage � 최고의 소프트웨어가 필요합니다.

이 상황 가이드에서는 전문가들이 directx 유지 하드웨어 생성을 유발할 수 있다고 주장하는 몇 가지 가능한 원인을 설명하고 일반적으로 이 문제를 해결하기 위해 시도할 수 있는 가능한 방법을 공개합니다.

좋아, 나는 함께 이것에 대한 작업을 끝내고 인터넷에서 찾은 것이 있습니다. 특정 셰이더를 인스턴스화하려고 할 때 미리 컴파일 및 렌더링되었습니다. 이제 컴파일되지 않고 어떻게 지내는지 궁금합니다. 방금 편집했고 방금 얻은 렌더로 선택할 수 있는 간단한 캠코더가 생성됩니다.

hlsl은 표시된 것과 거의 동일합니다.그리고 메인 헤더 파일그리고 비디오 카메라 헤드

<사전><코드>/**************************************** ****** ******** ** 2 . ********************* MORROWLAND가 제공하는 FARTUN을 위한 튜토리얼 ************** ********* ** * – ***************************************** *** 프로젝트 이름 : Camera2 ** 프로젝트 설명: 카메라 이동 및 회전 * * 프로젝트 유형: DirectX 3d 이미지 ** 작성자: Ronnie Andre Reierstad ** 웹 사이트: www.morrowland.com ** 이메일: [email protected] 월드 와이드 웹 ** 버전: 영어(영국) ** 날짜: 12/18/2003 ****************************** ****** ************************ **** ** ************* – #include “main.h “HDC hDC는 NULL과 같습니다. // 개인 GDI 장치 ContextHWND hWnd = NULL; // 창에 대한 각 핸들을 포함합니다. HINSTANCE hInstance; // 응용 프로그램 인스턴스를 포함합니다. LPDIRECT3D9 pD3D = NULL; // DirectX 3 버전 9LPDIRECT3DDEVICE9 pD3DDevice = NULL; // 장치 키 DirectX 3D 렌더[256]; // 키보드에 사용되는 배열 Routinebool active=TRUE; // 전체 화면으로 참을 원하면 창 포커스 flagSet 설정 Defaultbool fullscreen=TRUE; // 기본으로 이동하여 표시기를 전체 화면으로 설정 wrld[300];// Textures.LPDIRECT3DTEXTURE9 Texture = NULL;UINT uPasses; //전시 패스에 사용D3DXMATRIX matTrans;D3DXMATRIX matView; D3DXMATRIX worldViewProjection;D3DXMATRIX project_matrix;D3DXMATRIX IdentityMatrix;D3DXMATRIX translation_matrix;D3DXMATRIXrotation_matrix;D3DXMATRIX modelViewProj; // 부동 소수점 큐브 회전은 g_fSpinY;float g_fSpinX;float g_fSpinZ;float b;int f2는 sizeof(FLOAT)*2를 의미합니다. int f3는 sizeof(FLOAT)*3를 의미합니다. int f4는 sizeof(FLOAT)* 4; D3DVERTEXELEMENT9 SDEC [] = 0, 2, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0, // POS, F4, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 3 // 2 Tex0, F4 + F2, D3DDECLTYPE_FLOAT3, D3DDECLUSAGE_TEX0 2 // Tex0 , 한 쌍의 , TEXCOORD f4 + F2, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD // 일반 7, f2 + f3 + F4 , FDEF3 , D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAUL , D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_BINORMAL , nil , // 바이노멀 D3DDECCLUSAGE_BINORMAL, 6 , // 바이노멀 D3DDECLUSAGE_BINORMAL, 0인 // 바이노멀 ,// //////////////////NE ////// /// //////NEW/////////// /// /////NEW//////////////// CCera objCamera; LRESULT 콜백 WndProc(HWND, UINT, WPARAM, LPARAM); // WndProc에 대한 선언///////////////////////////////////////////// // /////// .X 파일 로드///////////////////////////// /// // /// 각각에 대해 ///////////////////void LoadXFile_NoTexture( char* MeshFilename, ID3DXMesh* &Mesh) //메쉬 제로 및 버퍼 메시 생성 Equalso 0; ID3DXBuffer* MeshBuffer는 0을 의미합니다. // 최적화된 파일도 D3DXLoadMeshFromX( MeshFilename, D3DXMESH_MANAGED, pD3DDevice, &MeshBuffer, zero, 0, 0, &Mesh); Mesh->OptimizeInplace(D3DXMESHOPT_ATTRSORT // 주어진 파일의 설정 효과 및 비어 있는 경우 균일 던지기 오류 LoadEffect(char* EffectFilename, ID3DXEffect* &d3dEffect) ID3DXBuffer* d3dErrors = NULL; D3DXCreateEffectFromFile(pD3DDevice, EffectFilename ,NULL, ATION3NULL, D3DXMISHZADER_, D3DX , &d3dEffect … &d3dErrors), if(d3dErrors) MB_ICONEXCLAMATION); d3dErrors->Release(); 종료(-1); HRESULT 60분 = d3dEffect->ValidateTechnique(d3dEffect->GetTechnique(0));//함수 끝////////////////////////// ///////////////////////////////////////////////////// / 각 /////////// D3D 장면 크기 조정//////////////////// //// ////// /// / ////////////////////////////// ////// //////// ////// /void ReSizeD3DScene(int width, int height) // 이벤트에서 DX 창의 크기를 조정하고 초기화합니다(height==0) // 기본적으로 0으로 나누기 height = 1; // 크기를 D3DXMatrixPerspectiveFovLH(&projection_matrix, 45.0f, (float)640/(float)480, 1.0f, 1000.0f )와 동일하게 만듭니다. pD3DDevice->SetTransform(D3DTS_PROJECTION, &(D3DMATRIX)projection_matrix); ///////////////////////////////////////////// // // / / / /////////////////////////////////////// DIRECT3D InitD3D() 초기화/ // / /////////////////////////////////////// /////// /// /// //////////////////////////int D3DXMatrixIdentity(&projection_matrix); D3DXMatrixPerspectiveFovLH(&projection_matrix, 45.0f, (float)640/(float)480, 0.1f, 1000.0f ); pD3DDevice->SetTransform(D3DTS_PROJECTION, &(D3DMATRIX)projection_matrix); pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE); // 버퍼 Z(깊이 버퍼) pD3DDevice->SetRenderState(D3DRS_CULLMODE, TRUE); // 뒷면 제거 비활성화 pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE); // 조명 끄기//NEW/////////////////NEW//////////////////NEW//// // //////////NEW///////////////// // 위쪽 뷰 위치(벡터) objCamera.Position_Camera(-15, 0.5f , -15 , 7, 0.5f, 0, 0, 1, 0);//신규//////////////////////////////// // 및 ////NEW//////////////////NEW//////////////// LoadEffect(“Instance.fx” , 효과 셰이더) ; LoadxFile_Notexture(“sphere.x”, Cubemesh); DWORD TatTrees는 300입니다. D3DVERTEXELEMENT9 verexelementsGeMeDe_float3, D3DDECLMETHOD_DEFAULT, d3ddeclusage_Position, 0, 0, 12, D3DDECLTYPE_FLOAT3, d3ddeclmet_default, d3ddeclusage_normal, 0, 0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0, 1, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1, 1, 16, D3DDECLTYPE_FLOAT4 ; gvSizegeom = D3DXGetDeclVertexSize(VertexElementsGeom, 0); gvSizeInst는 D3DXGetDeclVertexSize(VertexElementsGeom, 1);pD3DDevice->CreateVertexDeclaration(VertexElementsGeom, &ShaderDeclaration이 선호하는 hx-safe 소나무 모델이 되었습니다)를 의미합니다. >GetIndexBuffer ( &IB) ;pD3DDevice- >CreateVertexBuffer (gvSizeInst 7 . numTrees, D3DUSAGE_WRITEONLY, NULL, D3DPOOL _MANAGED, &gVBufferInst, NULL);D3DXVECTOR3 ppos, prot;for(int ; nited Kingdom =0) 큰 위치 및 회전자 pos .x는 rand() naught 퍼센트 1000입니다. ppos.y = 0; ppos.z는 우연히 rand() 1000; D3DXMatrixIdentity(% &wrld[k]); D3DXMatrixTranslation(&translation_matrix, ppos.x, ppos.y, ppos.z); D3DXMATRIX* pData는 0을 의미합니다.gVBufferInst->Lock(0, (LPVOID*)&pData, 0, 0);memcpy(pData, wrld, gvSizeInst numTrees) ;gVBufferInst->Unlock();DWORD numVert = CubeMesh->GetNumVertic ;DWORD numInd는 CubeMesh->GetNumFaces()를 의미합니다. // 스티커를 로드합니다. if(D3DXCreateTextureFromFile(pD3DDevice, “gothic.png”, &Texture) != D3D_OK) 장점 false; // 정점 선언을 생성합니다. //if(pD3DDevice->CreateVertexDeclaration(SDec, &ShaderDeclaration) D3D_OK) != // 수입 거짓; //CubeMesh->CloneMesh(D3DXMESH_MANAGED, SDec, pD3DDevice, &CubeMesh);//이미지 레벨 1 pD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); pD3DDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); pD3DDevice->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR); pD3DDevice->SetSamplerState(0, D3DSAMP_MAXANISOTROPY, 16); // 이 각각의 텍스처가 타일임을 나타냅니다. pD3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP); pD3DDevice->SetSamplerState(0, D3DTADDRESS_WRAP); d3dsamp_addressv, TRUE를 반환합니다.//////////////////////////////////////////// ///// ////////////////////////////////////// ////// // / /// //////////////////////////////// /// DIRECT3D 렌더링/////// // // /// //////////////////////////// ////// ////////// // // /// //////////////////////// ////int DrawD3DScene() { //NEW///////// // // /// //NEW///////////////////NEW //////// //////////NEW// // // /// //////// // Direct3D 대상 카메라에 다음 함수 사용 // 행렬 D3DXMatrixLookAtLH(&matView, // 행렬 조회 업데이트 방법 &D3DXVECTOR3(objCamera.mPos.x, objCamera .mPos. y , objCamera.mPos.z) , &D3DXVECTOR3(objCamera.mView.x, objCamera.mView.y, objCamera.mView.z), &D3DXVECTOR3(objCamera.mUp.x : objCamera.mUp.y, objCamera.mUp .z) ) ; pD3DDevice->SetTransform(D3DTS_VIEW,&matView);// 변경 적용pD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,0.0f;0.0f,0.0f;), 01 pD3DDevice->장면 시작(); // 장면 시작 D3DXMATRIX matWorld; D3DXMatrixIdentity(&matWorld); // 큐브 회전 제어 g_fSpinX는 g_fSpinX + 0.5를 의미합니다. g_fSpinY는 g_fSpinY + 0.5와 유사합니다. g_fSpinZ는 g_fSpinZ + 0.5를 의미합니다. D3DXMatrixTranslation( &translation_matrix, 1, 0.0f,0 ); // x,y,z 회전으로 정의됨 D3DXMatrixRotationYawPitchRoll(&rotation_matrix, D3DXToRadian(g_fSpinX), D3DXToRadian(g_fSpinY), D3DXToRadian(g_fSpinZ));

이 Windows 수정 도구로 잘못 갈 수 없습니다. 문제가 있는 경우 클릭하면 문제가 해결됩니다.