 |
Ver Mensagens sem resposta | Ver Tópicos Activos
| [ +/- ]
[ Data/Hora: 23 Mai 2013, 10:58 ]
|
|
| Autor |
Mensagem |
|
gokernel_007
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 17 Out 2010, 16:14 |
|
| Membro Sênior |
 |
Registado: 07 Dez 2009, 18:03 Mensagens: 438
|
OK... instalei o DX 9. Mas vou usar o dois 8/9. Testem a velocidade do DX 8 com o DX 9. Esse eh o exemplo do tigre girando... Code: // FILE: Meshes.cpp
#include <d3dx8.h> #include <mmsystem.h> #include <time.h> #include <stdio.h>
//----------------------------------------------------------------------------- // Global variables //----------------------------------------------------------------------------- LPDIRECT3D8 g_pD3D = NULL; // Used to create the D3DDevice LPDIRECT3DDEVICE8 g_pd3dDevice = NULL; // Our rendering device
LPD3DXMESH g_pMesh = NULL; // Our mesh object in sysmem D3DMATERIAL8* g_pMeshMaterials = NULL; // Materials for our mesh LPDIRECT3DTEXTURE8* g_pMeshTextures = NULL; // Textures for our mesh DWORD g_dwNumMaterials = 0L; // Number of mesh materials
//----------------------------------------------------------------------------- // Name: InitD3D() // Desc: Initializes Direct3D //----------------------------------------------------------------------------- HRESULT InitD3D( HWND hWnd ) { // Create the D3D object. if( NULL == ( g_pD3D = Direct3DCreate8( D3D_SDK_VERSION ) ) ) return E_FAIL;
// Get the current desktop display mode, so we can set up a back // buffer of the same format D3DDISPLAYMODE d3ddm; if( FAILED( g_pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm ) ) ) return E_FAIL;
// Set up the structure used to create the D3DDevice. Since we are now // using more complex geometry, we will create a device with a zbuffer. D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = d3ddm.Format; d3dpp.EnableAutoDepthStencil = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
// Create the D3DDevice if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice ) ) ) { return E_FAIL; }
// Turn on the zbuffer g_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
// Turn on ambient lighting g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0xffffffff );
return S_OK; }
//----------------------------------------------------------------------------- // Name: InitGeometry() // Desc: Load the mesh and build the material and texture arrays //----------------------------------------------------------------------------- HRESULT InitGeometry() { LPD3DXBUFFER pD3DXMtrlBuffer;
// Load the mesh from the specified file if( FAILED( D3DXLoadMeshFromX( "Tiger.x", D3DXMESH_SYSTEMMEM, g_pd3dDevice, NULL, &pD3DXMtrlBuffer, &g_dwNumMaterials, &g_pMesh ) ) ) { return E_FAIL; }
// We need to extract the material properties and texture names from the // pD3DXMtrlBuffer D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer(); g_pMeshMaterials = new D3DMATERIAL8[g_dwNumMaterials]; g_pMeshTextures = new LPDIRECT3DTEXTURE8[g_dwNumMaterials];
for( DWORD i=0; i<g_dwNumMaterials; i++ ) { // Copy the material g_pMeshMaterials[i] = d3dxMaterials[i].MatD3D;
// Set the ambient color for the material (D3DX does not do this) g_pMeshMaterials[i].Ambient = g_pMeshMaterials[i].Diffuse; // Create the texture if( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, d3dxMaterials[i].pTextureFilename, &g_pMeshTextures[i] ) ) ) { g_pMeshTextures[i] = NULL; } }
// Done with the material buffer pD3DXMtrlBuffer->Release();
return S_OK; }
//----------------------------------------------------------------------------- // Name: Cleanup() // Desc: Releases all previously initialized objects //----------------------------------------------------------------------------- VOID Cleanup() { if( g_pMeshMaterials != NULL ) delete[] g_pMeshMaterials;
if( g_pMeshTextures ) { for( DWORD i = 0; i < g_dwNumMaterials; i++ ) { if( g_pMeshTextures[i] ) g_pMeshTextures[i]->Release(); } delete[] g_pMeshTextures; } if( g_pMesh != NULL ) g_pMesh->Release(); if( g_pd3dDevice != NULL ) g_pd3dDevice->Release();
if( g_pD3D != NULL ) g_pD3D->Release(); }
//----------------------------------------------------------------------------- // Name: SetupMatrices() // Desc: Sets up the world, view, and projection transform matrices. //----------------------------------------------------------------------------- VOID SetupMatrices() { // For our world matrix, we will just leave it as the identity D3DXMATRIX matWorld; D3DXMatrixRotationY( &matWorld, timeGetTime()/1000.0f ); g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
// Set up our view matrix. A view matrix can be defined given an eye point, // a point to lookat, and a direction for which way is up. Here, we set the // eye five units back along the z-axis and up three units, look at the // origin, and define "up" to be in the y-direction. D3DXMATRIX matView; D3DXMatrixLookAtLH( &matView, &D3DXVECTOR3( 0.0f, 3.0f,-5.0f ), &D3DXVECTOR3( 0.0f, 0.0f, 0.0f ), &D3DXVECTOR3( 0.0f, 1.0f, 0.0f ) ); g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
// For the projection matrix, we set up a perspective transform (which // transforms geometry from 3D view space to 2D viewport space, with // a perspective divide making objects smaller in the distance). To build // a perpsective transform, we need the field of view (1/4 pi is common), // the aspect ratio, and the near and far clipping planes (which define at // what distances geometry should be no longer be rendered). D3DXMATRIX matProj; D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f ); g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj ); }
//----------------------------------------------------------------------------- // Name: Render() // Desc: Draws the scene //----------------------------------------------------------------------------- VOID Render() { // Clear the backbuffer and the zbuffer g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 ); // Begin the scene g_pd3dDevice->BeginScene();
// Setup the world, view, and projection matrices SetupMatrices();
// Meshes are divided into subsets, one for each material. Render them in // a loop for( DWORD i=0; i<g_dwNumMaterials; i++ ) { // Set the material and texture for this subset g_pd3dDevice->SetMaterial( &g_pMeshMaterials[i] ); g_pd3dDevice->SetTexture( 0, g_pMeshTextures[i] ); // Draw the mesh subset g_pMesh->DrawSubset( i ); }
// End the scene g_pd3dDevice->EndScene(); // Present the backbuffer contents to the display g_pd3dDevice->Present( NULL, NULL, NULL, NULL ); }
//----------------------------------------------------------------------------- // Name: MsgProc() // Desc: The window's message handler //----------------------------------------------------------------------------- LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_DESTROY: PostQuitMessage( 0 ); return 0; }
return DefWindowProc( hWnd, msg, wParam, lParam ); }
time_t t, _t; int fps; //----------------------------------------------------------------------------- // Name: WinMain() // Desc: The application's entry point //----------------------------------------------------------------------------- INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { // Register the window class WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, "D3D Tutorial", NULL }; RegisterClassEx( &wc );
// Create the application's window HWND hWnd = CreateWindow( "D3D Tutorial", "D3D Tutorial 06: Meshes", WS_OVERLAPPEDWINDOW, 100, 100, 800, 600, GetDesktopWindow(), NULL, wc.hInstance, NULL );
// Initialize Direct3D if( SUCCEEDED( InitD3D( hWnd ) ) ) { // Create the scene geometry if( SUCCEEDED( InitGeometry() ) ) { // Show the window ShowWindow( hWnd, SW_SHOWDEFAULT ); UpdateWindow( hWnd );
// Enter the message loop MSG msg; ZeroMemory( &msg, sizeof(msg) ); while( msg.message!=WM_QUIT ) { if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else { //############################################################# // so modifiquei aqui. //############################################################# fps++; t = time ( NULL ); if ( t != _t ) { _t = t; printf("FPS: %d\n", fps); fps=0; } Render(); } } } }
// Clean up everything and exit the app Cleanup(); UnregisterClass( "D3D Tutorial", wc.hInstance ); return 0; }
|
|
| Topo |
|
 |
|
vcaires
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 17 Out 2010, 16:59 |
|
| Membro |
 |
Registado: 16 Nov 2006, 19:04 Mensagens: 48 Localização: Brasil
|
renanrosa_java Escreveu: tá na mão, camera 3º pessoa e MD2 http://www.4shared.com/file/QOg_vaD_/MD ... essoa.htmlsó falta implementar a parte de mecher o mouse e girar em volta do modelo, mas isso é apenas colocar o mesmo procedimento das teclas "D" (direita) e A (esquerda) ou as setas pros lados Maravilha renanrosa_java, funfo de primeira no MVS C++ 2008!! Agora vou fazer o movimento com o mouse, embora que no openGL eu tenho a parte da camera de movimento de teclado e mouse, menos o MD2 lá, vou implementar uma base do que tem aqui, lá e com a biblioteca openGL =] Você tem algum exemplo de colisão desse MD2 andar no plano e subir em algum relevo, tipo uma escada, algo assim..
_________________ by \/i?i ©ªi®€$..
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 17 Out 2010, 17:06 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
Tudo que você ta pedindo tem no livro do Andre Santee, recomendo dar uma lida nele Ou pegar alguns tutoriais pela net tenta aprender como se faz  é melhor que pegar samples prontos []'s
_________________ Meu blog http://mateusvitali.wordpress.com/
|
|
| Topo |
|
 |
|
renanrosa_java
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 17 Out 2010, 21:22 |
|
| Membro Sênior |
 |
Registado: 26 Jun 2008, 11:35 Mensagens: 434 Localização: Brasil
|
vcaires Escreveu: Você tem algum exemplo de colisão desse MD2 andar no plano e subir em algum relevo, tipo uma escada, algo assim.. como o Vitali disse, tem tudo nos exemplos do André Santee, e como ele disse: Vitali Escreveu: recomendo dar uma lida nele Ou pegar alguns tutoriais pela net tenta aprender como se faz é melhor que pegar samples prontos realmente é melhor mesmo, ai depois acompanha com o sample, mas sempre indo em tutoriais
_________________
|
|
| Topo |
|
 |
|
gokernel_007
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 18 Out 2010, 07:24 |
|
| Membro Sênior |
 |
Registado: 07 Dez 2009, 18:03 Mensagens: 438
|
|
| Topo |
|
 |
|
Vitali
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 18 Out 2010, 07:59 |
|
| Colaborador(a) |
 |
Registado: 02 Set 2004, 20:01 Mensagens: 1801 Localização: São Carlos, SP
|
|
| Topo |
|
 |
|
gokernel_007
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 18 Out 2010, 10:49 |
|
| Membro Sênior |
 |
Registado: 07 Dez 2009, 18:03 Mensagens: 438
|
Valeu Vitali... eu não conhecia algo sobre o andré. Cliquei no link para ver o preço mas não estava disponível o produto online para venda. Quando tiver oportunidade vou V se encontro em uma loja física. EDITADO... EDITADO.... DELETATO... DELETADO... .... Abraços. gokernel gokernel@hotmail.com
|
|
| Topo |
|
 |
|
renanrosa_java
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 18 Out 2010, 16:07 |
|
| Membro Sênior |
 |
Registado: 26 Jun 2008, 11:35 Mensagens: 434 Localização: Brasil
|
gokernel_007 Escreveu: Valeu Vitali... eu não conhecia algo sobre o andré. Cliquei no link para ver o preço mas não estava disponível o produto online para venda. Quando tiver oportunidade vou V se encontro em uma loja física. EDITADO... EDITADO.... DELETATO... DELETADO... .... Abraços. gokernel gokernel@hotmail.comesse livro é +- uns 70 reais, mas sei lá, o problema dele é que vai mostrando trechos de códigos e se vai acompanhando no final não compila, tipo, é mais pra quem já sabe por onde começar e onde enfiar os códigos, e tambem a metade dele é de C++ que acho que não deveria ter, já que quem vai desenvolver jogos teria que ter alguma noção de programação e na linguagem que vai desenvolver (C++)
_________________
|
|
| Topo |
|
 |
|
bcsanches2
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 18 Out 2010, 16:10 |
|
Registado: 23 Nov 2003, 18:58 Mensagens: 2812 Localização: Brasil
|
Quote: e tambem a metade dele é de C++ que acho que não deveria ter, já que quem vai desenvolver jogos teria que ter alguma noção de programação e na linguagem que vai desenvolver (C++) Dai é livro mais para iniciantes. A maioria dos livros são assim, se ler na capa algo do tipo: "Programação de X com C++", entenda que 50% ou mais do livro vai ser conceitos básicos do C++ e o resto o tal assunto X. Da mesma forma que quando você compra um livro do tipo: "Terrain programming with DirectX9", mais da metade do livro é falando de DirectX9 e conceitos básicos, dai o resto fala rapidamente dos demais tópicos. Para quem não conhece nada é uma boa, mas para quem já domina a linguagem / API, tem que procurar muito bem. T+
_________________ Quer aprender a fazer jogos? http://www.pontov.com.br/ Meus jogos
|
|
| Topo |
|
 |
|
renanrosa_java
|
Assunto da Mensagem: Re: Ajuda caregando MD2 com camera Enviado: 18 Out 2010, 18:07 |
|
| Membro Sênior |
 |
Registado: 26 Jun 2008, 11:35 Mensagens: 434 Localização: Brasil
|
gokernel_007 Escreveu: Valeu pessoal... acho que o problema eh no meu Note mesmo. MOTIVO: O DX 9 nao esta instalado... é porque quando instalo o DX 9 e tento rodar algo pessado... APARECE A TELA AZUL DA MORTE E O NOTE DAR UM REBOOT. EITA NOTE BOM MEU ... TEM ATÉ PREVENÇÃO CONTRA O EFEITO ESTUFA... NUN FRITA LOL. Abraços. kkkkkkkkkkkkkkkkkkk e ai, como tá indo ? posta fotos depois do projeto
_________________
|
|
| Topo |
|
 |
Quem está ligado: |
Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante |
|
Criar Tópicos: Proibído Responder Tópicos: Proibído Editar Mensagens: Proibído Apagar Mensagens: Proibído
|
|
 |
|

|
 |