Está claro que lo más típico para realizar programación gráfica es C++ con OpenGL o con DirectX, pero ¿qué pasa si te piden hacer una ventana de Windows con sus controles y sus menús?
Ésto ya no es tan sencillo, programar una ventana de Windows con su API es muy muy tedioso, todo funciones de C, estructuras complejas, y un sistema para controlar eventos bastante caótico (wndproc xD)... personalmente no me gusta nada.
La siguiente alternativa es programar con las MFC, las Microsoft Fundation Classes... aquí es algo más fácil programar una ventana, pero sigue sin ser tan intuitivo como otros lenguajes como Visual Basic o C#. También creo que esta falta de gusto por programar con las MFC puede deberse a que en la universidad nunca me han enseñado a programar en Windows de manera seria...
Volviendo al tema de la programación de ventanas+gráficos, decidí ver como estaba el tema con C#. La programación de ventanas de Windows sí que la conocía ya que las prácticas de las asignaturas de ISoft que tuve que hacer a lo largo de la carrera (Ingeniería del Software de Gestión en 3º e Ingeniería del Software I en 4º) los realizamos con esta tecnología.
Ahora solo faltaba la parte gráfica. Personalmente hubiese intentado utilizar DirectX, ya que son unas librerías que conozco más que OpenGL, pero necesitaba usar estas últimas... así que, manos a la obra y a buscar información sobre C# y OpenGL.
La primera librería que salió fue CsGL (http://csgl.sourceforge.net/), pero dejaron de darle soporte, por lo que preferí no utilizarla... y después salió el framework de TAO (http://www.taoframework.com/) y...
¡qué facil es crear un visor de OpenGL! solo tienes que cargar los .dll que te ofrece la librería

(el archivo Tao.OpenGL.dll y Tao.Platform.Windows.dll), activar el control de OpenGL

¡Y solo queda arrastrar el control al formulario! Bueno, eso, y añadir una línea para inicializar el control:
// inicializa el control
SimpleOpenGLControl1.InitializeContexts();
Y ya está!!
Solo hace falta tener algo que dibujar :)