Mod Project: Zombie Holocaust

Discuss artwork in all of its forms here, from level design to GUI button themes. New MODs planning, work-in-progress and other samples are welcome in this forum as well.
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:
Mod Project: Zombie Holocaust

Post by Kai » 2009-02-22, 06:24

Hi Team

i started the thread as a personal logfile for progress and to know what we need and found out.


First of all let me tell you Carsten, that i spend a few hours to get back into Ca3d especially CaWe.
Carsten, great work on the new terrain tool, works very well now besides a few flaws i found (and some bad icons :) )

CaWe
My look around the editor took me a while, i started to find a workflow into the current system, not always finding what im looking for.
I also did some compare to a very strong editor that is now proven for years as a very good editor of current generations of game-technology, based on bsp trees.
I'm speaking of UnrealED 3 (UED 3) which is sure one of the most matured editors currently available.

You know that I'm not a level designer, so I'm not really familiarized with needs and workflow as much as with my 3D work, however i found time to watch lectures and tutorials that give a very, very deep and complex insight into level editing nearly every aspect with UED3 by professional guys at Midway (who did some games with UED3 for example Unreal Tournament 3).

Of course its not possible to compare directly, but i guess it will help to show you, what the current standart is and what is really important to have.
I know that you are currently working on new features like physics, and some new Wx stuff for the editor. Pretty cool and i cant wait to get my hands on it, but i also would like to know more about old problems that still need some work, especially static models and their light contribution !
While with the UT engine nearly all detail is based on imported meshes (grouped in so called "packs" based on a theme) Ca3D still rarely uses meshes for detailing, simply because there is not much content, which we would like to change.

But what about the light calculation ? As far as i remember you still not calculate radiosity for meshes ?
Unreal Engines are using "simple" lightmap based calculation without bouncing, for static shadows and light. However the calculation can be set for each static mesh individually and will be saved as a vertex color channel or a seperate lightmap channel. The result is pretty good and merge very well into the lightmap of the level.
Its also pretty nice to be able to set lightmap size per bsp face.

As example here is a screenshot of a level that contains nearly only static meshes but has nice lit per vertex
http://www.unrealtechnology.com/media/b ... ing-10.jpg

Same scene adding shaders on top of the baked lighting
http://www.unrealtechnology.com/media/b ... ing-11.jpg

It would be very important to make sure we get a vertex map channel for static (and maybe dynamic) meshes, as it would help to merge objects much better into the current lighting calculation. im not sure how much time this will take with really rich environment and high settings for radiosity calculation.

Here are some more infos on static meshes in UED3 and static light contribution
http://waylon-art.com/LearningUnreal/UE ... htMaps.htm

I have written down a lot more things from bugs to workflow ideas and so on that i would like to send to you, Carsten as a generic tester list for the Ca3D development not especially for the mod, if you like.


The other part would be to rebuild the pipeline for exporting content like meshes into the engine properly, for static stuff we used .ase as far es i remember, md5 was best for animation. der_tons exporter was quite the best if i remember correctly in Max. So im looking forward to retry the pipeline.
We need to set up gridsizes in max to export properly, ill try to find my old notes or posts, im sure that i found a setting in the past for static mesh export in max.

Also how about a similiar way to store or collect meshes in packages like in UT. It makes a lot of sense to store, shaders, static items and so on in a kind of library, using so called "packages" with a theme, like wood_floors_01. It could contain Meshes as well materials and textures for this theme.


For the mod:
Enrico and i are ready to finish the first zombie models, and these can be used as a player model replacement.
I'm also trying today to export some static meshes, so far so good :)

And i think you need some new icons for the terrain tool ? I'm on this as well :cheesy:
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-02-22, 08:37

I researched for some more up-to-date render techniques, as stencil shadows are not really popular anymore due to their poly based nature. Shadowmapping seems to be less accurate but much faster and versatile for arbitrary geometry and post effects.
So i found an interesting pdf (again :) ) regarding "Deferred lighting" against "forward rendering".
Of course this looks like a big thing probably for a Ca3D release far more in the future, but according to the experience by these people with their own engine, they describe the method as quite easy to implement and giving much better performance, as it is more independent of scene complexity and less cluttering for shader and light management.

http://www.leadwerks.com/files/Deferred ... Engine.pdf
I wonder what you think about this, it sound to solve many similar problems like in Ca3D, they describe also quite the same technical issues with shader and lights.
There also some tips hoe to setup the bit depth for the render.

Could this be of some help for future releases ?

These guys also have some nice videos on vimeo
http://vimeo.com/user768782/videos/sort:date
Like for water reflection\refraction
http://vimeo.com/2411794


For Shader:
Here is a link with explanation for UED3
http://waylon-art.com/LearningUnreal/UE ... Basics.htm
I really like the way they provide infos and all shader can be setup really powerful and comfortable.

Another really good example of a matsystem is mental images mental Mill, it is free (artist version) available
http://www.mentalimages.com/products/mental-mill.html
http://www.mentalimages.com/products/me ... ition.html
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Carsten » 2009-02-22, 13:10

Hi Kai,

Nice to hear you like the new Terrain Editor! :-)
Since the current version, I've made a lot of changes to the internals of CaWE, and I'll finish the wxAUI changes this week.
The behaviour of the tools changed a bit, especially new objects (brushes, bezier patches, terrains, entities, models, etc.) are now created with a single click or rectangle-drag. No intermediate 3D box for setting the third dimension any more. I'll update the documentation later. Moreover, everything (like grid-snap behaviour) is much more consistent than before.
In the new version there is also the danger of new bugs that I accidentally introduced when large parts were rewritten, but I hope that there are not too many of them. I'll fix any bug I hear about immediately though.

In any case, please let me know about any bugs or problems that you find with CaWE!
This is especially true for the upcoming new version, that I can hopefully send you next week.
(If you really want to make sure that the cycle "bug report - bug fix" is very short, you should ideally get and install the MS Visual C++ 2005 or 2008 compiler and get Subversion ready... ;) )

Also, I'm very interested in the UED 3 editor! While we can likely not do much about key differences between CaWE and UED3, it's the "smaller" features that I'm interested in:
  • How do they present "tool options" of the current tool to the user?
  • How do they visually present the world (2D or 3D, both)?
  • etc.
Please let me know about any insights in this regard!

About model lighting:
Well, the two screenshots are impressive, but I'm wondering whether they show static or dynamic lighting?
Does the large lower floor surface consist of a fine triangle mesh, does it have lightmaps, or is it lit dynamically per-pixel?
Also the "glow" around far objects suggests some dynamic and/or post-processing...

In any case, in Ca3DE you can achieve similar results - when implemented with the Ca3DE techniques. You would have to build the main structures from brushes and bezier patches, and add models for detail.
Models in CaWE can not be "huge", because Ca3DE currently lights them with a trick that may not look good when the models become too large, but for the detail objects like those under the bridges that should not be a problem. Good news about this is that I can enhance the Ca3DE code in the future, and existing models will just start to look better!
In summary, I'll look into this (the problem should be fixed for both static as well as animated and moving meshes), but right now you should not worry about it.
I have written down a lot more things from bugs to workflow ideas and so on that i would like to send to you, Carsten as a generic tester list for the Ca3D development not especially for the mod, if you like.
Yes please! :-)

About the theme packages: Well, Ca3DE supports "virtual file systems" already, i.e. you can "mount" an entire folder structure that exists e.g. in a ZIP file (or a HTTP connection [not yet implemented], or anywhere else) anywhere. The ZIP file implementation is complete, although the usage is currently still hardcoded (e.g. which of the zip files is mounted where). That's easy to change though.

I'd of course be happy about new Terrain tool icons. As you can see in http://www.ca3d-engine.de/forum/downloa ... ?id=97&t=1 your original icons are still in happy use as well. ;-)
(I cut and rescaled them though, and added transparency. 16px icon height is a problem, maybe I'll do it all again with 24px or 32px.)


About shadows:
Well, yes, stencil shadows have their problems, and I'm eager to additionally introduce shadow maps - even though shadow maps come with issues of their own.

Deferred shading is indeed intriguing, I've heard about this technique long ago. http://en.wikipedia.org/wiki/Deferred_shading has a good summary, also mentioning some disadvantages. Good news is that Ca3DE is flexible enough for trying it out relatively easily - it could coexist with the other "forward-rendering" renderer-DLLs, but writing one is still a lot of work. Maybe someone can do it later once Ca3DE is released as open-source.
Best regards,
Carsten
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Carsten » 2009-02-22, 13:22

Kai wrote:Here is a link with explanation for UED3
http://waylon-art.com/LearningUnreal/UE ... Basics.htm
I really like the way they provide infos and all shader can be setup really powerful and comfortable.

Another really good example of a matsystem is mental images mental Mill, it is free (artist version) available
http://www.mentalimages.com/products/mental-mill.html
http://www.mentalimages.com/products/me ... ition.html
Oh, somehow I missed these links before I wrote my above reply.

Ok, thanks for the information / links!
I like the UED3 shader setup, but note that it is essentially not more powerful than Ca3DE's - it's just the "user interface layer" that (seems to) make a difference. ;)
Best regards,
Carsten
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-02-22, 23:42

Hey Carsten, nice you reply direct on my post :) On weekend i spend most of the time in the office, and do research or work on my own things, i did not bring any laptop with me so my office workstation is the only pc i have right now :oops:
When back in germany i own a new Mac Book Pro, so i'm more flexible with work (my old laptop is too old and a heavy,loud "brick" )
However i have small portable hd and of course my webspace which was increased up to 11 Gig without extra costs.

So lets see what my current progress is:

I tried yesterday to export from max into ase which was simple, and it worked (nearly) as i expected.
My main interest was to find how precise the size was exported, and i was suprised that is was a 1:1 export 8)
However the most "painful" part was to manually add the shader path inside the .ase and then add the texture paths into the static.cmat shaderfile
Thats where a mix of current modelviewer (as executable please) and new material editor would come in very handy:

Its main purpose would be to
  • load multiple asset components, like shader, textures, objects into the editor
  • create\modify cmat files
  • create\modify separate shader
  • assign shader to objects
  • inspect shader on objects
Nice to hear you like the new Terrain Editor! :-)
Since the current version, I've made a lot of changes to the internals of CaWE, and I'll finish the wxAUI changes this week.
The behaviour of the tools changed a bit, especially new objects (brushes, bezier patches, terrains, entities, models, etc.) are now created with a single click or rectangle-drag. No intermediate 3D box for setting the third dimension any more. I'll update the documentation later. Moreover, everything (like grid-snap behaviour) is much more consistent than before.
In the new version there is also the danger of new bugs that I accidentally introduced when large parts were rewritten, but I hope that there are not too many of them. I'll fix any bug I hear about immediately though.


In any case, please let me know about any bugs or problems that you find with CaWE!
This is especially true for the upcoming new version, that I can hopefully send you next week.
(If you really want to make sure that the cycle "bug report - bug fix" is very short, you should ideally get and install the MS Visual C++ 2005 or 2008 compiler and get Subversion ready... ;) )
Very cool , i would love to try it out, by the way i managed to make the editor + engine run properly on my workstation here !
Send me a link to a working Version and i do as much testing as possible.
Here are my first notes on the editor:
  • When compiling i have to start the level manual and i also have to exit the engine which is okay once but when testing lights its quite annoying. Could you instead just run the level directly and then exiting it by just press esc. That woul speed thing up quite a bit !
  • There is no support for widescreen resolution in Ca3D like 1680*1050 or even 1920*1200, i guess its easy to add this to the ini ?
  • The tool settings for the terrain are persistent regarding the current tool i select, which is not really good, would be very cool if it memorize the settings per tool
    Would make sense to group them however, like raise and lower tool share the setting, but when going to smooth it memorizes the setting. I have some more impressions but ill post them later
  • The viewports are still somewhat unflexible, and i miss the ability to maximize them (in combination with a higher preview quality). Currently windows are not unified, it not possible to have multiple 3d views.
  • Instead of dropdown lists, it would be faster to have buttons like in UED for viewport and renderstyle (im on that if you need it)
  • Navigation is not my style, it feels awkward to press space to navigate, as it is one of the most used needs, so no extra button should be needed to be pressed !
    my suggestion would be to map the key more like in UED3 which is very intuitive
    Here is the key list for navigation:
    • 2D Mode
      • LMB drag - panning viewport
      • RMB drag - panning viewport
      • LMB + RMB - zooming in\out
      3D Mode
      • LMB drag up\down - dolly camera (move forward, backward)
      • LMB drag left\right - pan left right (rotate left, right)
      • RMB drag all - pivoting camera in all directions (like mouse look)
      • LMB + RMB - move vertical and horizontal
      • hold U + LMB drag - tumble around camera local pivot
      • hold U + RMB drag - move towards\away the local pivot
      • hold U + MMB drag - Pan in local screen space
      • hold L + LMB (item selected) snap and tumble around selected item
      • hold L + RMB (item selected) zoom towards\away selection



Also, I'm very interested in the UED 3 editor! While we can likely not do much about key differences between CaWE and UED3, it's the "smaller" features that I'm interested in:
  • How do they present "tool options" of the current tool to the user?
  • How do they visually present the world (2D or 3D, both)?
  • etc.
Please let me know about any insights in this regard!
I write a long list with a comparison between UED3 and CaWe but it takes time as i need to filter out unnecessary stuff.
Let me know if a specific part has more priority than another.
About model lighting:
Well, the two screenshots are impressive, but I'm wondering whether they show static or dynamic lighting?
Does the large lower floor surface consist of a fine triangle mesh, does it have lightmaps, or is it lit dynamically per-pixel?
Also the "glow" around far objects suggests some dynamic and/or post-processing...
It's all static (in this case), UED3 is relying heavily on static lightmaps and they have not much dynamic lights, except for moveable objects like a lift or a door.
I guess the entire scene is covering 90% static meshes. And yes the glow is a post process effect, the view is set to lightmap only.
The reason is simple, speed and performance. All static meshes can have two possible ways to store the light of the enviroment:
  • Lightmaps: using the level light calculation, the engine calculates a new world lightmap-texture, and adds the uvs of the object (stored in a secondary UV channel), and stores all light information, the lightmap will then be added to the object shader automatically
    This method is more accurate then vertex color, since its independent on the mesh resolution, however it increases the lightmap size and therefore it would take longer to load
  • Vertex color: for every vertex of the object, the engine bakes the light information into a vertex color channel.
    The advantage seems to be less memory consuming, as no lightmap is needed. But the drawback is that it is bound to the resolution of the mesh itself, and therefore can produce a really weird result on lowres meshes.
Both methods can also be done in external packages like Max, all kind of surface information can be baked into uvs based maps, or even vertex color.

In any case, in Ca3DE you can achieve similar results - when implemented with the Ca3DE techniques. You would have to build the main structures from brushes and bezier patches, and add models for detail.
In UED the level is coarsly build up with bsp brushes (the entire level could only take less then 20 minutes on a small one), the rest is populated with large amounts of static meshes for the floor, walls, bridges, handles, doors, and whatnot. Nearly all details are made of premade meshes. Like playing with lego, these modules of meshes fit into the grid space, but can also be scaled to fit perfectly. It really impressive to see that about 80 percent of the level made out of meshes instead of bsp, as it gives rich detail and awesome look.
The drawback again is that you need at leas quite a big amount of assets to populate the level with it.
To streamline this process it would be very helpful to have a more versatile way of creating and editing the exported components as preparation for CaWe

Models in CaWE can not be "huge", because Ca3DE currently lights them with a trick that may not look good when the models become too large, but for the detail objects like those under the bridges that should not be a problem. Good news about this is that I can enhance the Ca3DE code in the future, and existing models will just start to look better!
In summary, I'll look into this (the problem should be fixed for both static as well as animated and moving meshes), but right now you should not worry about it.
An important part as well, for complex light situations and color transitions its vital to be able to store the light situation of the environment as precise as possible.
I noticed that most of the Ca3D levels are much to overall bright, and they lack of contrast in specific areas.
Beside the fact that it would be much better to have more control over the lights (dynamic as well as static) in terms of falloff-exponent, range, animated functions, shadow color, shadow resolution, the axis a light is pointing to (and an option to "look through" or pin it to the 3d editor cam, for better positioning of a spotlight i.e.), a realtime approximation of the light situation or a fast precalculation view.
UED3 uses a this way: Placing a new light will cause the editor to represent this light as a dynamic light, causing shadows to be visible as long as there is no light calculation processed.
After a light calculation inside of the editor, the light effect will be baked into the lightmap. If you grab it again and move it, it will be again showed like a dynamic light as the lighmap solution it obsolated and needs to be recalced again.
This offers great visible feedback and approximation for the light situation. However all lighttypes in UED are not able to bounce light of, so they need to fake it using additional lights (not accurate as GI or radiosity like in Ca3D but faster in calculation speed)

And here is another thing that i found out to be very awkward so far:
CA3D has a physical correct lighting calculation, which is great, but its very hard to get full control of the potential. Textures define radiosity light, however i can't change the intensity or color or even the flag of being an illuminating texture inside the editor (i can only filter out those who already have a flag and a preset for radiance)
Thinking about this this approach seems very complicated and in some way inconsistent, unlogical:
If the calculation is fixed on a texture i can only have one radiance setting for this texture or i have to create multiple versions of this one texture.
Why is it fixed on a texture anyway, as the radiosity calculation does not take texel color into the calculations ? (for good reason as it would increase time a lot i guess)
For color its also not possible to have a basic vertex color or even plain color inside a shader that affects the radiosity calculation which would give a nice effect of color bleeding and produce a more realistic result (it would also be no problem to average a texture color value and then set this value as the bleeding color).
A mainly red texture would then reflect light more in the red spectrum.

Currently all levels are having plain white color bouncing, only colored light can cause variation, that's a waste of a possible ability.

My suggestion would offer a more flexible solution:
  • Offer an area light entity, that is simply a flat square with a arrow representing the face normal. This light can be moved, scaled and rotated so it fits most light requirements, its fully adjustable.
  • Offer a new material attribute for a constant color and the intensity, that can be taken into the radiosity calculation (possible flags for "receive only" and "cast only" if that's possible, to probably speed things up).
    This would still open the possibility to give very complex bsp geometry as well as static meshes the ability to take part of the radiosity process.



I'd of course be happy about new Terrain tool icons. As you can see in http://www.ca3d-engine.de/forum/downloa ... ?id=97&t=1 your original icons are still in happy use as well. ;-)
(I cut and rescaled them though, and added transparency. 16px icon height is a problem, maybe I'll do it all again with 24px or 32px.)
Great i'll made some new ones as vector based files only, so the psd file can be rescaled at any size without pixelation. Also a new alpha channel can be used in a 24/32 bit png or tiff
Tell me what you need.
About shadows:
Well, yes, stencil shadows have their problems, and I'm eager to additionally introduce shadow maps - even though shadow maps come with issues of their own.

Deferred shading is indeed intriguing, I've heard about this technique long ago. http://en.wikipedia.org/wiki/Deferred_shading has a good summary, also mentioning some disadvantages. Good news is that Ca3DE is flexible enough for trying it out relatively easily - it could coexist with the other "forward-rendering" renderer-DLLs, but writing one is still a lot of work. Maybe someone can do it later once Ca3DE is released as open-source.
Sounds good :) According to the pdf the most problematic components of this method are transparent parts (need to use a modulated calculation) and Full scene AA which can be accommodated with a edge detecting shader the blurring these parts.
The rest seems very reliable.. im eager to see future move to this direction



Update
Here is a first impression on a zombie model with a vertex based coloring that could be used later for a realistic sub surface scatter shader (here the back face scatter coefficient )
Image

ill let you know more when im having more infos on all this stuff
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Carsten » 2009-02-27, 18:28

Dear Kai,

wow, the image looks awesome!!! :D

Sorry for not having replied to your posting yet. I'm currently very busy with improving CaWE (finished soon!), but I've at least partially replied to your post, please look here.

Two more questions:
  • Matching
    Instead of dropdown lists, it would be faster to have buttons like in UED for viewport and renderstyle (im on that if you need it)
    I've currently implemented TAB and Shift+TAB for switching through the 2D and 3D view types. What do you think? ;)
  • Do you want to continue to keep this thread in a restricted-access area? Things look so good here, I'd like to move it to one of the publicly accessible forums...! :wman:
Best regards,
Carsten
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-02-27, 23:03

Hehe the image is only a fast wrap up, its not even started, but i think specific shader could work very promising. Since my thesis will have realtime shader as main part, i want to try out as much as possible.
I found out that a realtime Subsurface scatter shader seems to be very simple (basically it performs a render to texture from the current light situation on UV space and then performs a blur on it) The only problem would be in situations where uvs are mirrored so it would not be possible to "bake" the proper light situation for both parts when only one is lit.
Maybe in this case i have to avoid mirroring uvs for skin parts or using a different cheaper method (using incident angle etc.)

For the character:
its not even detailed but yesterday i tried out a first session, was pretty funny, i think ill show a new pic today in the evening.
I've currently implemented TAB and Shift+TAB for switching through the 2D and 3D view types. What do you think?
great sound much more versatile (tab as toggle would also do the job even easier)
Do you want to continue to keep this thread in a restricted-access area? Things look so good here, I'd like to move it to one of the publicly accessible forums...!
Do they ? :) Im not sure if it is currently enough, so i guess we first do some more finalized workflow then some more mature images. Its much more suprising to show more finished stuff.
I remember doing so much models as wip but never really finished them so they moved ito the engine. This time i want to make sure its at least finished with textures ;)
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-03-01, 03:15

Here is a first impression on a female Zombie:

Using the base mesh i sculpted in lots of anatomical details, since its all about some very old zombies (about few years) it is interesting to think haw the would look like.
My idea is to create this one as a rather "younger" female zombie, so she is not one of the first infected.

In order to visualize this a little more i had some theoretical causes for their poor status Its not relevant for the game or the story but could help to give even a zombie a more believable appearance. So here is my idea:

The zombified status is caused by some unknown virus (of course) an causes the human body to change, however this person is not dead and never was ! The virus seems to try to make organic life more durable while changing cells and enzyme. Cells are recoded by the virus to be more resistant against diseases and other influences, however the downside seems a near total lost of metabolism. A disease can no longer be spread out but already dead or infected material can not be dispensed or regenerated, causing wounds never to heal but also never to infect the "healthy" parts around it.
A reason why zombies are so slow and also affected by temperature (lack of metabolism also reduces body temperature and agility), and even worse is that the brain function is also affected:
Due to high level of energy the brain is requiring to operate properly, the virus deactivates nearly all of the primary cognitive abilities, causing the person to fall back into a very instinctive status. Also level of aggression seems to be higher than normal.

However, it seems the only way to retain energy is by pure digesting of high nourish food, containing carbohydrates, proteins and fat. Due to lower brain functions, animals and also humans are targets for those infected :shock:

So here she is :
Skin is thinner due to the nearly complete loss of fat, also muscle system appears to be less in volume but very intact and much stronger than ordinary humans.
Flesh has infected and dead parts as the individual has no reaction to pain or wounds caused by environment or external force. Especially hands and fingers are very damaged and affected.

Cloth needs to be much more damaged, also volume of muscle for arm and leg area and parts of the body needed to be more of a anorexic look.
Specularity will give material dry and wet areas.
Image
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-03-17, 08:38

I found some nice Valve pdf's about their shading technics.. i share them here so you can have a look at it.
Some important parts are the world light equation as well as the half lambert shader equation for models, which i found very interesting and clever. See also the ambient cube which could be used on all models to make them fit better into the world lighting setup.

The outlined topics are:
•Radiosity Normal Mapping”
•World Geometry pixel shading
–Lighting equation
–Managing shader permutations
•Model Geometry vertex shading
•Reflection and Refraction

Im still on the model for the low res proxy but things are currently a little busy here. Im back in Germany in 2 weeks (April)
So stay tuned, i think you work heavy on the next release.

Oh and i found some extremly helpful videos for Unreal3 editing
its the complete (!)tutorial video series officially released by Midway. The videos covers EVERYTHING !!
Down them all 3.3 Gig of great videos, watch 20 hours of editing in UED 3!!!!

Here is the link http://www.fileplanet.com/195417/190000 ... orial-Pack
ALL questions regarding UED3 can be solved by watching as they explain every little detail !
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Carsten » 2009-03-17, 11:43

Hi Kai,

thanks for the link and pdf! :-)

I've not yet watched the UED3 movie, as it is, well, 20 hours long... ;) Later!

About the Valve pdf:
Very nice indeed! I've seen some of their similar presentations before, but this one is much more detailed.

Ca3DE too has a built-in technique that combines Radiosity with normal mapping: In contrast to Valve, we store, in parallel to the light color on each surface, the main direction of incoming light, i.e. the L vector. You can see the results in many places, especially noticeable in the BPRockB map with the many small lights near the floor (observe their effect on the near floor and wall surfaces).
The main weakness of this technique is that is can look poor when the main light direction changes abruptly, so I might test their approach later as well.

Really nice is their "ambient cube" approach for lighting models. Ca3DE is currently lacking something like this, and I consider it really important. The solution that we currently employ is frustratingly simple: For any model, we just sample the Radiosity color "somewhere near" the model (usually the spot on the ground below it), and use that as the ambient color. Sometimes this works good, but often there are situations where it just doesn't.
Pre-storing the Radiosity colors in grid points instead automatically leads to the "ambient cube" solution, and I'll certainly add the relevant support to CaLight and the Engine!

In the meanwhile, I'm indeed working massively on the next release.
Currently the biggest problem is that the Bullet physics world representation takes so much memory that the TechDemo map exceeds 1GB of RAM, which leads to plenty of disk-swapping on my system and thus severely degraded performance. I still have to find a good solution for this - in the worst case, I'll have to cut the TechDemo map into at least two pieces.

As you've certainly noticed, I've also started to re-arrange the forums a bit. Work still continues, and if you don't object, I'll move this thread into one of the public forums soon.
Btw., my replies to all other "open" mails and posts are still in progress - I've not forgotten a single one of them, I'm currently just very busy. :up:
Best regards,
Carsten
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-03-17, 19:49

Glad you like it :)

Since i start collecting several pdf's about shading especially for realtime approaches for my thesis, i always come to find several valve based papers. Its cool to see that they share so many ideas.
I got my full version of Mental Mill and did first steps in modifying the node code which worked pretty cool.
For any model, we just sample the Radiosity color "somewhere near" the model (usually the spot on the ground below it), and use that as the ambient color. Sometimes this works good, but often there are situations where it just doesn't.
This is of course a very simple approach, but yes its not quite affective. The main problem is that ambient light rarely gives a pleasant result, as it flats out all shadows that would provide depth to the object.
Also its a light without any direction which makes it nearly impossible to match with any given light situation !
The effect is like with raising the gamma on an image, it flattens the curve of contrast and because we are not using any floatpoint calculation on the entire output i.e.tonemapping as post processing this is useless (besides we would need to recalculate the gamma curve on any object individually leading to a horrible situation of storing too many infos).

Instead use the half lambert method, as it gives more light to black parts of the model (giving more visual depth without burn out bright parts), thus defying law of light physics but resulting in a much more visual pleasing result.
However all radiosity based lights are not giving any surface lighting information on dynamic models, so the first workaround would be to place a real dynamic light near a radiosity source but without casting shadows.

Demo:
1Gig Ram ? Hmm here i got a 4 gig machine and at home (Germany) i have my workstation with 8 gig. If you need some performance info or help just let me know.

Mails:
Hehe i know, no big deal, just finish the important parts first ;)


Update:
I tested the new shader an it worked, i have now a half lambertian based shader that is much more soften (even not physical correct) but the result is much more usable for details on organic characters
here is an image:
The result is a very decreased visibility of the tesselated faces, giving a more pleasing result for organic shapes on per vertex calculation which is faster than per pixel based calculations. The trick to make it not look too flat, is the exponential control of the curve, as it is more eased out in the darker areas.
lambert_vs_half_lambert.png
comparison between half lambertian (left) and standart lambertian (right)
The only danger is that too many lights from different angles can flat out the contrast of the character as well as a to bright ambient color (which you should avoid as much as possible). So overall its more valuable



Update2:
I found a pretty nice site offering an interesting technology
http://unity3d.com/unity/
Check out the island demo and the light room demo .. for an actual browser based system pretty impressive !!
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-03-23, 14:12

Here is a progress of the female Zombie model.. she is now finished for the highres part.

The current lowpoly version of her is about 1200 polys which is still high if you think about the fact that she would be much more far away from the camera than in the firstperson mod.
Im still into the hair issue, as well as eyes and details for the normal map.

The texture process is about to start, my current resolution will be 1k which is very detailed as you can see. Screenshot was made using an openGL preview and 2 lights (no shadowcaster)

I can't wait to see her rigged up and moaning when Paul starts animating her .. so cool
Oh yeah we have to redo the skeleton for the enemys. Paul would like to use a specific skeleton system, as max default biped offers terrible curve controls.

Okay here we go:
Zombie_girl_realtime_01.png
The low poly zombie chick WIP
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Carsten » 2009-03-23, 16:25

Dear Kai,

wow, thanks for sharing the pic with the "half lambertian"! You're right, it's utterly amazing how this simple trick helps with image quality!
As characters are rarely lit by many simultaneous light sources, and many light sources are also a problem with standard lambertian lighting, I don't think there is much to worry about.

Btw., I took the freedom to edit your posts, placing the image attachments "inline". This is done with the "Place inline" button below the text edit/input field. Hope that's ok with you.

About Unity:
Yes, I knew this engine, and monitoring it's progress. As you said, quite impressive indeed!
I think there is some potential in such browser plug-ins for the future: iirc, idSoftware is also preparing Q3 as a "browser-standalone" shooter.

The dead zombie girl:
Oh my, she's awesome! Too bad she's dead! :cheesy:
I'm very impressed with all the little, carefully crafted detailed that you managed to built into the mesh!
Best regards,
Carsten
User avatar
Kai
Posts:177
Joined:2004-08-19, 15:56
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Kai » 2009-05-13, 15:46

Hi i'm back at home and started to reinstall a fresh installation of my working machine, it first crashed my partitions and in addition my phone line was suddenly down .. no way of getting any backup software for a solution :P

Well now it works and im going to reinstall all my stuff until this weekend.
So my task would be to
- first create a first version of the zombie girl as .ase + textures to have look at her inside the engine.
- Then doing a simple rig to be able to pose her for static things maybe
- And finally start to rig it in max so paul could give her some life.

Could you please give a detailed instruction or video how to load and inspect a (static) model if you would get only an .ase and few textures for different shading channels(normal, spec, diffuse...).
I know there is a tutorial concerning the simple box but its not really working well (i can only see the mesh not the textures).
I would then refine and streamline the tutorial for different packages like maya max or xsi as every package has some minor different export infos inside the ase.

Thinking and working further with shader i also had the idea to use a LUT (look up table) to alterate the gamma or contrast of the entire renderoutput that is drawn on the screen.

For example a curve could increase the available value range of gradients in darker areas for the loss of brighter values (they would already later maybe burned out by post effects like glow)
This could benefit shader like half lambert and even smooth out more of the gradient.
If you need some basic ideas about LUT maybe this site could be very informative http://www.lightillusion.com/whatisalut.htm
Also have in mind that older games like Unreal 1 and beyond seemd to use a method like this, notice when you start the game you desktop starts to switch much more brighter than before.

Anyway great work on the new release ill check it out in the evening, and try to find some bug etc. .. :)
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Mod Project: Zombie Holocaust

Post by Carsten » 2009-05-13, 22:43

Dear Kai,
it's great to hear that you're back again and well! :wohow:
Kai wrote:Well now it works and im going to reinstall all my stuff until this weekend.
So my task would be to
- first create a first version of the zombie girl as .ase + textures to have look at her inside the engine.
- Then doing a simple rig to be able to pose her for static things maybe
- And finally start to rig it in max so paul could give her some life.
Sounds great!
Just one question: what is a "rig" / "to rig"?
http://dict.leo.org yields some interesting results, and I guess it means to create a skeleton and attach the mesh vertices to it. Just a little nosy and a little "making sure". ;)
Could you please give a detailed instruction or video how to load and inspect a (static) model if you would get only an .ase and few textures for different shading channels(normal, spec, diffuse...).
I know there is a tutorial concerning the simple box but its not really working well (i can only see the mesh not the textures).
I would then refine and streamline the tutorial for different packages like maya max or xsi as every package has some minor different export infos inside the ase.
I'm happy to make a new tutorial! I think it's easy, just give me 1 or 2 days - I should be able to finish it by the weekend. :up:
(I'll write it directly into the Wiki, so you will be able to pick it up at any time at any level of completeness.)
Thinking and working further with shader i also had the idea to use a LUT (look up table) to alterate the gamma or contrast of the entire renderoutput that is drawn on the screen.
[...]
Also have in mind that older games like Unreal 1 and beyond seemd to use a method like this, notice when you start the game you desktop starts to switch much more brighter than before.
Many games (older and newer) allow players to adjust the output gamma level (which is a kind of LUT) whose default is different for the OS desktop and other fullscreen programs. See GPU Gems 3, Chapter 24: The Importance of Being Linear about it.
Ca3DE currently has no support for output gamma setting built-in, but it's easy to add.
(Getting everything right that is mentioned in the GPU Gems article is tougher.)

Another aspect about LUT is that in a 3D engine, it does not just apply to a still image, but typically affects the entire map (unless applied as a post-processing step of course). CaLight implements something like this when creating the lightmaps from the physical properties of simulated light propagation.
Anyway great work on the new release ill check it out in the evening, and try to find some bug etc. .. :)
Hehe.... :cheesy:
Btw., the next release will finally come with trees and vegetation...
Best regards,
Carsten
Post Reply

Who is online

Users browsing this forum: No registered users and 24 guests