游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2616|回复: 1

D3DPT_TRIANGLESTRIP的???序(2D 3D)

[复制链接]

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
发表于 2005-5-23 00:45:00 | 显示全部楼层 |阅读模式
D3DPT_TRIANGLESTRIP的???序(2D 3D)
??的?序不是先??r??始的??
?楹芜@???例(2D/3D RPG角色扮演?? chapter06 Draw2D)是先以逆?r??始?
chapter06 Draw3D????例就是先以??r??始的.
附上Source Code

typedef struct {
  FLOAT x, y, z;     // 2-D coordinates
  FLOAT rhw;         // rhw
  FLOAT u, v;        // Texture coordinates
} sVertex;
#define VERTEXFVF (D3DFVF_XYZRHW | D3DFVF_TEX1)

BOOL DoInit()
{
  D3DPRESENT_PARAMETERS d3dpp;
  D3DDISPLAYMODE        d3ddm;
  BYTE *Ptr;
  sVertex Verts[4] = {
      {  50.0f,  50.0f, 1.0f, 1.0f, 0.0f, 0.0f },
      { 350.0f,  50.0f, 1.0f, 1.0f, 1.0f, 0.0f },
      {  50.0f, 350.0f, 1.0f, 1.0f, 0.0f, 1.0f },
      { 350.0f, 350.0f, 1.0f, 1.0f, 1.0f, 1.0f }
    };
......
}

BOOL DoFrame()
{
  // Clear device backbuffer
  g_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET,               \
                        D3DCOLOR_RGBA(0,64,128,255), 1.0f, 0);

  // Begin scene
  if(SUCCEEDED(g_pD3DDevice->BeginScene())) {

    // Set the vertex stream, shader, and texture
    g_pD3DDevice->SetStreamSource(0, g_pVB, sizeof(sVertex));
    g_pD3DDevice->SetVertexShader(VERTEXFVF);
    g_pD3DDevice->SetTexture(0, g_pTexture);

    // Draw the vertex buffer
    g_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);

    // Release texture
    g_pD3DDevice->SetTexture(0, NULL);

    // End the scene
    g_pD3DDevice->EndScene();
  }

  // Display the scene
  g_pD3DDevice-&gtresent(NULL, NULL, NULL, NULL);

  return TRUE;
}

sf_200552304523.zip

378.59 KB, 下载次数:

3

主题

86

帖子

94

积分

注册会员

Rank: 2

积分
94
QQ
发表于 2005-5-23 09:52:00 | 显示全部楼层

Re:D3DPT_TRIANGLESTRIP的???序(2D 3D)

用D3DPT_TRIANGLESTRIP的话,不管怎么排4个顶点肯定一个顺时针一个逆时针
Cull的时候不要Cull就可以了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 16:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表