游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4468|回复: 3

给一个正方形帖图!??搞不定啊!

[复制链接]

69

主题

335

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
发表于 2003-8-29 00:51:00 | 显示全部楼层 |阅读模式
2个三角形构成的正方形,我就是贴不上去图啊!
帮我看看定义的对不对!

        //从图片文件中直接创建纹理对象
        :3DXCreateTextureFromFile( m_pDevice, "texture.jpg", &m_pTexture );
        CUSTOMVERTEX vertices[4];
        vertices[0].position = D3DXVECTOR3( 0.0f, 0.0f, 0.0f ); //点A的坐标
        vertices[0].normal = D3DXVECTOR3( -1.0f, 0.0f, 0.0f );        //点A的法线矢量
        vertices[0].tu = 0.0f;                //点A的纹理坐标
        vertices[0].tv = 0.0f;
        vertices[1].position = D3DXVECTOR3( 0.0f, 2.0f, 0.0f ); //点b的坐标
        vertices[1].normal = D3DXVECTOR3( -1.0f, 2.0f, 0.0f );        //点A的法线矢量
        vertices[1].tu = 0.0f;                //点b的纹理坐标
        vertices[1].tv = 1.0f;
        vertices[2].position = D3DXVECTOR3( 2.0f, 2.0f, 0.0f ); //点c的坐标
        vertices[2].normal = D3DXVECTOR3( 2.0f, 2.0f, 0.0f );        //点A的法线矢量
        vertices[2].tu = 1.0f;                //点c的纹理坐标
        vertices[2].tv = 1.0f;
        vertices[3].position = D3DXVECTOR3( 2.0f, 0.0f, 0.0f ); //点d的坐标
        vertices[3].normal = D3DXVECTOR3( 2.0f, 0.0f, 0.0f );        //点A的法线矢量
        vertices[3].tu = 1.0f;                //点d的纹理坐标
        vertices[3].tv = 0.0f;
        //创建圆锥曲面的顶点缓存区,填入顶点数据
        m_pDevice->CreateVertexBuffer(
                sizeof(vertices),
                0, D3DFVF_CUSTOMVERTEX,
                D3DPOOL_DEFAULT, &m_pVB, NULL );

        //把顶点数据填入顶点缓存区
        void* pVertices;
        m_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 );
        memcpy( pVertices, vertices, sizeof(vertices) );
        m_pVB->Unlock();
[em17]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20381
发表于 2003-8-29 02:41:00 | 显示全部楼层

Re:给一个正方形帖图!??搞不定啊!

应该不需要法线矢量吧。

另外,你的定点结构是什么样的?

69

主题

335

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2003-8-29 13:13:00 | 显示全部楼层

Re:给一个正方形帖图!??搞不定啊!

谢谢老大回复,法线在什么情况下使用??

坐标、顶点法线、纹理坐标
struct CUSTOMVERTEX
{
        D3DXVECTOR3 position;        //顶点坐标
        D3DXVECTOR3 normal;                //顶点法线
        float tu, tv;                        //纹理坐标
};
//D3DFVF_TEX1表示只使用一层纹理
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)

69

主题

335

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2003-8-29 14:36:00 | 显示全部楼层

Re:给一个正方形帖图!??搞不定啊!

m_pDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 5 );
这句写错了,参数4应该是2,呵呵,真不小心啊!呵呵

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-22 09:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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