游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2148|回复: 4

Directx 9.0 绘制流水线求助00!

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-9-5 08:59:00 | 显示全部楼层 |阅读模式
显示一个三角形,我把摄像机放在(0,0,4)这里,观察点放在(0,0,0),这个三角形应该在视域体之内,可就是看不到,不知道哪里理解错了  。望指点下新手阿,不胜感激
       Vertex* vertices;
        Triangle->Lock(0, 0, (void**)&vertices, 0);

        vertices[0] = Vertex(-1.0f, 0.0f, 2.0f);
        vertices[1] = Vertex( 0.0f, 1.0f, 2.0f);
        vertices[2] = Vertex( 1.0f, 0.0f, 2.0f);

        Triangle->Unlock();

        //
        // Set the projection matrix.
        //

        D3DXMATRIX proj;
        D3DXMatrixPerspectiveFovLH(
                        &proj,                        // result
                        D3DX_PI,               // 90 - degrees
                        (float)Width / (float)Height, // aspect ratio
                        1.0f,                         // near plane
                        1000.0f);                     // far plane
        Device->SetTransform(D3DTS_PROJECTION, &proj);


                D3DXVECTOR3 position(0.0f, 0.0f, 4.0f);
                D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
                D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);
                D3DXMATRIX V;
                D3DXMatrixLookAtLH(&V, &position, &target, &up);

                Device->SetTransform(D3DTS_VIEW, &V);
                //}
                Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
                Device->BeginScene();

                Device->SetStreamSource(0, Triangle, 0, sizeof(Vertex));
                Device->SetFVF(Vertex::FVF);

                // Draw one triangle.
                Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);

                Device->EndScene();
                Device-&gtresent(0, 0, 0, 0); [em6]

10

主题

55

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2011-9-6 09:55:00 | 显示全部楼层

Re:Directx 9.0 绘制流水线求助00!

1.你得摄像机是从+Z往-Z看,所以你的顶点顺序错了!
2.你设置的投影矩阵的视域是180°,而不是你注释的90°
3.从你顶点的构造函数来看,我猜想你设置的顶点并没有DIFFUSE属性,而且你也没有为Stream设置过material,也就是说你要绘制的三角形根本就没有颜色信息。所以即使顶点顺序对了,你也什么都看不到。

6

主题

74

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2011-9-6 18:20:00 | 显示全部楼层

Re:Directx 9.0 绘制流水线求助00!

1.关掉光照,最好给顶点加上颜色,没颜色的话好像默认白色,我不确定
2.设置D3DRS_CULLMODE为none,
3.fov 改成pi/2

然后看看效果

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2011-9-8 20:32:00 | 显示全部楼层

Re:Directx 9.0 绘制流水线求助00!

谢谢,楼上两位,我试试

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2011-9-8 21:56:00 | 显示全部楼层

Re: Re:Directx 9.0 绘制流水线求助00!

sanxcoo: Reirectx 9.0 绘制流水线求助00!

1.你得摄像机是从+Z往-Z看,所以你的顶点顺序错了!
2.你设置的投影矩阵的视域是180°,而不是你注释的...

正解阿,非常感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-5 17:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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