Tree [9712aa] master /
History



File Date Author Commit
documentation 2015-02-20 Nathanael Hübbe Nathanael Hübbe [9712aa] more tutorial text and some language corrections
exampleCode 2015-02-13 Nathanael Hübbe Nathanael Hübbe [8c9cd0] a basic texture that mimics a conglomerate of d...
general 2015-02-20 Nathanael Hübbe Nathanael Hübbe [9712aa] more tutorial text and some language corrections
libbar 2015-02-20 Nathanael Hübbe Nathanael Hübbe [9712aa] more tutorial text and some language corrections
parser 2015-02-07 Nathanael Huebbe Nathanael Huebbe [7f7262] color for the ascii art output
.compile 2013-02-14 Nathanael Huebbe Nathanael Huebbe [308e2b] Shared library linking works now (including hid...
.gitignore 2015-02-08 Nathanael Hübbe Nathanael Hübbe [66af12] test code to show the different basic textures
.link 2013-02-13 Nathanael Huebbe Nathanael Huebbe [1ea5b7] Taught the build system to handle libraries.
.makeDependencies 2013-02-13 Nathanael Huebbe Nathanael Huebbe [1ea5b7] Taught the build system to handle libraries.
.testCompiler 2014-02-18 Nathanael Huebbe Nathanael Huebbe [dbd8ea] the Makefile now checks whether a workaround fo...
COPYING 2012-10-11 Nathanael Huebbe Nathanael Huebbe [e8475d] Added license notes to the files.
COPYING.LESSER 2012-10-11 Nathanael Huebbe Nathanael Huebbe [e8475d] Added license notes to the files.
Makefile 2014-04-23 Nathanael Huebbe Nathanael Huebbe [d2f25d] 'make todo' now lists FIXME comments instead of...
README.md 2015-02-08 Nathanael Hübbe Nathanael Hübbe [7ce9c3] syntax highlighting for the SDL in VIM
bar.vim 2015-02-13 Nathanael Hübbe Nathanael Hübbe [b256b3] fixed wrong highlighting of > at the line end
definitions.mk 2014-03-18 Nathanael Huebbe Nathanael Huebbe [3af550] Text!
main.cpp 2015-02-07 Nathanael Huebbe Nathanael Huebbe [7f7262] color for the ascii art output
rules.mk 2015-02-13 Nathanael Hübbe Nathanael Hübbe [8c9cd0] a basic texture that mimics a conglomerate of d...

Read Me

This project needs you!

This is an ambitious project, so, while I have much fun hacking at it, I simply do not have the time to do it all by myself. Everything of critical importance is in place now, so now is the time for you to consider contributing shapes and textures.

If you want to help, you might also want to take a look at the output of "make todo", it will list all the TODO comments I left in the code. A large part of this is stuff that was not necessary to create working base functionality, but it might be quite important to get fixed for a 1.0 release. And most of it is rather limited in extent. In other words, a good starting point to get a feeling for the structure of the code while actually doing productive contributions.

And, of course, I'm always interested in feedback/bug reports. So, don't be shy :-)

Getting started

Just type "make" (or "gmake") in the top directory. It will build everything and immediately run the parser on a short piece of test code. Currently, this code will render a simple 2D image (you can find other examples in exampleCode/, including a 3D example), both as ASCII art and as a TIFF file. Other notable make targets are:

  • make debug
    Run the parser with the test code under gdb. No optimizations.

  • make grind
    Run the parser with the test code under valgrind. No optimizations and no optimized new operator.

  • make performance
    Run the parser with some test code that performs a few time measurements. Optimization level -O3.

  • make clean
    I hope you will never have reason to use it, and if you do, please report the bug.

If you are using VIM as an editor, you can add easily add syntax highlighting for the scene description language:

  1. Put a symbolic link at ~/.vim/syntax/bar.vim to the bar.vim file in the top level directory of this distribution.

  2. Add the lines

    au BufRead,BufNewFile *.bar set filetype=bar
    syntax on
    

    to your ~/.vimrc file.

After that, you should automatically see syntax highlighting whenever you look at BrilliantAsReality scene file.

Requirements

  • GNU make (Plain make under GNU/Linux systems, gmake under some others. This is a must, other makes won't do.)
  • g++
  • m4
  • libtool
  • libtiff
  • libfreetype
  • fontconfig
  • bash

  • (pandoc) This is optional to render the markdown documentation to HTML pages. If you don't have pandoc, this build step will simply be skipped.

  • I guess, one or two more things that I am not aware of (feedback appreciated :-) )

Change log

0.1.4 Multiprocessing, better texture transformations, and color for ASCII art output. A texture is now unaffected by any transformations applied to an object before the texture is applied, however, it follows the object naturally afterwards.

0.1.3 2D bezier curves and text added. I hope, I have added a good interface to make positioning of strings much easier than it is in POV-Ray. With this addition, the 2D environment finally has reached a state in which it might already be useful.

0.1.2 Checker and gradient textures, turbulence, and the infrastructure behind it. Also a number of rather technical improvements, the most visible of which is the use of markdown syntax for the documentation.

0.1.1 Added a smooth noise texture (and the noise functions it relies on, these will become important in many places), a root solver for cubic functions, and free-form, B-spline based solid objects (linear, quadratic, and cubic splines work, I hope to add quartic splines, but that requires a quartic root solver which is not available yet. Anybody up to the task?).

0.1.0 Finally, everything of critical importance is in place and the interface is object oriented. Now its time to start expanding to make it actually useful!

0.0.4 3D rendering is functional.

0.0.3 Rendering SDL code into an image is now possible. Currently, this is achieved by simply exporting the C interface to the SDL, so some slick object oriented wrappers are still on the TODO list, but, hey, it works!

0.0.2 First library code (vectors and 2D frames), a test harness for the library code (run make check), an SDL performance test, and some enhancements to the build system.

0.0.1 Initial release. Basic functionality of the scene description language implemented, no rendering functionality yet.