pouët.net

The 3/4 Delusion by Fulcrum [web]

The 3/4 Delusion by Fulcrum (party version)
--------------------------------------
on the net: www.fulcrum-demo.org

Requirements: 
-------------
- Windows (tested on XP & Windows 7)
- OpenGL 2.0 compatible Videocard, but with so many extensions (geometry shaders, 32-bit float and int rendertargets,...) it might as well be a 3.0 card.
- This demo sounds better with a soundcard.

While I didn't go out of my way to do things nvidia-only, this demo was developed entirely on nvidia hardware, so unless the AMD shader compiler has become far less picky, this party version probably won't run on AMD cards. But don't panic, I do have an AMD 5770 which I hope to put back in my PC when I'm back home, so the final should work at least with the AMD 5000 series.

General info:
-------------
This demo started a year ago when I read Smash/Fairlights excellent description of the particle system used in Agenda Circling Forth. It inspired me to upgrade my old 3D flame fractals with geometry shaders and on-GPU calculations. Next was learning the intricacies of depth opacity shadow mapping.

Then I wanted to add dancing figures, which I had for the longest time but required a 3D artist we don't have. But hey, Microsoft just released an SDK for their Kinect, which is able to do body recognition on two people at once, even with overlapping bodyparts! Well, in reality that didn't work out very well. In the end, we had to record the motions for the men and woman seperately, and try to stitch them together in software. If I have the time and energy, I hope to add more complicated dance movements (reverse turn, maybe a proper opening) in the final. 

Usually I pick a sountrack from one of our musicians unreleased tracks, but the dancing required a tailored approach. Coplan used his classical training to crank out a combined demomusic/waltz soundtrack, probably one of the weirder requests someone ever asked him.

By then it was summer, and I missed the Buenzli deadline I had set for myself. But a crucial part of the demo was still too slow: the mandelbox fractal that had to serve as the background for the dancers. I had started from Rrrola's excellent Boxplorer, which is one of the fastest mandelbox renderers there is, but which runs at only 1-2 FPS in full HD on my old GTX 8800. Allowing for faster hardware, I was hoping to speed it up 5 times (nothing wrong with being ambitious, right?) But improving it beyond 30% proved to be a though nut to crack.

I took a 2-month sidetrip to OpenCL, trying to use stream compaction to trade computing power for bandwidth. That cranked the speedup up to 70% on my old card, but on my laptops GT540M, it was 10% slower! Modern cards seems to have improved far more in raw computing power than in bandwidth, so that tradeof didn't make sense and I abandoned the OpenCL approach. The breakthrough happened when I stopped trying to match boxplorers rendering exactly and allowed for some visual corruption. One of my old approaches, tested with wrong parameters, gave a very fast result with only limited visual degradation. 

By then I was really starting to get tired of working on the demo, so I took my remaining holidays to get the demo finished in time for TUM. Coplan had his music PC break down on him, so mastering was done by Psitron. Due to an emergency, he couldn't provide the final panning yet, so the party version has a way-to-big intermediate mixdown version. 

In the end, plenty of time was lost with obscure bugs, so the demo is not quite as polished as I had hoped it would be, but it'll have to do. It's been a learning experience for sure. Thanks to Yncke for helping me with some color scheme choices, for the Pouet criticaster collective has pointed out in the past that that is a weak point of mine (coder colors are of course all mine)

Disclaimer:
-----------
This demo was largely coded in a state of sleep deprivation, and the codebase builds upon years and years of bugs.
Anything that happens when you run it is not my fault.

3th party stuff:
-----------------
This demo uses the following libraries:
SMPeg and SDL under the LGPL (see a copy in Data/COPYING), JpegLib under the modified BSD license, Xerces under the Apache Software License 2.0, and ZLib and LibPNG under the zlib/libpng license;
The desert dunes model is by Potato from the www.blendswap.com.
The sky, sand and stone textures are from www.cgtextures.com.