Scenic Graphics Library

News

2011/6/14

New homepage released.

2007/4/3

Scenic 0.12.3 released, includes a highly experimental version of java.awt.Graphics2D that uses Scenic for drawing.

2007/3/12

Scenic 0.12.2 released, new features include video capturing, offscreen rendering and floating point image formats.

2007/1/16

Scenic 0.12.1 released, improves polygon rendering performance by cacheing tesselation information and adds a new magnifying glass tool to the demo program.

2007/1/4

Scenic 0.12.0 released, modifies the scene graph to allow multiple parent nodes. Also adds support for playing QuickTime videos on Windows.

Introduction

Scenic is a scene-based 2D graphics library. Its purpose is to enable the development of graphics intensive applications using the capabilities of modern graphics cards. It aims to be fast and offer high-quality graphics. One possibility that Scenic offers is the development of resolution independent interfaces.

Scenic consists of two parts: the scene graph code, which is written in java and the rendering code which is written in c++ and is accessed using JNI. The rendering code uses either DirectX or OpenGL to access the graphics hardware.

Features

Features include:

  • Affine transformations
  • Polygons
  • Lines
  • Text
  • Images
  • Clipping to any shape
  • Gradients
  • Patterns
  • Graphics Primitives
  • Video (Using DirectShow - only works on Windows)
  • Quadratic (2nd order) Bezier curves
  • Cubic (3rd order) Bezier curves
  • Elliptic arcs
  • Alpha transparency
  • High-quality antialiasing

Antialiasing is done for lines, polygons and text. Lines and polygons are antialiased in hardware, which should enable fast performance. Polygons are antialiased using a high-quality analytical algorithm. All the used algorithms should work on a wide variety of hardware.

Supported Platforms

Scenic is available for Windows and Linux. The Windows version uses DirectX for rendering, while the Linux version uses OpenGL. The Linux version is currently more experimental, partly because good OpenGL drivers are not available for all graphics cards.

The library has been tested and works with the following hardware:

Card Windows (DirectX) Linux (OpenGL)
Radeon 9500 works works (driver: fglrx 8.18.8)
GeForce 2 works not tested
GeForce 4 MX-440 works not tested
GeForce FX 5200 works works
GeForce 6600 works not tested
GeForce 7800 works works
Intel(R) 82945G Express works not tested

Participation

Using hardware acceleration means that the library can (and will) work differently with different graphics cards and operating systems. People who want to contribute to the project can test the library on their system and fix problems that may occur. Working with the rendering code requires knowledge of c++ and DirectX or OpenGL.

The project is maintained by Jouni Tulkki. If you want to participate in this project or if you have any questions send e-mail to Jouni.Tulkki@gmail.com You can also use the discussion forums to report problems or to discuss about the library or related subjects.

Releases

See the change log for a list of releases.

History

Originally Scenic was a c++ library that run on Linux. The old library is still available at the old homepage. Scenic PDF Viewer is a PDF viewer based on Xpdf and the c++ Scenic library. The rendering code for the java project was written from scratch and does not share any code with the old library (with the exception of some small snippets). In the future the c++ library can be updated to use the same renderer as the Java library.

An even older version of the c++ library used client-server design to implement a vector based window system. You can read a work report about the window system that was written as part of an individual course at Helsinki University of Technology.