Sorry, I totally forgot to say! I’m on Linux.
*.cmake files almost did the trick — but I had to put them in
share/cmake/Modules. My command line was:
$ mkdir build
$ cd build
$ cmake -DAPPLESEED_INCLUDE_DIR=../../../../include -DAPPLESEED_LIBRARY=../../../../lib/libappleseed.so ..
Running the makefile produced a million warnings about
auto_ptr<> being deprecated and then failed with this:
/usr/bin/ld: CMakeFiles/basic.dir/basic.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/home/dg/src/appleseed/lib/libboost_system-gcc48-mt-1_55.so.1.55.0: error adding symbols: DSO missing from command line
Boost is present and installed, it’s just refusing to link to it for some reason. I have no idea why.
So I tried hacking it:
$ g++ -g -O3 basic.cpp -I ../../../include/ ../../../lib/libappleseed.so ../../../lib/libboost_* ../../../lib/libOpenImageIO.so.1.7 ../../../lib/libSeExpr.so ../../../lib/liboslexec.so -lpython2.7 ../../../lib/libLLVM-3.4.so ../../../lib/libIlmImf-2_2.so.22 ../../../lib/libIlmThread-2_2.so.12 ../../../lib/libIex-2_2.so.12 ../../../lib/libpartio.so ../../../lib/liboslquery.so
This actually links and produces an executable. The bad news is that it doesn’t work, and crashes on startup. valgrind reports many buffer overruns accessing the MasterRenderer object allocated at line 301 of basic.cpp. This is almost certainly because my compiler has a different idea of how big the object is than the one used to produce your precompiled binaries does.
The real answer here is to build from source, but I was really hoping not to have to. I’ve had a quick go and unfortunately it doesn’t build out of the box.
Before I continue: the things I’m really interested in are:
procedural generation of geometry: I’m willing to create triangles and just hand the renderer a big mesh, but if you have an isosurface primitive that would be awesome;
procedural density functions for heterogeneous volumes (with Rayleigh scattering): I want to simulate planetary atmospheres, and so want to supply a callback which returns the atmospheric density in a particular location, and have the renderer do the rest.
Can Appleseed do this?
(Image attached, showing what I’m trying to do; it was rendered with a hacked copy of Povray. It’s showing the mountains of Jura, on the moon.)