The Making of Angelic Forum
by Wie8 and MasterM of ALLien Senses
Textured NMSHPRT shaded bench.
NMSHPRT shaded objects with shadowing (via shadow maps) turned on.
Same image but different HDR exposure level used.
Diffuse texture on an angel model as seen in Autodesk 3D Studio MAX.
Modeling an angel's statue. Different phases.
An angel from different views.
Our ultimate demotool in action.
Plants, sunflowers and a typical tree model used in the demo.
Bloom effect on a NVIDIA graphics card.
The same bloom effect this time rendered using ATI graphics board.
Codi's flying machine model
Flying machine's engine in close-up view
In this article I'm going to describe the process of making the demo "Angelic Forum". A small version of this "making of" was published in issue #33 of Hugi Magazine. However, in this article I'm going to show you some unpublished images from the production process, explain the technology we used in creating it and describe major problems which had to be overtaken.
Let's begin with a technology overview. The demo's engine utilizes full HDR rendering and Shader Model 3.0. Why? Because we used NMSHPRT lighting and resampled shadow maps. Both of these could only be achieved using SM3 and NMSHPRT definitely looks better in HDR. So what is NMSHPRT lighting anyway? It's Normal Mapping for Precomputed Radiance Transfer, a second incarnation of SHPRT lighting which at this time utilizes normal maps to simulate bumpy surfaces on objects. PRT lighting allows the rendering of geometry with complex global illumination. It's interesting that very few demos utilize this kind of shading technique. The best examples would be 195/95 and Final Audition by Plastic. Below you can see a comparison of SHPRT lighting with normal maps used (NMSHPRT) and without them (regular SHPRT)
NMSHPRT shaded bench.
Regular SHPRT shading on an angel model.
Angelic Forum is probably the first demo ever to utilize NMSHPRT lighting. Here are some other examples of this kind of shading in action:
On most of the screenshots, Paul Debevec's cube maps are used together with precomputed spherical harmonics samples.
Regular SHPRT shading on an angel model.
Making high quality normal maps which would allow us to produce desirable lighting was a real pain in the ass and required great patience. We decided not to use high poly models for that. All normal maps were produced using transformed diffuse and height maps combined together.
Despite advanced lighting we decided to also use lightmaps in some of the scenes. For example the angel's statue scene used plenty of baked lightmaps. The results were surprisingly good and it turned out that lightmaps improved overall shading quality in very significant way and exposed "hidden" depth in textures. What is more, we could also animate shading by realtime PRT rotation on every axis. All of the above gave us extreme arbitrariness in manipulating and animating lighting in the scenes.
Modeling and Texture Mapping
Average polygon count for every scene varies from 80 to 150 thousand faces. I can personally say that as a graphician I really could put emphasis on details (and I hope it's seen). The angel's scene has about 150 thousand faces so it is clearly the most demanding scene of the demo. A GeForce 7600 graphics board renders it at 15 frames per second. Every frame of animation has to be rendered six times due to the shadow map resampling process so as you can see how great computation power is required.
The most difficult thing in making the angel's model was texture mapping. Despite using a high resolution 1024x1024 image, the texture on the model was extremely pixelated and blurry in close-ups. Then I divided the model into six subsections (head, hands, shoulders, wings and two parts of the gown). Every subsection was separately mapped with a 1024x1024 texture which preserved detail even in great close-ups. A similar method was used for the surrounding columns. Another hard to solve problem was the variety of tools used in the production of the demo and incompatibilities between them. All the ALLien Senses graphicians have been working on 3D Studio MAX, one of Anadune's graphicians in Modo and, what is most important, the engine used Maya. Due to this I had to quickly learn to use Maya to be able to complete the whole thing. Unfortunately this situation influenced even the concepts behind the demo. We resigned to make animated characters because no one knew how to use the bone system in Maya.
Generally speaking the demo's storyboard was based on the symbolic meaning of every element. For example, the house scene was a place where the Inventor (mentioned in the "lyrics") lived, the flying machine and the balloon were symbols of his genius and so on. At first we planned the demo to be much longer. Many extra elements like benches and an animated sequence of building the balloon were made but went unused in the final version. Also, the first concept of the demo's storyboard included some scenes like the Inventor's dream where his past and current ideas would have been shown as well as the exposition of his projects, plans and drawings. Unfortunately we didn't manage to realize it but in the infofile you can find the extended version of the "lyrics" which includes verses originally written for those scenes.
When it comes to animation I must say we did a horrible job. This was mainly because I was completely unfamiliar with Maya and somehow managed to make all the transformations completely broken after a few tries of editing camera tracks. But when we realized that all the stuff was fucked up it was too late to try to fix it. So I had to animate nearly frame to frame which was a horror not to mention the lack of any control of animated cameras. What can I say? That was the price for finishing the demo on time. It was very important to us to release it at Breakpoint.
Before making the actual demo I had to learn the demotools coded by Mr. Acryl which later I used to put everything together, set lighting environment, do post processing etc. Let's move to next topic before I bore you to death with its technical details.
An enormous number of various plants like burdocks, poppies, cornflowers, sunflowers and trees were created. All of them were modeled and textured by Slizgi, our landscape specialist. Every plant has an average number of 500 triangles and uses alpha channel coverage. We also planned to code an algorithm for generating three dimensional grass and render it, and other vegetation as well, with normal and specular maps but this idea was abandoned because it turned out that it would have required too much computational power. Pity considering the fact it would surely have added a lot of detail to our scenes.
ATI vs. NVIDIA
Another problem were numerous incompatibilities between ATI and NVIDIA cards. At first the demo didn't even work on Radeons which caused a sort of panic before the deadline cause we know that compo machine was going to be powered by an ATI graphics board. Fortunately thanks to Shexbeer / Addict most of the incompatibilities had been removed. Still on ATI cards the demo doesn't use floating point rendertargets which results in limited precision fake HDR rendering so obviously some effects looks much worse than on NVIDIA boards. For example, the bloom effect is extremely oversaturated not to mention very pixelated cube maps due to ATI's lack of hardware bilinear filtering on 64 bit floating point textures.
The main inspiration for us was clearly a beautiful track composed by Defactor of the same title as the demo. As you can remember he is an author of music in both Awakening music disks. Unfortunately we cannot use it in the demo because Defactor left the group some time ago and it was sold to a commercial movie "Aviator". What is more, the concept of flying machines is quite similar to that in the demo Relais made by Kolor. But the truth is it didn't inspire us to create this kind of stuff. The real inspiration came after we had seen Leonardo Da Vinci's projects and drawings of his aero plans. He was truly a great man and in some way became a prototype of our Inventor's character.
The soundtrack for the demo was composed by two well known Amiga sceners: JazzCat and Chaser. I personally think they did a great job.
Currently we have plenty of projects started here in ALLien Senses. Our goal for now is to release mainly demos and intros (from 256 bytes to 64k) and be as creative and productive as possible. We built a small introsystem so be prepared to see our first 64k intro on Assembly's 2007 bigscreen (hope we'll finish it on time). It's going to be our last production in the dream / fantasy style.
Out next demo is going to be released at a brand new Polish demoparty called "Riverwash" which will take place in August. By the way, we want to invite everybody to attend this demoparty. It is currently the only party held in Poland so don't forget to come to Riverwash 2oo7 and support the Polish scene!
Congrats, you have reached the end of this article. I hope it was interesting. I want to thank every person involved in making Angelic Forum. Without your help and support this demo would never come to life. Special thanks goes to Mr. Acryl, Codi and Dzordan.
Bye and see you soon at Riverwash!
Wie8 & MasterM ALLien Senses demogroup. firstname.lastname@example.org www.asenses.scene.pl
Go back to articlelist