mylaboratory
Title image
 
Home
 
Software
 
Raytracer
 
Recipes
 
Photos
 
Mashup
 

Random photo

More photos More photos

Contact

  • PhotonLab related:
    photolab@
  • PhotonLab support:
    photonlab.support@

Related areas

Related links

  • C++ @ Wikipedia
    C++ is a general-purpose programming language with high-level and low-level capabilities
  • libnoise
    A portable, open-source, coherent noise-generating library for C++
  • bzip2
    A patent free, high-quality data compressor
  • DevIL
    A full featured cross-platform image library
  • Xerces
    A validating XML parser
  • LUA
    A powerful, fast, light-weight, embeddable scripting language
  • FOX-Toolkit
    A C++ based class library for building Graphical User Interfaces

Search (Google)

Web mylab

PhotonLab Raytracing Suite

Overview

Over the last couple of years I've been writing a raytracer in my spare time. It started off as a simple recursive backwards raytracer but I've added a Monte Carlo pathtracer and a set of tools to help with processing the input and output. The most recent changes have added photonmapping to allow global illumination images to be rendered in a reasonable amount of time, and scripting of scene generation.

PhotonLab

PhotonLab operates as either a backwards raytracer, Monte Carlo pathtracer or hybrid photon mapper. It takes scenes described in XML and produces PNG, JPG and other format image files as well as a High Dynamic Range (HDR) images. The scene can describe spheres, rectangles, boxes and other shapes directly, arbitrary objects as Lightwave OBJ files, and some advanced objects such as surfaces an DLA structures. Each has a material associated with it and procedural or file textures applied as required. Any object can act as a light source. PhotonLab is built as a dynamically linked library and comes with a command line interface.

PL Texture

PL Texture is a small graphical utility for testing shaders used in my raytracer. It has a graphical user interface where shader instructions can be entered and it displays a 2D image of the result in the x-y, x-z, y-z and x-y-z plane (or (100), (010), (001) and (111) if you understand crystallographic directions).

PL Post Processor

PL Post Processor is another graphical utility for processing the images output from the raytracer. It is designed to average together many images of the same scene to produce a low noise output. The exposure, gamma correction and RGB & HSV levels can be changed and it can apply effects such as edge detection, glow, blur and cell shading. It accepts either standard image files or HDR images from my raytracer.

PL Editor

PL Editor is a graphical scene editor for the raytracer. Development has fallen a long way behind the raytracer itself, but I hope to fix that in the near future. It allows cameras and objects to be placed easily and produces a scene desciption file as output.


Requirements

PhotonLab requires bzip2 for HDR image compression, DevIL for image output, libnoise for procedural texturing, Xerces for XML parsing and Lua for input scene scripting.

In addition, the GUI programmes require the FOX Toolkit for the user interface.


Downloads

TypeNameVersionDescriptionSizeDate
zip archivePhotonLab Source
PhotonLab source4 kB(coming soon)
bzipped tarPhotonLab Source
PhotonLab source4 kB(coming soon)
zip archivePhotonLab
PhotonLab binaries for MS Windows4 kB(coming soon)
bzipped tarPhotonLab
PhotonLab binaries for Debian Linux 3.1, gcc 3.3.54 kB(coming soon)


License

+-------------------------------------------------------+
|                                                       |
|         mylaboratory General Software License         |
|                                                       |
|            http://www.mylaboratory.co.uk/             |
|                                                       |
|         Copyright (C) 2005-2007 Simon Chorley         |
|                                                       |
+-------------------------------------------------------+


This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software.

Permission is granted to everyone to use this software and all output may be used for free in commercial or non-commercial applications.

This software may be altered and redistributed non-commercially subject to the following restrictions:
 1) The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
 2) Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
 3) This notice may not be removed or altered from any source distribution.

For information about commercial licenses please contact me.


If you try it and find it useful then please let me know as I'd be interested to hear where it ends up.

<software@mylaboratory.co.uk>


Bottom image