用于.NET的3D图形库

Jan*_*man 17 c# directx 3d graphics

我想学习为Windows 7 /桌面制作简单的3D应用程序.就此而言,我指的是在3D空间中移动的球体,三角形或像素.它还不一定非常复杂.为此,我想在.NET中使用C#语言(Java/C++是我的第二优先).

我知道这已经多次被问到互联网,但我觉得很多问题已经过时,许多API已被弃用,教程太旧了.

我正在考虑学习XNA,但后来我了解到微软不再计划开发和支持它了.SharpDX似乎也是一个很好的方法,但这似乎是针对Windows Store和Phone应用程序.

在互联网上查看时,Managed DirectX似乎正是我所寻找的(语法,复杂性),但同样,我也不赞成使用它.

你能指导一下我应该学到什么来创建简单而坚固的3D应用程序吗?

Dan*_*ker 8

看看SlimDX.它是DirectX(DirectX 11)的开源免费托管库.每个版本都与DirectX版本一致,因此大部分时间它都是最新版本.我已经习惯了它,很容易上手.这里(向下滚动)与您提到的其他可能性进行比较.

  • 提供的链接不再有效。 (3认同)

ja7*_*a72 6

在 OpenGL 世界中我一直在使用OpenTK。我必须在现有代码的基础上进行构建,C#才能显示没有阴影和真实效果的平面几何对象。

这是一个例子:

使成为

从代码生成:

void InitModels()
{
    Scene.CoordinateSystem cs1 = new Scene.CoordinateSystem(world.Ground)
    {
        DrawSize = 1,
        Visible = false
    };
    Scene.CoordinateSystem cs2 = new Scene.CoordinateSystem(world.Ground, 0.6 * vec3.J)
    {
        DrawSize = 0.5,
        Orientation = rot3.RotateXDegrees(-15)
    };
    Scene.Cube cube = new Scene.Cube(cs1)
    {
        CubeSize = 0.5
    };
    cs2.AddPoint(new point3(vec3.O,1), Color.Firebrick, 15);
    var line = cs2.AddLine(new line3(-vec3.I, vec3.I), 20, Color.SlateGray, 2);
    line.SetPattern(0xFF0F, GeometryTest.Scene.Stripple.Scale2);

    cube.BindTexture(5, GeometryTest.Properties.Resources.julia, true);
    cube.AddText(3, "OpenTK 1.0", Color.DarkMagenta, 0.5f, 0.5f, 1.0f);

}
Run Code Online (Sandbox Code Playgroud)

  • 参见【离职通知】(https://github.com/opentk/opentk/commit/2e51fe019771f4c70b15bb25b3a560f712a45fbf):看来项目负责人不在了,项目不再更新了。 (2认同)

zan*_*ndi 5

最简单的可能是使用WPF 3D.这是一个保留模式的图形系统,所以如果你没有巨大的需求(即:特效效果着色器等),它很容易直接设置和使用.

否则,更精细的3D系统(如XNA)可能更合适.这将是更多的设置工作,但给你更多的控制.

  1. 教程1:在屏幕上显示3D模型
  2. WPF
  3. XNA