Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411511 Posts in 69375 Topics- by 58430 Members - Latest Member: Jesse Webb

April 26, 2024, 03:04:54 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsRobGetOut - 3D environmental puzzle platformer
Pages: 1 2 [3]
Print
Author Topic: RobGetOut - 3D environmental puzzle platformer  (Read 8972 times)
Bad Sector
Level 3
***


View Profile WWW
« Reply #40 on: January 23, 2013, 01:22:16 PM »

Dynamic Soft Shadows:





Here is another video, this time using soft shadows with varying penumbra sizes. The algorithm is an improvement of one that i came up a few years ago when i worked at Track7 games for the Theseis game and is almost identical to Percentage Closer Soft Shadows (with a few differences since i didn't exactly implemented PCSS). Since i had implemented something similar at the past it took me only a little time to modify yesterday's code to that algorithm.
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #41 on: January 26, 2013, 08:14:20 AM »

New video with shadows and lights:


I de-hacked (mostly :-P) the light stuff and made proper dynamic lights in the world which are culled away from portals and cameras when they aren't visible (there still is room for a lot of optimization though). Also the lights are now created, destroyed and manipulated via the game scripts.

In the video above i show a few overcasting lightsources which were placed as entities in the world editor. These entities simply create dynamic lights at their own position using this script:

Code:
func Lightbot:constructor {ent type} {
    local light
    set light [dlight-new spot]
    dlight-position $light [entity-position $ent]
    dlight-direction $light {0 -1 0}
    dlight-radius $light 512
    dlight-inner-radius $light 480
    dlight-shadow $light 1
    dlight-color $light {0.75 0.85 0.9}
}

(the lightbot name is because i want to add at some point a small flying robot that follows you around and illuminates the path towards your way :-P)

Here are two images with the new lighting and shadows. The first one points out the varying penumbra sizes:



And the second one... does the same, just using a flashlight :-P



The lighting and shadow filtering still needs some tweaking (and optimization) but i think that the hardest (and most interesting :-P) are is already done. Although i still need to implement fallback dynamic lights for the "simple glsl" and "fixed function" render paths of the OpenGL backend (and of course update the OpenGL ES backend at some point for Android).
Logged

~bs~
PythonBlue
Level 2
**



View Profile WWW
« Reply #42 on: January 26, 2013, 12:06:30 PM »

Looks pretty good!

You said in the first post that you're looking for a composer. Are you interested in my services, or have you found someone since?
Logged

Python Blue - composer for NeonXSZ
Official Website
Bandcamp
Bad Sector
Level 3
***


View Profile WWW
« Reply #43 on: January 26, 2013, 02:14:49 PM »

I haven't found anyone, but (as the meter that says "20%" implies :-P) the game isn't really near a point that i should start looking for a composer. Thanks for the interest though :-)
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #44 on: May 02, 2013, 05:11:28 PM »

So, i found this blogpost about Doom 3's "volumetric" (not really) lights and decided to do something similar in RobGetOut.

Here it is in the forward rendering path:


And here it is in the deferred rendering path:


(as a side note you'll notice that i *still* haven't implemented dynamic lights in the forward path :-P)

The forward path looks more like Doom 3's lights (actually, they're called flares in Doom 3 and this is the name i used too) while the deferred looks more like the light "bleeds" out of the surface (this is because of the contrast filter that is applied in the whole scene).

The way this is implemented is simple: the silhouette of the bright surface is extracted to create a "light strip" where the vertices that touch the surface are 100% opaque white and the vertices on the extruded silhouette are transparent (this basically fades out the strip). In the deferred render path, the silhouette is rendered in both the color and light buffers so it becomes part of the full render.

The light surfaces are marked with a special "light" texture. Any sort of surface can be used, as long as it is convex.
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #45 on: June 09, 2013, 05:55:13 AM »



I added sprites to the editor and currently they're used to show the light sources (tinted by the light color) and in user entities (a user entity can specify one of twelve predefined images - in the shot above the "sphere" sprite is used for the "dummy" entity which in the RobGetOut is used to specify paths when linked to other dummies).

Here are the available sprites (made in my vb5 sprite editor :-P):
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #46 on: July 11, 2013, 01:13:43 PM »



Finally i found a little time and i added dynamic lights in the forward renderer. Now i hope i'll add them to the fixed function renderer before Christmas... :-P

I also got an OUYA and i'm considering updating (...actually, rewriting :-P) the OpenGL ES 2 renderer to make the engine run there too.
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #47 on: February 27, 2014, 02:16:03 AM »

It has been a while since an update... day job takes most of my coding energy and i've also messed with some other stuff lately so i had little time for Runtime World. However i am considering taking part in the Cyberpunk Game Jam over this weekend and i *really* needed a feature for that: decals!



They are the simplest decals possible: alpha blended quads with vertex coloring (from the lightmapper). But they work just fine for most cases. In the future i may support add more complex shapes though.

In other news, i removed all programmable pipeline code from Runtime Engine, including all dynamic light stuff, shadows, etc (the version before i did that is tagged in version control so i still have the code of course). GLSL use was more of an afterthought (at some point i thought "hey, lets add some shaders") and not properly done - then everything else was piled on top of that, most of it in a single file. I'll add proper support for that later, but i think it is a better idea to focus on more important parts for now (f.e. i still have no sound support).
Logged

~bs~
Pages: 1 2 [3]
Print
Jump to:  

Theme orange-lt created by panic