yangwangtian0 2015-05-16 03:01 采纳率: 0%
浏览 744

关于 Direct3D 顶点索引缓存的填充问题

小弟最近在学Direct3D

这两天一直纳闷那个顶点索引缓存填充的问题

因为我自己填充顶点和索引的时候画出来的立方体总是缺一个角

试了好几次也没有效果

源代码:

lpd3dDevice->CreateVertexBuffer(sizeof(CUSTOMVERTEX)*8,0,D3DFVF_CUSTOM,D3DPOOL_DEFAULT,&lpd3dVertex,NULL);

lpd3dDevice->CreateIndexBuffer(sizeof(WORD) * 36,0,D3DFMT_INDEX16,D3DPOOL_DEFAULT,&lpd3dIndex,NULL);

CUSTOMVERTEX vertex[] = 
{   

    {-20.0,-20.0,-20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {20.0,-20.0,-20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {20.0,20.0,-20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {-20.0,20.0,-20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {-20.0,-20.0,20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {20.0,-20.0,20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {20.0,20.0,20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)},
    {-20.0,20.0,-20.0,D3DCOLOR_XRGB(rand()%255,rand()%255,rand()%255)}};

void * pVertex = NULL;
lpd3dVertex->Lock(0,sizeof(vertex),(void**)&pVertex,0);
    memcpy(pVertex,vertex,sizeof(vertex));
lpd3dVertex->Unlock();

WORD Index[] = {0,1,2,0,2,3,0,1,5,0,5,4,0,4,7,0,7,3,2,3,7,2,7,6,1,2,6,1,6,5,4,5,6,4,6,7};
WORD pIndex = NULL; // 设置索引
lpd3dIndex->Lock(0,0,(void
*)&pIndex,0);memcpy(pIndex,Index,sizeof(Index));

lpd3dIndex->Unlock();

lpd3dDevice->SetRenderState(D3DRS_LIGHTING,FALSE); //关闭光照
lpd3dDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_CCW); //开启背面消隐

求大神帮助

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题