简体   繁体   English

C#中的密集图形应用程序(使用.NET / Mono)

[英]Intensive graphics application in C# (with .NET/Mono)

If you were writing a 2d graphics intensive application in C# (like animation software or a music sequencer with automated graphics control), which one would be a better choice for graphics library? 如果你在C#中编写一个2d图形密集型应用程序(如动画软件或带有自动图形控件的音序器),哪一个是图形库的更好选择?

I'd like to develop a cross-platform application (at least portable on Windows 7, Linux), and I'd like to use only C#, avoiding mixing code in C++ (due also to interop issues). 我想开发一个跨平台的应用程序(至少在Windows 7,Linux上是可移植的),我只想使用C#,避免在C ++中混合代码(由于互操作问题)。

I've already give a try to OpenTK, but it lacks of documentation, and it seems to be not very stable (using Mono it makes me sometimes crash the X server!!!)... And maybe I'm wrong, but I feel it is not a long supported library and it is going to die... 我已经尝试过OpenTK,但它缺少文档,而且它似乎不是很稳定(使用Mono它会让我有时会崩溃X服务器!!!)......也许我错了,但是我觉得这不是一个长期支持的库,它会死...

Is there a good and stable OpenGL wrapper for .NET/Mono? .NET / Mono有一个好的和稳定的 OpenGL包装器吗?

I know there is a porting of Silverlight on Mono (Moonlight), but I read that has bad performance. 我知道在Mono(Moonlight)上有一个Silverlight的移植,但我读到它的性能很差。

Thank you. 谢谢。

There is irrlicht library but we decided to use OpenTK in our projects. irrlicht库,但我们决定在我们的项目中使用OpenTK。 Desipe some drawbacks in newest version (1.0) it works quite stable on Win7 and it works on Linux as well. 除了最新版本(1.0)的一些缺点,它在Win7上运行相当稳定,它也可以在Linux上运行。

You can use SDL.NET which is a .NET binding for the Simple DirectMedia Layer, a library used to create fast 2D games. 您可以使用SDL.NET ,它是Simple DirectMedia Layer的.NET绑定,这是一个用于创建快速2D游戏的库。

Another way could be GTK#, but I don't know about its graphics performance. 另一种方式可能是GTK#,但我不知道它的图形性能。

Right now, and for your purposes, I'd recommend MonoXNA 现在,为了您的目的,我推荐MonoXNA

Alternatively, CSGL (OpenGL wrapper for .NET/Mono) 或者, CSGL (用于.NET / Mono的OpenGL包装器)

It's been a while since I looked into cross platform gaming with .NET but when I was considering doing so I the Unity Game Development Tool looked quite attractive. 自从我用.NET研究跨平台游戏已经有一段时间了,但当我考虑这样做时, Unity游戏开发工具看起来很有吸引力。 I'm guessing that underneath they are using OpenGL and I don't know exactly where Unity stands in terms of whether they really provide their own Graphics API or whether it is more about providing a set of integrated tools for game development. 我猜他们正在使用OpenGL,我不知道Unity在确实提供自己的图形API方面究竟在哪里,或者更多的是为了提供一套用于游戏开发的集成工具。 If you haven't looked into it before though it is worth taking a peek. 如果你之前没有调查它,虽然值得一看。

Since you are looking for something active and supported, how about Qt ? 既然你正在寻找积极和支持的东西, Qt怎么样? It has .NET support . 它有.NET支持 It is not something that I have personally used, but they have certainly been around a long time. 这不是我个人使用的东西,但它们肯定已经存在了很长时间。

I would only consider OpenGL if you really need 3D. 如果你真的需要3D,我只考虑OpenGL。 Have you looked at Cairo? 你看过开罗了吗? Also, as far as I know, System.Drawing works equally well on mono + gtk as it does on windows with .Net. 另外,据我所知,System.Drawing在mono + gtk上的效果与使用.Net的Windows一样。

If you are keen you can try Moonlight.Desktop, the stable version works quite well with silverlight 2.0 controls, the beta supports silverlight 3.0 and some from 4.0, I've made a number of small apps that work like this in mono on linux and windows but there was a bit of manual hacking of build scripts to get my projects built. 如果你很热衷,可以尝试使用Moonlight.Desktop,稳定版本可以很好地运行silverlight 2.0控件,测试版支持silverlight 3.0,有些版本支持4.0,我已经制作了许多小型应用程序,这些应用程序在linux上以单声道工作Windows,但有一些手动黑客的构建脚本,以建立我的项目。

Unless you have a reason not to do so, I would try to do a basic silverlight desktop app on windows and have a gtk# shell for linux/mono while all the time keeping a core (model + controller) assembly project building for both platforms. 除非你有理由不这样做,否则我会尝试在Windows上运行一个基本的silverlight桌面应用程序,并为linux / mono设置一个gtk#shell,同时保持两个平台的核心(模型+控制器)组装项目构建。

Csgl is perfectly stable... Csgl完全稳定......
...since it is no longer developed. ......因为它不再发展。

I really recommend the TAO Framework . 我真的推荐TAO框架 It is cross-Platform (linux, mac os, windows) and still developed. 它是跨平台(linux,mac os,windows)并且仍在开发中。 It is quite huge and has alot of features. 它非常庞大,并且具有很多功能。

Irrlicht and (mono-)Xna are designed for wirting games. Irrlicht和(单声道)Xna专为游戏而设计。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM