Skip to main content
Email Password   helpLost your password?

Screenshot.jpg

Introduction

Use OpenGL in your C# applications with SharpGL, it's a breeze! Just drag an OpenGLControl onto your Windows Form and handle the 'OpenGLDraw' function - now just call ordinary OpenGL functions!

SharpGL provides you with two controls for designing forms. The OpenGLControl, which lets you do standard OpenGL drawing in a C# application, and the SceneControl, which does the same with added support for polygons/persistence/picking and more. The screenshot above shows the SceneControl in action, with the supplied 'SceneBuilder' application. The screenshot below shows some 'old fasioned' OpenGL drawing, with calls to 'glBegin' and 'glEnd' etc.

Screenshot-Small.jpg

If you want to get OpenGL in your application quickly, there's no easier way. There are five example applications in the download that show you how to use some common features. The SharpGL Website also has a set of tutorials that is regularly updated - as well as support information.

Getting Started

Create a Windows Forms application, use the SharpGL DLL as a reference, and drop an OpenGLControl onto the form. Then handle the 'OpenGLDraw' event and you're ready to go!

Calls that in C++ would look like:

glBegin(GL_LINES);
    glVertex3f(1.0f, 1.0f, 1.0f); ...etc...

Will have to look like:

OpenGL gl = someForm.someOpenGLControl.OpenGL;

gl.Begin(OpenGL.LINES); 
		gl.Vertex(1, 1, 1); ...etc...

Porting over existing OpenGL code is therefore trivial. Every OpenGL and GLU library function has been imported and fully commented - no need to look through reference books for function parameters, the Code Hints will show you everything you need to see!

screenshot_codehints.jpg

The Scene Graph

The Scene Graph contains classes like 'Texture' and 'Camera' to make working with certain types of object much easier. You don't have to use them, you can use certain components or you can use the whole lot. Or you can mix and match. There is an example application that shows how to do texturing with the Scene Graph.

New Code and Updates

New to SharpGL v1.83

New to SharpGL v1.8

You can now automatically load simple 3D objects from Caligari trueSpace files. This makes creating applications a bit more simple, as you can test the polygon classes with real objects. A Polygon in the SharpGL scene graph is very powerful, they can cast real time shadows. A set of 'Builders' have been added to the SceneBuilder application, allowing you to build polygons from scratch, play around with materials etc.

SceneBuilder (the Test Application) is a simple application showing some of what SharpGL can do, and all the sourcecode is bundled with it, you can use it to build many aspects of a scene.

Points of Interest

The library is great to use, the Scene Graph 'Scene' object lets you do picking, you can control objects via the mouse, even parts of objects, such as the control points of NURBS and evaluators can be moved around. The polygons can be edited by Face, Vertex or as whole objects, and cast shadows over other objects.

Many of the 'kludgy' aspects of OpenGL such as the limits on the number of lights have been smoothed over. Using lights as an example, when the scene is created, the maximum number of lights is ascertained, and you cannot go over that limit. The extent of Mouse control is amazing, and very easy to implement in your own classes. The Persistence code is some of the best code I've ever written, you can call a function in the persistence engine, passing a type of object, and immediately a File Open / Save dialog will be shown with all the available file formats there for the user to select from, then the object will be created from the file or saved to the file. This means in the SceneBuilder app, it takes about two lines to be able to load a polygon from file, with all the possible formats automatically shown.

More Tutorials & Features

I am currently spending a large amount of time on SharpGL, after a few very quiet years. If you want more tutorials or new features, now is the time to let me know! Either leave comments on this page or get in touch with me via the SharpGL Website .

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
QuestionProblems with 2 OpenGLControls Pin
andrea tosetto
4:21 3 Nov '09  
GeneralCan not get link to the sharpgl website? Pin
Danielsue
22:48 14 Oct '09  
GeneralLow Polygon Limit? Pin
cbankier
20:13 4 Oct '09  
GeneralRe: Low Polygon Limit? Pin
cbankier
19:37 7 Oct '09  
GeneralRe: Low Polygon Limit? Pin
filipus5
7:17 25 Oct '09  
GeneralMemory leak... Pin
WE-JP
18:50 25 Sep '09  
GeneralRe: Memory leak... Pin
noname00
23:48 26 Sep '09  
GeneralRe: Memory leak... Pin
semeltheone
11:49 12 Oct '09  
GeneralRe: Very thank you Pin
topo4949
3:31 30 Oct '09  
GeneralThank You Dave Pin
nik195
13:12 7 Sep '09  
GeneralSharpGL Website Pin
Dave Kerr
2:06 22 Aug '09  
GeneralRe: SharpGL Website Pin
alexche
6:21 9 Sep '09  
GeneralImproving texture quality Pin
tom20
22:00 20 Aug '09  
GeneralNURBS control points location Pin
student121
7:05 24 Jul '09  
Generalwww.sharpgl.com down Pin
darck-pl
23:25 22 Jul '09  
GeneralWebsite down? Pin
tjdetwiler
11:27 9 Jun '09  
GeneralRe: Website down? Pin
ayotunde
3:21 16 Jun '09  
Question#D Game Pin
MOSTAFApro
22:09 21 Apr '09  
JokeRe: #D Game Pin
martin_bfg10k
11:11 3 May '09  
GeneralOrthographic projection in SharpGL? Pin
sanctus2099
8:13 21 Apr '09  
GeneralRe: Orthographic projection in SharpGL? Pin
ARon_
5:34 19 May '09  
QuestionShould you give some comment about "C# wrapper for OpenGL" and SharpGL? Pin
Frenet
19:53 24 Mar '09  
QuestionHow to enable ortho view.. Pin
Member 4595936
8:40 24 Mar '09  
AnswerRe: How to enable ortho view.. Pin
ARon_
5:33 19 May '09  
Generaldouble buffering Pin
abhi488
20:09 8 Feb '09  


Last Updated 15 Jan 2009 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009