All Projects → timoore → lpsg

timoore / lpsg

Licence: other
High performance OpenGL rendering engine in Common Lisp

Programming Languages

common lisp
692 projects

LPSG version 0.0.1

LPSG is a library for writing high-performance graphical applications in Common Lisp, using OpenGL.

Introduction

LPSG accepts geometric data and descriptions of the OpenGL state used to render them. It processes the data in order to minimize traffic between the CPU and GPU (Graphics Processing Unit). It can also reorder the associated graphic commands, thereby reducing the number of function calls into the OpenGL driver and the number of state changes in the graphics hardware.

LPSG is still in a very early stage of development, but it will include support for common features in 3D graphical applications, such as simple text, rendering to a texture, rendering high-quality transparency, GPU-based selection, and more.

Documentation

Documentation for the LPSG API can be found here. The sources for the documentation are in the docs directory.

Example

A commented example is found in cube.lisp.

OpenGL

LPSG nominally requires OpenGL 3.3, but might be coaxed into running with earlier versions of OpenGL and (yet-to-be-identified) extensions. LPSG uses only core features of OpenGL. There is interest in eventually running with OpenGL ES 3.0.

Some future features of LPSG, as well as user code, will require newer versions of OpenGL than 3.3. There will be runtime support for determining what features are supported on a platform.

Common Lisp dependencies

LPSG depends directly on the following Common Lisp libraries, among others. More will certainly be added in the future, so it is simplest to use Quicklisp to load the LPSG project and its dependencies in one go.

License

LPSG is released under the Revised BSD license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].