C# 纹理不出现

C# 纹理不出现,c#,directx,textures,C#,Directx,Textures,早些时候发布了这篇文章,一个人回复了任何建议,所以我想我会再发布一次。我意识到我们在这里谈论的是老技术,但我还是被卡住了。因此,任何想法——任何事情——都将受到感激 我目前正在学习“开始C#编程”,在第7章绘制纹理时遇到了一个问题 我使用了与演示CD上相同的代码,尽管我必须将纹理的路径更改为绝对路径,但渲染时它显示为灰色 我已经调试了程序,将加载的纹理写入文件,这很好,没有问题。因此,在这一点之后,有些事情就出了问题 以下是一些代码片段: public void InitializeGraphi

早些时候发布了这篇文章,一个人回复了任何建议,所以我想我会再发布一次。我意识到我们在这里谈论的是老技术,但我还是被卡住了。因此,任何想法——任何事情——都将受到感激

我目前正在学习“开始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中加载纹理,它会显示得很好——因此书中给出的代码示例中有一些不正确的地方。它实际上不起作用,我的环境可能有问题。

你能补充一下定义顶点的方法吗?嘿,尼科,这里是春季大扫除。最后我把这些都整理好了。干杯