Kamujin's picture

OOGL

OOGL - Object Oriented OpenGL - Sourceforge

This project is a set of utilities that can be used with the OpenTK libraries to add object oriented wrappers to commonly used functionality.
It is done completely in C# and can be run on Windows, Linux, and OS X.

Currently implimented features are as follows.

* MilkShape file loader (including animations)
* MilkShape single animation track to multiple animation track splitting.
* Basic skeletal animation controller.
* Shader class (supports shader based skeletal animation)
* FrameBuffer class (used by GUI to render child windows to textures for higher framerates)
* Texture class. (simple OO wrapper)
* System.Windows.Forms like GUI framework.

The GUI framework provides basic implimentation of the follow controls.

* Button
* CheckBox
* ComboBox
* HScrollBar
* Label
* ListBox
* Picture
* ProgressBar
* TextBox
* VScrollBar


Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Entropy's picture

Done.

Now I get this for skeletalAnimation.fs:

Shader error: Fragment shader failed to compile with the following errors:
ERROR: 0:11: 'assign' : l-value required "normal" (can't modify a varying)
ERROR: compilation errors. No code generated.

The vec3 normal is specified as "varying", and this is the line it's complaining about:

 normal = normalize(normal);

Doesn't look like a syntax error this time. I'm happy to try out any alterations you suggest to get this shader loader working, but I guess it's time to think about an upgrade, if my card won't support the latest GLSL versions...

Kamujin's picture

I PM'd you my IM info. Send me a message when you have time and we'll try to get these shaders working. I found the GLSL1.1 documentation, and I'm sure we can tweak these to work. Lets do this in realtime though, because I expect the GUI shaders may need some tweaking too.

Entropy's picture

I'll add you on MSN when I get home to discuss this.

Did a few Google searches and I discovered that there do seem to be a few known compatibility issues between the nVidia/ATi GLSL compilers (eg. ATi compilers are more strict with syntax, as we've already seen). Also seems that at this time, ATi drivers only support GLSL 1.10 down for some reason.

Anyhow, will discuss later.

Entropy's picture

Worked with Kamujin last night to address a couple of compatibility issues between nVidia/ATi GLSL compilers. Only took a few minutes and now it looks like they've been compeltely resolved.

Looks good! I particularly like the GUI - it's a much more advanced implementation of something I was working on a while back. I can stand to learn a lot from this project.

carga's picture

It's a pity, but OOGL looks completely unmaintained anymore. =(

To be honest, I must confirm, that it took just a couple of minutes to download OOGL from svn, to build and to start it's amazing Example.

It looks like there is no .NET+OpenGL GUI library with basic controls. Is it possible OpenTK will provide some of them? May be, it is possible to absorb some of the best OOGL ideas?..

Guys from Mono tells they do not have enough courage to implement WPF stack, but I feel that it is possible to implement some closed subset of its features with OpenTK. Fast, attractive, flexible and cross-platform GUI... isn't it the Dream of all developers? =)

Have a fast code!
Anton.
http://kyta.spb.ru

the Fiddler's picture

Personally, I'd love a cross-platform GUI library that can run on top of OpenGL. I think Qt can do this, but its C# bindings leave much to be desired.

You could use the XAML parser of Moonlight to implement some subset of WPF, or you could even modify Moonlight to render on the OpenGL surface directly. That would be more feasible than a complete WPF implementation.

puklaus's picture

I dont think opentk itself supports fonts anymore, and I suggest to use QuickFont http://www.opentk.com/project/QuickFont
for fonts.

This project's sources are quite old (few years) so just comment out all font lines and hopefully you get it to compile.