Skip to main content
GameDev.net gamedev.net
🔒 Locked

A newbie's d3d problem

Started by Badluck Aug 17, 2001 at 9:25 PM 0 replies 300+ views
Original Post
Badluck
Badluck
this it part of the d3d program i write, there is one problem: "steel.bmp" is a very good texture and it can connect with itself perfectly, but when i use it in my program, it connects bad, it seems that some parts are brighter. and...how to use >1 kind of texture? i mean, one vertex has a texture while another vertex has another kind of texture. how to make >1 kind of texture alpha blended in one vertex? #include "rpg_demo_iii.h" LPDIRECT3D8 pD3D=NULL; LPDIRECT3DDEVICE8 pDev=NULL; LPDIRECT3DVERTEXBUFFER8 pVB=NULL; //LPDIRECT3DINDEXBUFFER8 pIB=NULL; LPDIRECT3DTEXTURE8 pT=NULL; int IndexNum; int VertNum; /* VERTEX vertex[]= { -1,-5,0,0x00ffffff,0.0,0.0, -1, 5,0,0x00ffffff,0.0,1.0, 1,-5,0,0x00ffffff,1.0,0.0, 1, 5,0,0x00ffffff,1.0,1.0 }; WORD index[]={0,1,2,1,2,3}; */ VERTEX *vertex; //WORD *index; void InitObject() { //-----------------------------Init Floor---------------------------- float w=2.0f; float h=4.0f; vertex=new VERTEX[w*h*6]; VertNum=w*h*6; int p=0; for (float x=0;xGetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm))) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp; ZeroMemory(&d3dpp, sizeof(d3dpp)); d3dpp.Windowed=FALSE; d3dpp.hDeviceWindow=hwnd; d3dpp.SwapEffect=D3DSWAPEFFECT_FLIP; d3dpp.BackBufferCount=2; d3dpp.BackBufferWidth=SCREEN_WIDTH; d3dpp.BackBufferHeight=SCREEN_HEIGHT; d3dpp.BackBufferFormat=d3ddm.Format; d3dpp.EnableAutoDepthStencil=TRUE; d3dpp.AutoDepthStencilFormat=D3DFMT_D16; d3dpp.FullScreen_RefreshRateInHz=D3DPRESENT_RATE_DEFAULT; d3dpp.FullScreen_PresentationInterval=D3DPRESENT_INTERVAL_IMMEDIATE; //-----------------------------Create D3D Device--------------------- if( FAILED( pD3D->CreateDevice( D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp,&pDev))) return E_FAIL; //-----------------------------Create Matrix------------------------- D3DXMATRIX matWorld; D3DXMatrixIdentity(&matWorld); pDev->SetTransform(D3DTS_WORLD,&matWorld); D3DXMATRIX matProj; D3DXMatrixPerspectiveFovLH(&matProj,D3DX_PI/4,1.0f,1.0f,500.0f); pDev->SetTransform(D3DTS_PROJECTION,&matProj); //-----------------------------Set Render State---------------------- pDev->SetRenderState(D3DRS_LIGHTING,FALSE); pDev->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE); pDev->SetRenderState(D3DRS_ZENABLE,TRUE); //-----------------------------Setup Vertex Buffer------------------- pDev->CreateVertexBuffer (sizeof(VERTEX)*VertNum, D3DUSAGE_DONOTCLIP|D3DUSAGE_WRITEONLY, D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1, D3DPOOL_DEFAULT,&pVB); VERTEX *pV; pVB->Lock(0,0,(BYTE **)&pV,0); memcpy(pV,vertex,sizeof(VERTEX)*VertNum); pVB->Unlock(); pDev->SetVertexShader(D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1); pDev->SetStreamSource(0,pVB,sizeof(VERTEX)); //-----------------------------Setup Index Buffer-------------------- /* pDev->CreateIndexBuffer(sizeof(index), D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &pIB); WORD *pI; pIB->Lock(0,0,(BYTE **)&pI,0); memcpy(pI,index,sizeof(index)); pIB->Unlock(); pDev->SetIndices(pIB,0);*/ //-----------------------------Setup Texture------------------------- D3DXCreateTextureFromFile(pDev,"steel.bmp",&pT); pDev->SetTexture(0, pT); return S_OK; } void CloseD3D(void) { if(pVB!=NULL) pVB->Release(); /* if(pIB!=NULL) pIB->Release();*/ if(pT!=NULL) pT->Release(); if(pDev!=NULL) pDev->Release(); if(pD3D!=NULL) pD3D->Release(); } void RenderD3D(void) { pDev->Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(0,0,0),1.0f,0); pDev->BeginScene(); MoveCamera(); pDev->DrawPrimitive(D3DPT_TRIANGLELIST,0,VertNum/3); // pDev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,IndexNum,0,IndexNum/3); pDev->EndScene(); pDev->Present(NULL,NULL,NULL,NULL); } void MoveCamera() { rad+=0.01f; /* D3DXMATRIX matWorld; D3DXMatrixRotationY(&matWorld,rad); pDev->SetTransform(D3DTS_WORLD,&matWorld);*/ D3DXMATRIX matView; D3DXMatrixLookAtLH(&matView,&D3DXVECTOR3(0,-2.0f+rad,1.05), &D3DXVECTOR3(0.0f,-1.0f+rad,0.0f), &D3DXVECTOR3(0.0f,1.0f,0.0f)); pDev->SetTransform(D3DTS_VIEW,&matView); } I am very badluck...
------------------------------I am very badluck...

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.