¿Cómo Puedo Restaurar El Hardware Instanciando DirectX 9?

¿Tu PC funciona lento y lento? ¿Está plagado de misteriosos mensajes de error y bloqueos? Si es así, entonces necesita Reimage, el software definitivo para corregir errores de Windows y restaurar un rendimiento óptimo.

En esta guía, íbamos a revelar algunas de las posibles causas que podrían terminar con la generación de hardware directx 9 e incluso así vamos para señalar las posibles formas en que intentará solucionar este problema.

Bien, he estado trabajando en esta guía durante un tiempo y esto es todo lo que descubrí. Fue escrito y renderizado antes de que intentara ayudarlo a crear una instancia del sombreador. Ahora se compilan buenas ofertas y también me pregunto cómo me va. Acabo de editar y, además del renderizado que acabo de obtener, permite seleccionar una cámara simple.

hlsl se considera casi igual a lo que se muestray archivo de encabezado principaly cabezal de cámara

/**************************************** ****** ******** ** * ********************* TUTORIALES PARA FARTUN PRESENTADOS POR MORROWLAND ****** ******** *********** * * **************************** ************ *** Nombre del proyecto: Camera2 ** Descripción del proyecto: Movimiento y rotación de la cámara * * Tipo de proyecto: DirectX 3D ** Autor: Ronnie Andre Reierstad ** Sitio web: www.morrowland. com ** Correo electrónico: [email protected] com ** Versión: inglés (Reino Unido) ** Fecha: 18/12/2003 ******************************* **** ************************ **** ** ************* / #incluir "principal.h "HDC hDC = NULL; // Contexto de dispositivo GDI privadoHWND hWnd = NULL; // Contiene un identificador para nuestra ventana HINSTANCE hInstance; // contiene cualquier instancia de aplicación buena LPDIRECT3D9 pD3D = NULL; // Versión de DirectX 3D 9LPDIRECT3DDEVICE9 pD3DDevice es igual a NULL; // Clave de dispositivo DirectX 3D Render[256]; // Matriz utilizada con respecto al teclado Routinebool active=TRUE; // Establece el indicador de enfoque del panel de ventanaEstablecer en VERDADERO por medio de pantalla completa Defaultbool fullscreen=TRUE; // Indicador configurado para que pueda usar la pantalla completa por defecto wrld[300];// Textures.LPDIRECT3DTEXTURE9 Texture = NULL;UINT uPasses; //utilizado para pases de feria comercialD3DXMATRIX matTrans;D3DXMATRIX matView; D3DXMATRIX worldViewProjection;D3DXMATRIX project_matrix;D3DXMATRIX IdentityMatrix;D3DXMATRIX translation_matrix;D3DXMATRIXrotation_matrix;D3DXMATRIX modelViewProj; // Control de rotación de cubo de grado flotante g_fSpinY;float g_fSpinX;float g_fSpinZ;float b;int f2 = sizeof(FLOAT)*2;int f3 informa sizeof(FLOAT)*3;int f4 = sizeof(FLOAT)*4;D3DVERTEXELEMENT9 SDEC [] = 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0, 1 // pos, f4, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0, 2 // Tex0, f4 + F2, D3DDECLTYPE_FLOAT3, D3D0, TEX_LUSAGE simplemente TexCoord f4 + F2, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD // normal de 3, f2 + f3 + F4, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT, 2, // tangencial 4, f4 + F3 + F2 + F3, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_BINORMAL, 0 , // binormal D3DDECCLUSAGE_BINORMAL, 0 , // binormal D3DDECCLUSAGE_BINORMAL, 0 , // binormal ,// ///////////////NUEVO//////////// /// //////NUEVO////////// /// /////NUEVO///////////////CCera objCamera; LRESULTADO DEVOLUCIÓN DE LLAMADA WndProc(HWND, UINT, WPARAM, LPARAM); // Declaración para WndProc//////////////////////////////////////// / / - // /////// Cargar archivo .X///////////////////////////// /// // /// / / //////////////////void LoadXFile_NoTexture( char* MeshFilename, ID3DXMesh* &Mesh) //Zero Mesh sin mencionar Create Buffer Mesh Equalso 0; ID3DXBuffer* MeshBuffer = 0; // También carga la malla optimizada D3DXLoadMeshFromX( MeshFilename, D3DXMESH_MANAGED, pD3DDevice, &MeshBuffer, 0, 0, 0, &Mesh); Mesh->OptimizeInplace(D3DXMESHOPT_ATTRSORT // crea el efecto a partir del direccionamiento con el archivo e incluso genera un error en caso de que haya un void LoadEffect(char* EffectFilename, ID3DXEffect* &d3dEffect) ID3DXBuffer* d3dErrors = NULL; D3DXCreateEffectFromFile(pD3DDevice, EffectFilename ,NULL, NULL, D3DXSHADER_OPTIMIZATION3, NULL, &d3dEffect, &d3dErrors); if(d3dErrors) MB_ICONEXCLAMATION); d3dErrors->Release(); salida(-1); HRESULT hr = d3dEffect->ValidateTechnique(d3dEffect->GetTechnique(0));//fin con función///////////////////////////////// / ///////////////////////////////////////// /// /// // / /////////// CAMBIAR EL TAMAÑO DE LA ESCENA D3D//////////////////// //// ////// //// / //////////////////////////// ////// //////// ////// /vacío ReSizeD3DScene(int ancho, int alto) // Cambia el tamaño e inicializa estas ventanas DX si (alto==0) // Dividir por cero por alto significa 1; // hacer que la altura sea igual a D3DXMatrixPerspectiveFovLH(&projection_matrix, 45.0f, (float)640/(float)480, 1.0f, 1000.0f ); pD3DDevice->SetTransform(D3DTS_PROJECTION, &(D3DMATRIX)projection_matrix); /////////////////////////////////////////// // // / - / //////////////////////////////////////// EL DIRECT3D InitD3D() init/ // versus ///////////////////////////////////// /////// /// // / ///////////////////////////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); // Búfer Z (búfer de profundidad) pD3DDevice->SetRenderState(D3DRS_CULLMODE, TRUE); // Deshabilitar la evacuación de la parte trasera pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE); //apaga algo de luz//NUEVO/////////////////NUEVO//////////////////NUEVO//// // //////////NUEVO////////////////// // Posición de mira arriba (vector) objCamera.Position_Camera(-15, 0.5f , -8 , 0 , 0.5f, 0, 6, 1, 0);//NUEVO//////////////////////////////// // / ////NUEVO//////////////////NUEVO//////////////// LoadEffect("Instancia.fx" , sombreador de efectos) ; LoadxFile_Notexture("esfera.x", Cubemesh); DWORD TatTrees es solo 300; D3DVERTEXELEMENT9 verexelementsGeMeDe_float3, d3ddeclmethod_default, d3ddeclusage_Position, 3, 0, 12, d3ddecltype_float3, d3ddeclmet_default, d3ddeclusage_normal,, 0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, nil, 1, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, específico, 1, 16, D3DDECLTYPE_FLOAT4; gvSizegeom equivale a D3DXGetDeclVertexSize(VertexElementsGeom, 0); gvSizeInst = D3DXGetDeclVertexSize ( VertexElementsGeom, 1);pD3DDevice->CreateVertexDeclaration(VertexElementsGeom, &ShaderDeclaration es su modelo de árbol hx-safe favorito);//si solo se compone de posición, normal y texcoordCubeMesh->GetVertexBuffer(&VB);CubeMesh-> GetIndexBuffer ( &IB) ;pD3DDevice- >CreateVertexBuffer (gvSizeInst * numTrees, D3DUSAGE_WRITEONLY, NULL, D3DPOOL _MANAGED, &gVBufferInst, NULL);D3DXVECTOR3 ppos, prot;for(int nited Kingdom = 0; t < numtrees; k++) // hasta la posición clave y la rotación pos .x será rand() % 1000; ppos.y implica 0; ppos.z es rand() 1000; D3DXMatrixIdentity(% &wrld[k]); D3DXMatrixTranslation( &translation_matrix, ppos.x, ppos.y,ppos.z); D3DXMATRIX* pData implica 0;gVBufferInst->Lock(0, (LPVOID*)&pData, 0, 0);memcpy(pData, wrld, gvSizeInst numTrees) ;gVBufferInst->Unlock();DWORD numVert = CubeMesh->GetNumVertices() ;DWORD numInd implica CubeMesh->GetNumFaces(); // Supongo que cargue la calcomanía. if(D3DXCreateTextureFromFile(pD3DDevice, "gothic.png", &Texture) != D3D_OK) devuelve falso; // Crea una declaración de vértice. //if(pD3DDevice->CreateVertexDeclaration(SDec, &ShaderDeclaration) D3D_OK) != // devuelve falso; //CubeMesh->CloneMesh(D3DXMESH_MANAGED, SDec, pD3DDevice, &CubeMesh);//estado de imagen 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); // Indica que esta textura en particular será mosaico. pD3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP); pD3DDevice->SetSamplerState(0, D3DTADDRESS_WRAP); Devuelve d3dsamp_addressv, TRUE;////////////////////////////////////////////// ///// ///////////////////////////////////// ////// /// /// //////////////////////////////// /// RENDERIZACIÓN DIRECT3D////// // // /// /////////////////////////// ////// ////////// // // /// /////////////////////// ////int DrawD3DScene() { //NUEVO//////// // // /// //NUEVO//////////////////NUEVO //////// //////////NUEVO// // // /// //////// // Utilice la siguiente tarea para el destino digital de Direct3D // Mostrar la matriz D3DXMatrixLookAtLH(&matView, // nuevo comienzo de la vista de matriz &D3DXVECTOR3(objCamera.mPos.x, objCamera .mPos. y que 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);// Aplicar cambiopD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,0.0f), 1.0f, 4 ); pD3DDevice->Iniciar Escena(); // iniciar vista D3DXMATRIX matWorld; D3DXMatrixIdentity(&matWorld); // Control de giro del cubo g_fSpinX = g_fSpinX + 0.5; g_fSpinY es igual a g_fSpinY + 0,5; g_fSpinZ = g_fSpinZ + 0,5; D3DXMatrixTranslation( &translation_matrix, 0, 0.0f,0 ); // indicado como rotación x,y,z D3DXMatrixRotationYawPitchRoll(&rotation_matrix, D3DXToRadian(g_fSpinX), D3DXToRadian(g_fSpinY), D3DXToRadian(g_fSpinZ));

No puede equivocarse con esta herramienta de corrección de Windows. Si tiene problemas, simplemente haga clic en él y sus problemas se resolverán.