¿Hay librerías de soporte OpenGL para C#? Si es así, ¿cuál uso y dónde encuentro proyectos de muestra?¿Usando OpenGl con C#?
¿C# proporciona clases para OpenGL?
¿Hay librerías de soporte OpenGL para C#? Si es así, ¿cuál uso y dónde encuentro proyectos de muestra?¿Usando OpenGl con C#?
¿C# proporciona clases para OpenGL?
¿Qué le gustaría que hicieran estas bibliotecas de soporte? Solo usar OpenGL desde C# es lo suficientemente simple y no requiere ninguna biblioteca adicional afaik.
Se supone que Tao es un buen marco.
De su sitio:
El Tao Framework for .NET es una colección de encuadernaciones para facilitar el desarrollo de aplicaciones multimedia multiplataforma utilizando .NET y Mono plataformas.
El nuevo sitio web para Tao es: [Tao Framework] (http://www.mono-project.com/Tao) – Thymine
También recomendaría el Tao Framework. Sin embargo, una nota adicional:
Tome un vistazo a estos tutoriales: http://www.taumuon.co.uk/jabuka/
No tengo idea de qué le pasó a Tao cuando la página se cayó hace bastante tiempo. – DMan
El nuevo sitio web para Tao es: [Tao Framework] (http://www.mono-project.com/Tao) – Thymine
Tao parece ser un objetivo en movimiento. Actualicé el enlace, porque también se ha movido de mono ahora a sourceforge. – Oliver
XNA 2.0 requiere un mínimo de un 1,1 tarjeta de sombreado. Mientras que antigua tecnología, no todos tienen uno. Algunas computadoras portátiles más nuevas (en nuestra experiencia, tabletas Toshiba con gráficos Intel) no tienen soporte para shader 1.1. XNA simplemente no se ejecuta en estas máquinas.
Este es un problema importante para nosotros y hemos cambiado a Tao y OpenGL. Además con Tao tenemos enlaces para audio & compatible con Lua.
Creo que lo @korona significaba era ya que es sólo una API de C, que puede consumir desde C# directamente con una diablos de un montón de escribir así:
[DllImport("opengl32")]
public static extern void glVertex3f(float x, float y, float z);
Usted lamentablemente tendría que hacer esto para cada función de OpenGL que llame, y es básicamente lo que Tao ha hecho por usted.
¿Cómo harías para eso en Linux (con mono)? – dcousens
Básicamente exactamente lo mismo, http://www.mono-project.com/Interop_with_Native_Libraries –
OpenTK es una mejora sobre el API Tao, ya que utiliza # estilo de C idiomática con la sobrecarga, las enumeraciones de tipo fuerte, excepciones y tipos de .NET estándar:
GL.Begin(BeginMode.Points);
GL.Color3(Color.Yellow);
GL.Vertex3(Vector3.Up);
en contraposición a Tao que simplemente refleja la C API:
Gl.glBegin(Gl.GL_POINTS); // double "gl" prefix
Gl.glColor3ub(255, 255, 0); // have to pass RGB values as separate args
Gl.glVertex3f(0, 1, 0); // explicit "f" qualifier
Esto hace que sea más difícil portar pero es increíblemente agradable de usar.
Como beneficio adicional que proporciona la representación de fuentes, textura carga, manipulación de entrada, audio, matemáticas ...
actualización 18/01/2016: Hoy en día el mantenedor OpenTK tiene stepped away from the project, dejando su futuro incierto. Los foros están llenos de spam. El mantenedor recomienda moverse a MonoGame o SDL2 #.
No creo que estas funciones sean muy representativas, ya que están desaprobadas y se eliminan del perfil de núcleo de OpenGl. – Arne
Es cierto que esas funciones se eliminan del perfil del núcleo. Pero los argumentos siguen siendo válidos. "OpenTK es una mejora con respecto a la API de Tao, ya que utiliza un estilo idiomático de C# con sobrecarga, enumeraciones fuertemente tipadas, excepciones y tipos de .NET estándar" –
El sitio web vinculado ahora no es válido para esta publicación. –
SharpGL es un proyecto que le permite usar OpenGL en sus formularios Windows Forms o WPF.
Puede OpenGL sin envoltorio y usarlo de forma nativa en C#. Al igual que Jeff Mc dijo, tendría que importar todas las funciones que necesita con DllImport.
Lo que omitió es tener que crear contexto antes de poder usar cualquiera de las funciones de OpenGL. No es difícil, pero hay algunas otras DllImports no tan intuitivas que deben hacerse.
He creado un ejemplo de proyecto C# en VS2012 con casi el mínimo necesario para que OpenGL se ejecute en el cuadro de Windows. Solo pinta la ventana de color azul, pero debería ser suficiente para comenzar. El ejemplo se puede encontrar en http://www.glinos-labs.org/?q=programming-opengl-csharp. Busque el ejemplo No Wrapper en la parte inferior.
su enlace está muerto, por favor puede compartir su proyecto. Gracias. – dangerousdave
En cuanto a (algo fuera de tema que conozco, pero ya que se mencionó anteriormente) elección XNA vs OpenGL, podría ser beneficioso en varios casos para ir con OpenGL en lugar de XNA (y en otro XNA en lugar de OpenGL ...)
Si va a ejecutar las aplicaciones en Linux o Mac utilizando Mono, podría ser una buena opción ir con OpenGL. Además, que no es tan conocido, creo que si tiene clientes que van a ejecutar sus aplicaciones en un entorno Citrix, entonces DirectX/Direct3D/XNA no será una opción tan económica como OpenGL. El motivo es que las aplicaciones OpenGL se pueden alojar conjuntamente en un menor número de servidores (debido a problemas de rendimiento, un solo servidor no puede alojar un número infinito de instancias de aplicaciones) que las aplicaciones DirectX/XNA que requieren servidores virtuales dedicados para ejecutarse en hardware modo acelerado Existen otros requisitos, como tarjetas gráficas compatibles, etc., pero me atendré al problema XNA vs OpenGL. como arquitecto de TI, desarrolladores de software, etc Esto tendrá que considerar antes de elegir entre OpenGL y DirectX/XNA ...
Una nota al margen es que WebGL está basado en OpenGL ES3 que yo sepa ...
Como una nota adicional, estas no son las únicas consideraciones, pero podrían hacer la elección más fácil para algunos ...
Sé que este es un hilo extremadamente antiguo, pero [Unity] (https://unity3d.com/) podría ser de su interés – clabe45