gpt4 book ai didi

XNA 4.0 和无法解决的(由我)深度好奇渲染

转载 作者:行者123 更新时间:2023-12-04 05:32:15 26 4
gpt4 key购买 nike

XNA 4.0 关于深度问题的大头痛:

enter image description here

我已经找到了许多类似问题的答案,但没有人为我工作......

设备设置如下:

xnaPanel1.Device.BlendState = BlendState.Opaque;                
xnaPanel1.Device.DepthStencilState = DepthStencilState.Default;
xnaPanel1.Device.PresentationParameters.DepthStencilFormat = DepthFormat.Depth24Stencil8;
[...]
Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 4.0f / 3.0f, 0.1f, 1000f);

作为一个残酷的问题解决者,我尝试了大多数 DepthStencilFormat 和 DepthStencilState 可能性......没有人像我想要的那样工作。

关于投影矩阵,我也尝试了许多 nearclip 和 farclip 值。 (立方体宽度:10f)但无法获得正确的结果。

我已经用许多不同的纹理测试过这个,都是不透明的。

我不使用BasicEffect,而是使用纹理+法线贴图的效果,这可能是问题的根源吗?

CubeEffect.fx
[...]
sampler2D colorMap = sampler_state
{
Texture = <colorMapTexture>;
MagFilter = Linear;
MinFilter = Anisotropic;
MipFilter = Linear;
MaxAnisotropy = 16;
};
sampler2D normalMap = sampler_state
{
Texture = <normalMapTexture>;
MagFilter = Linear;
MinFilter = Anisotropic;
MipFilter = Linear;
MaxAnisotropy = 16;
};
[...]

编辑:我尝试使用 BasicEffect 并且问题是一样的......

所以......感谢您的帮助;)

最佳答案

好的,就是这样。

pp.DepthStencilFormat = DepthFormat.Depth24Stencil8;

必须在设备创建调用之前。

所以我现在不知道为什么会这样:
Device.PresentationParameters.DepthStencilFormat = DepthFormat.Depth24Stencil8;

以前在我的主 Draw 函数中调用,不起作用...

结论?
PresentationParameters pp = new PresentationParameters();
pp.IsFullScreen = false;
pp.BackBufferHeight = this.renderControl.Height;
pp.BackBufferWidth = this.renderControl.Width;
pp.DeviceWindowHandle = renderControl.Handle;
pp.DepthStencilFormat = DepthFormat.Depth24Stencil8;
this.graphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef, pp);

现在工作正常!

关于XNA 4.0 和无法解决的(由我)深度好奇渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12427561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com