游戏开发论坛

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

请教一个关于深度测试的问题

[复制链接]

83

主题

169

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2008-1-3 15:11:00 | 显示全部楼层 |阅读模式

我在开始设置了
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
pDrect3DDevice->SetRenderState(D3DRS_ZENABLE,TRUE);
pDrect3DDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESS);
pDrect3DDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);
以后,原本可以渲染出来的场景就变成了黑频是怎么回事?

如果不设置
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
只设置
pDrect3DDevice->SetRenderState(D3DRS_ZENABLE,TRUE);
pDrect3DDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESS);
pDrect3DDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);
虽然可以渲染但是没有深度关系,是怎么回事?

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-1-3 21:47:00 | 显示全部楼层

Re:请教一个关于深度测试的问题

代码这么少,是怎么回事?

83

主题

169

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
 楼主| 发表于 2008-1-3 23:51:00 | 显示全部楼层

Re: 请教一个关于深度测试的问题

我写入了一个三角形面和一个带纹理的四边形面

//三角形
//#define CUSTOMVERTEX_FVF2 (D3DFVF_XYZ|D3DFVF_DIFFUSE)
CUSTOMVERTEX2 customVertex2[]=
{
        {-1.0f, 1.0f, move,D3DCOLOR_XRGB(255, 0, 0)},   //move初始化为-1.0
        {1.0f, 1.0f, move,D3DCOLOR_XRGB(255, 0, 0)},
        {1.0f, -1.0f, move,D3DCOLOR_XRGB(255, 0, 0)}
               
};

//四边形
//#define CUSTOMVERTEX_FVF (D3DFVF_XYZ|D3DFVF_TEX1)
CUSTOMVERTEX customVertex[]=
{
         {-3 ,-3 , 1.0f, 0.0f, 1.0f},
         {-3 ,3 , 1.0f,0.0f,0.01f},
         {3 ,-3 , 1.0f,1.0f,1.0f},
         {3 ,3 , 1.0f,1.0f,0.01f},
};
我用键盘上的"Z"和"X"可以增大和减小move的值.
三角形比四边形后渲染.
但是不管怎么更改move的值,如图的红色三角形都不会被四边形挡住.
sf_200813235047.jpg

2

主题

21

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2008-1-4 19:32:00 | 显示全部楼层

Re:请教一个关于深度测试的问题

z_buffer深度值是基于透视投影后的z值,而不是世界坐标的Z值,再者,看一下clear的时候有没有清空Z_buffer缓冲

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-1-4 22:42:00 | 显示全部楼层

Re:请教一个关于深度测试的问题

我想问的是,在你使用X或Z来改变MOVE的值时,你是否真的确定你改完的值被写入了缓存中?改顶点的值不是随随便便就改的,还需要上锁和解锁顶点缓存,这步你的程序里可有? [em13]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 09:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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