jdolan / quetoo

Quetoo ("Q2") is a free first person shooter based on id Tech2. GPL v2 license.
http://quetoo.org
204 stars 28 forks source link

In need of more sunlight_ options #557

Closed Panjoo closed 4 years ago

Panjoo commented 5 years ago

One of the problems that I run into every time I need to add the lighting to a map, is the lack of options. Without a doubt the maps could all look and feel so much better in the lighting department and overall atmosphere.

The problem is that the contrast (the shade) between the sun_light and the ambient_light is too strong. Normally (when the skybox doesn't have a bright sun), the areas that can 'see' the sky but are not directly hit by the sun_light angle should get something like a diffuse light attenuation. Which would be darker than the sun_light but brighter than the ambient_light. As it is, there's nothing in between the two which makes things look rather dull.

The mapper is basicly left with three not ideal options;

Some related documentation; https://slapmap.wordpress.com/2013/04/23/outdoor-lighting-and-fake-g-i-in-quake-with-examples/

The old ARGRAD compiler for Quake2 had a whole set of sunlight options, and you could tweak things like how fast the sunlight should fade out. Here's the readme from it; ArghRad.txt

Calinou commented 5 years ago

Indirect lighting could also be achieved with a second sunlight property, like in ericw-tools' light.

jdolan commented 5 years ago

The feature branch I've been kicking around all year (hey, I moved.. twice!) adds both indirect lighting as well as multiple sun support. Indirect lighting will help by bouncing and diffusing light around the map. Multiple suns comes in handy because you can define several with similar angles to create a softer, more natural looking sun. I'll share some screenshots of the WIP here soon.

The branch also adds nice things like:

jdolan commented 5 years ago

Below is a shot with direct lighting only. Note the harsh shadow from the sunlight running down the large pillar.

screen shot 2018-12-12 at 12 15 42 pm

And below is with indirect lighting. The lighting is brighter and softer.

screen shot 2018-12-12 at 12 17 42 pm

I think this will make a big difference for all of our maps. Looking forward to getting this usable for everyone over the Christmas break.

Panjoo commented 5 years ago

Oh nice, this sounds very promising. Already looking much better as far as I can tell from that shot. I've been working on two maps over the past months, one instagib map and another q2 remake. Struggling with the lighting at the moment and I just can't make it look right so that's why I'm bringing this up. But if this new indirect lighting thing works out I'd be happy to revise our maps and make 'em moar purdier.

jdolan commented 5 years ago

That's great, because the maps will need some rework :) It'll mostly be just removing a bunch of light sources, tweaking materials definitions to include light, and rebaking them.

jdolan commented 5 years ago

@Panjoo, @SpineyPete and I have recently added ambient occlusion as well as light penumbrae in the brave-new-world branch. I've also fixed all T-junctions in our geometry using an ear clipping algorithm, and I finally wrote a correct Phong shading implementation using barycentric coordinates over arbitrary triangles. Here are some other shots you have missed in Discord :)

quetoo017 Some Phong and indirect lighting, along with softened sunlight (default params).

quetoo019 Ambient occlusion and indirect lighting make it much easier to fully light areas.

quetoo021 Light penumbrae make it possible to simulate "area" lights. Note that the light behind the pillar casts multiple shadows.

quetoo030 Sweet Phongy goodness.

image Perhaps the best showcase for ambient occlusion; this map only has a sun light source, and a few random torches. Everything else you see is indirect light, and a high ambient light with AO. I haven't gotten around to applying Phong (or textures) in this one yet, but someday soon..

Just wanted to give you an update :)

Panjoo commented 5 years ago

Looks cool man, but I would have to see it "in action" first because I normally don't really check the lighting in that mode myself. Can't wait to toy with it.

One thing that strikes me the most is that I still see them sharp rectangular sunlight spots in the 1st and 4th shot. (the area with the toxic barrels). What I mean is, what if the distance between the actual roof openings and the floor that the sunlight hits is much larger? Will those rectangular light spots automatically blend out and become softer around the edges when distance increases? That's what I'm hoping.

jdolan commented 4 years ago

@Panjoo To achieve that affect, you can play with the _size parameter on your sun(s). The default size is 256 units. By increasing this to 512 or higher, you can create really soft, diffused sunlight / shadows. This can be available for you to begin to play with very soon. @Paril has recently begun building the brave-new-world branch on Windows, and we can probably get a build in your hands if you're interested.

jdolan commented 4 years ago

I'm going to close this one. Lighting is finalized at this point.