Progress info on Ca3DE development

Get help with installing and running the Cafu Engine here. This forum is also for general questions and discussion of all aspects regarding the Cafu Engine.
Post Reply
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:
Progress info on Ca3DE development

Post by Carsten » 2006-12-03, 15:56

Dear folks,

I've been kindly reminded several times to post some dev. notes, so here is some information about what has been achieved in the last few months and what is planned for December.

Scene Graph

During the development of the TechDemo, it turned out that I had spend too little time with good support for Bezier Patches (curved surfaces), which in turn was difficult for a lack of a good internal scene graph representation. This made it difficult for example to extend CaLight to take not only world faces, but also Bezier patches, terrains and other objects inside a map into account for the Radiosity computations, and also hindered my work about map-/entity-scripting.
Therefore, starting in August, I concentrated on implementing a good scene graph representation to resolve all kinds of subtle problems. The work has been pretty successful, and although I don't consider it 100% perfectly finished, it is now in a state at which it is useful so that I can move on to other code that uses it.


CaLight and Bezier Patches

The CaLight Radiosity compiler and Bezier Patches ("BPs") received special attention during the Scene Graph development, because I wanted to revise CaLight to be agnostic of the type of surface for which it computes the Radiosity solutions, so that it generalizes to BPs and other objects, plus the old Bezier patch code was a set of early fragments that needed thorough revision anyway.


Material System enhancements
  • Many completely new textures were created for and placed into the upcoming TechDemo map.
  • As the quantity and quality of these images is very high, I also implemented support for the Texture Compression extension of modern graphics boards, which Ca3DE automatically employs to reduce the amount of graphics RAM required. The recommended amount of graphics RAM for the TechDemo will be 256 MB though, although it will also work with 128 MB or less.
  • New keywords were recently introduced to the Material System, see http://www.ca3d-engine.de/wiki/matsys:c ... r_keywords for details. The initial reason for these new keywords was to let CaLight better know which surfaces block Radiosity light and which don't, but I've designed them more generally for use with future revised collision detection code.
Current work and plans for December

My main goal in December is to provide map-/entity-scripting, using the programming language Lua. The Scene Graph has been a requirement for that, and I intend to focus on this task before the next demo release. I'd prefer to talk a lot more about this topic, as it is the center of development right now, but it's also too early, and things are evolving rapidly. I'll keep you posted about the progress though!

As a warm-up, I'm currently also changing the Ca3DE in-game console to employ Lua as a base, too. This is already almost done (essentially the work of one Friday afternoon and one Saturday night). This will be complete in another day or two, and brings many nice improvements, and the code gets again a lot cleaner.
I'll also change the Ca3DE keyboard input handling, so that console input finally works with everyones native keyboard layout - no US layout forced on everyone anymore.
I'm very happy and confident about the new Lua console in Ca3DE, as it brings both users as well as the code a lot more clarity and power.

Additional ideas and plans, that will either make it into the next demo if there is enough time, or into the one after that otherwise, include:
  • Vegetation. The island (outdoor part) is still pretty bare, and it would be a good time to add some plants to it. Several approaches are currently investigated, and the result will probably be a well measured mix of them. My personal intention is to finally employ my old code from university here, giving us trees like these:
    Image
  • A "File System" that allows Ca3DE to read files transparently from disk, from .zip or .7z files, or from the internet.
  • The direct combination of Radiosity light with "dynamic" light. This does not mean to have both Radiosity lightmaps and dynamic light sources at the same time (we have that already, and it works very well), but I want to present Radiosity light as effective (e.g. inclusive specular highlights) as dynamic light. It's difficult to explain - I'll let you know as soon as the first screens are available. A thousand thanks to Robert aka. Tr3B for bringing my attention to this technique!!
The next demo release in January

The release of the next Ca3DE Demo, which will feature a first release of the Ca3DE TechDemo, is scheduled for January 2007. The TechDemo will certainly be far from "complete" until then, and maybe it will not even achieve the quality and performance that I aim for, but it will definitively be released in January (February the latest), and then followed by new releases in much shorter periods than the last.
Best regards,
Carsten
User avatar
Stephen
Posts:75
Joined:2006-05-01, 06:34
Location:Australia
Contact:

Post by Stephen » 2006-12-04, 07:49

Looking good! Can't wait for the demo!

-Stephen
Post Reply

Who is online

Users browsing this forum: No registered users and 100 guests