Visualization Library 2.1.0

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Learning Visualization Library
Prerequisites

In order to use Visualization Library you need a at least good familiarity with C++, compilers and ideally linear algebra and geometry.

Where to Start

The Introduction page gives a brief presentation of VL capabilities and design guide lines. It also shows how to keep up to date with VL news and how to obtain help.

The Visualization Library Features Overview page illustrates more in detail the most important aspects of VL, its features, its whys and hows.

The Grouped classes and functions page gives a quick overview of the most important classes and functions divided into functional groups such as "Math", "Geometry", "Animation" etc. Take some time to check it out, it's a great way to start your jurney through VL architecture and organization.

The Annotated Class List page contains the complete list of all VL classes with their relative description. It is strongly adviced to glimpse through it at least once, you might discover classes and features you didn't even know you would need!

The Visualization Library Architecture page depticts visually a 10000 foot view of VL architecture and design. VL design is all in all very simple but it's important that you understand it before you use it so that you can get the most out of VL.

The OpenGL vs VL Feature Mapping page allows you to see how VL maps OpenGL functions and features into its own C++ object-oriented framework. This way if you know OpenGL and want to know how to do a specific thing with VL, you will be pointed right to the appropriate direction. This is one of the key features of VL: it translates almost transparently what you would do in OpenGL into a friendly C++ object-oriented framework.

These links are vital for any OpenGL programmer, chances are you will find yourself using them often:

Tutorials and Examples

The Quick Start Guides page contains several tutorials and examples to get you started with the most important VL programming concepts.

In the src/examples/ directory you will also find a set of example applications demonstrating how to implement various techniques using Visualization Library.

Community Resources
More OpenGL and 3D Graphics Background

If you are just starting your journey in the 3D graphics realm then the OpenGL SuperBible will provide you with very good theoretical and practical foundations.

More advanced users will want to buy a copy of the latest revision of "The OpenGL Programming Guide" (also known as "red book") and of "The OpenGL Shading Language" (also known as "orange book"). You can find all these plus many others here: http://www.opengl.org/documentation/books/

GUI Bindings

Chances are that you are using a GUI framework that is already supported by Visualization Library, like Win32, MFC, QT4, SDL, GLUT, wxWidgets and Cocoa (experimental). If you would like to see how to use Visualization Library within a particulare GUI framework then take a look at the src/examples directory, which contains a set of minimalistic applications that demonstrate how to use VL with several GUI frameworks.

Note that the GUI bindings shipped with VL should not be considered official but rather utility bindings. Meaning that they demonstrate in practice one way to glue your application to VL. You might as well rewrite from scratch or modify the existing bindings to satisfy any particular requisite of your application. Eitherway, if you have a fair knowledge of the GUI framework you are using, then gluing it together with VL is usually a matter of writing one or two source files in the worst case. Plus the existing utility GUI bindings show exactly what you need to do.

Note also that you don't strictly need GUI bindings to use VL as VL just renders to whatever OpenGL context is currently active, just like normal OpenGL API calls. All you need is to make sure that VL knows which camera, viewport, renderbuffer etc. to use when issuing rendering commands.

Good luck and have fun!