ÅÈÌ ÑÂßÒ
Íà÷àëíà ñòðàíèöà     ISSUE 6     Áúëãàðñêè
Carsten's 3D Engine
Maybe the best FPS 3D engine made by one man
There are the features of Ca3DE , version 01.April.2001
Visit Ca3D-engine homepage at http://www.ca3d-engine.de for more informations and
the engine !
Main features |
Fast BSP and PVS rendering
|
OpenGL hardware accelerated rendering under Win9x/ME/2000
|
Radiosity based lightmaps
|
Skeleton based model rendering
|
Carsten says:
    Ca3DE is developed in my spare time. More informations, screen-shots
and downloads are available on www.ca3d-engine.de
•BSP / PVS / Portal creation
These are the most important and powerful algorithms, but you won't see them in the demo.
All the magic is done here.
•Radiosity based lightmap calculations
Lightmap calculations are based on physically correct principles, thus adding a high degree of realism to the maps.
For faster processing, the lighting quality can be traded for speed. This is especially useful during map development when designers just want to get a rough idea about the lighting situation rather than the full quality for the final map release.
•Optimization passes for ideal geometry
•Because the map compiling tools do in excess of 80 percent of the hard work, and as I spent most of the time developing these tools (namely CaBSP and CaPVS), I decided to give you more detailed information about what they do and how a map is compiled. This is because it is very difficult to evaluate these tools from the downloadable demo version alone. Let me emphasise that the Ca3D-Engines power is not only a result of a fast texture mapping code, but is primarily based on the valuable work of CaBSP and CaPVS!
The wire-frame screen-shots might give you a clue to what this is about: It handles and removes all the faults and shortcomings that the map editor may have produced. Afterwards, the ideal 'skin' of the map remains. The possible downside is that, with hardware graphics acceleration, it may become more and more advantageous not to optimize too much. I'll check this out when the time comes.
•For map design, any editor that facilitates the creation of Quake or Half-Life maps will suffice.
•Map files created in this way are taken by the Qmap2Ca tool, which reads the map, converts it into my own simple map format and saves it to the disk. At this stage, no numerical processing has been done, and the file is still readable by humans. Qmap2Ca, which is an old Borland Pascal 7.0 program, does no more than rewrite plane definitions, adapting texture names and other details. Just in the case you didn't know already: Map files in this stage are of no value to any 3D engine. The sole purpose of the Qmap2Ca tool is that it saves me from having to write my own map editor.
•CaBSP performs several steps on the converted map file in order to produce a new file:
1.The above map file is loaded, parsed and basic data structures are built. |
2.A first BSP tree is created. |
3.Portals are added. |
4.Outer parts of the map are removed. This is an important step (see "Optimization passes for ideal geometry" above) that brings many benefits, such as a reduced amount of data, faster processing and cleaner maps.
|
5.Interpenetrating parts of the map are chopped up. This helps with the step above.
|
6.Steps 2 to 4 are repeated: A second BSP tree is created, as well as new portal information and another outside removal. This pass allows for optimum performance.
|
7.Unnecessary split walls are, again, merged.
|
8.A final BSP tree is created and final portal information is added.
|
9.The BSP file is written to the disk.
|
•CaPVS takes the new BSP file and pre-calculates the potential visibility set. This is a very CPU intensive task. Seth Teller has written a dissertation ("Visibility Computations In Densely Occluded Polyhedral Environments") that explains the background and how PVS information can be calculated. Although the CaPVS approach is only slightly less sophisticated, the final algorithm is clean, simple, relatively short and efficient. CaPVS required the longest development time, by far, of all Ca3DE components, which is due to the fact that I wanted to finish CaPVS while still in school, long before I had my first classes in computer science study. PVS is the key to fast on-line culling and rendering and one of the most important techniques of modern 3D real-time graphics.
•CaLight takes the CaPVS modified BSP file and adds lighting information. Although the order of application of these tools is theoretically interchangeable, CaLight makes use of the PVS data,
without which it takes a much longer time to compute telighting data.
•The final output is the file that Ca3DE uses to render the map. Several of such compiled map files are included in the download package.
There some screenshots from the map "JrBase1"
Go to http://www.ca3d-engine.de for more informations,screenshots and for the executables.
The e-zine "ÅÈÌ ÑÂßÒ" thanks to the author Carsten Fuchs!