gpt4 book ai didi

c# - 渲染时纹理显示为灰色

转载 作者:行者123 更新时间:2023-11-30 12:49:49 24 4
gpt4 key购买 nike

我目前正在学习“开始 C# 编程”,并且在绘制纹理时遇到了第 7 章中的问题。

我使用了与演示 CD 上相同的代码,虽然我必须将纹理路径更改为绝对路径,但在渲染时它显示为灰色。

我已经调试了将加载的纹理写入文件的程序,这很好 - 没有问题。所以在那之后出现了问题。

下面是一些代码片段:

public void InitializeGraphics()
{
// set up the parameters
Direct3D.PresentParameters p = new Direct3D.PresentParameters();
p.SwapEffect = Direct3D.SwapEffect.Discard;
...
graphics = new Direct3D.Device( 0, Direct3D.DeviceType.Hardware, this,
Direct3D.CreateFlags.SoftwareVertexProcessing, p );
...
// set up various drawing options
graphics.RenderState.CullMode = Direct3D.Cull.None;
graphics.RenderState.AlphaBlendEnable = true;
graphics.RenderState.AlphaBlendOperation = Direct3D.BlendOperation.Add;
graphics.RenderState.DestinationBlend = Direct3D.Blend.InvSourceAlpha;
graphics.RenderState.SourceBlend = Direct3D.Blend.SourceAlpha;
...
}

public void InitializeGeometry()
{
...
texture = Direct3D.TextureLoader.FromFile(
graphics, "E:\\Programming\\SharpDevelop_Projects\\AdvancedFrameworkv2\\texture.jpg", 0, 0, 0, 0, Direct3D.Format.Unknown,
Direct3D.Pool.Managed, Direct3D.Filter.Linear,
Direct3D.Filter.Linear, 0 );
...
}

protected virtual void Render()
{
graphics.Clear( Direct3D.ClearFlags.Target, Color.White , 1.0f, 0 );
graphics.BeginScene();

// set the texture
graphics.SetTexture( 0, texture );

// set the vertex format
graphics.VertexFormat = Direct3D.CustomVertex.TransformedTextured.Format;

// draw the triangles
graphics.DrawUserPrimitives( Direct3D.PrimitiveType.TriangleStrip, 2, vertexes );

graphics.EndScene();
graphics.Present();
...
}

我不知道这里出了什么问题。显然,如果我在 Windows 中加载纹理,它会显示得很好——所以书中给出的代码示例中有些地方不对。它实际上不起作用,大概我的环境有问题。

最佳答案

你在那里使用了一种非常古老的技术...我猜你正在尝试制作游戏(就像我们刚开始时所做的那样!),请尝试使用 XNA。我最好的猜测是它是你的图形驱动程序。我知道这听起来像是在逃避,但说真的,我以前见过这种情况,一旦我将旧显卡换成新显卡,它就可以工作了!我并不是说它坏了,或者不可能让它工作。但我最好的两个建议是:

1) 开始使用 XNA 并使用 http://www.xnadevelopment.com/tutorials.shtml 上的教程2) 更换你的显卡(如果你想继续你现在正在做的事情)。

关于c# - 渲染时纹理显示为灰色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665130/

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