91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

DirectX3D 旋轉 彩色 球體 索引

資源截圖

代碼片段和文件信息

#include?“d3d9.h“??
#include?“d3dx9.h“??
??
#define??USE_INDEX_STRIP??
??
LPDIRECT3D9?g_pD3D=NULL;??
LPDIRECT3DDEVICE9?g_pd3dDevice=NULL;??
??
LPDIRECT3DVERTEXBUFFER9?g_pVB=NULL;??
LPDIRECT3DINDEXBUFFER9?g_pIB=NULL;??
??
int?g_rings=10;//y方向的環數??
int?g_segments=10;//xz平面的環數??
??
struct?CUSTOMVERTEX???
{??
????float?xyz;??
????D3DCOLOR?color;??
????float?nxnynz;??
};??
??
#ifndef?USE_INDEX_STRIP??
struct?MYINDEX??
{??
????WORD?_0_1_2;??
};??
#endif??
??
??
#define?D3DFVF_CUSTOM?(D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_NORMAL)??
??
HRESULT?InitD3D(HWND?hwnd)??
{??
??
????if?(NULL==(g_pD3D=Direct3DCreate9(D3D_SDK_VERSION)))??
????{??
????????return?E_FAIL;??
????}??
??
????D3DPRESENT_PARAMETERS?d3dpp;??
????ZeroMemory(&d3dppsizeof(d3dpp));??
????d3dpp.BackBufferFormat=D3DFMT_UNKNOWN;??
????d3dpp.Windowed=TRUE;??
????d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;??
????d3dpp.EnableAutoDepthStencil=TRUE;??
????d3dpp.AutoDepthStencilFormat=D3DFMT_D16;??
??
????if?(FAILED(g_pD3D->CreateDevice(?D3DADAPTER_DEFAULTD3DDEVTYPE_HAL?hwndD3DCREATE_SOFTWARE_VERTEXPROCESSING&d3dpp&g_pd3dDevice)))??
????{??
????????return?E_FAIL;??
????}??
??
????g_pd3dDevice->SetRenderState(D3DRS_ZENABLETRUE);??
????g_pd3dDevice->SetRenderState(D3DRS_LIGHTINGFALSE);??
????g_pd3dDevice->SetRenderState(D3DRS_CULLMODED3DCULL_NONE);??
??????
//??g_pd3dDevice->SetRenderState(D3DRS_FILLMODED3DFILL_WIREframe?);??
??
????return?S_OK;??
??
}??
??
??
HRESULT?InitGeometry()??
{??
????//使用D3DPT_TRIANGLESTRIP來索引描繪球體比較簡單,索引建立的空間也較小??
#ifdef?USE_INDEX_STRIP??
????if?(FAILED(g_pd3dDevice->CreateVertexBuffer((g_rings+1)*(g_segments+1)*sizeof(CUSTOMVERTEX)0D3DFVF_CUSTOMD3DPOOL_MANAGED&g_pVBNULL)))??
????????return?E_FAIL;??
??
????if?(FAILED(g_pd3dDevice->CreateIndexBuffer(g_rings*(g_segments+1)*2*sizeof(WORD)0D3DFMT_INDEX16?D3DPOOL_MANAGED&g_pIBNULL)))??
????{??
????????return?E_FAIL;??
????}??
??
????CUSTOMVERTEX*?vertics;??
????if?(FAILED(g_pVB->Lock(00(VOID**)&vertics0)))??
????????return?E_FAIL;??
??
????WORD*?indices=0;??
????WORD?vindex=0;??
????if?(FAILED(g_pIB->Lock(00(VOID**)&indices0)))??
????{??
????????return?E_FAIL;??
????}??
??
????float?deltaRing=D3DX_PI/(g_rings);??
????float?deltaSegment=2.0f*D3DX_PI/g_segments;??
??
????//經典的球體建立算法??
????for(int?j=0;j????{??
????????float?radius=sinf(j*deltaRing);??
????????float?y0=cosf(j*deltaRing);??
??
????????for?(int?i=0;i????????{??
????????????float?x0=radius*sinf(i*deltaSegment);??
????????????float?z0=radius*cosf(i*deltaSegment);??
??
????????????vertics->x=x0;??
????????????vertics->y=y0;??
????????????vertics->z=z0;??
??
????????????vertics->nx=x0;??
????????????vertics->ny=y0;??
????????????vertics->nz=z0;??
????????????vertics->color=0xff4040;??
????????????vertics++;??
??
????????????if?(j!=g_rings)//除了第一點和最后一點只有一次,其他都由點都有兩次索引??
????????????{??
????????????????*in

評論

共有 條評論