CyberVGA update – procedural vignette + lighting (software renderer)

Been messing around with post-processing again on CyberVGA.
This time I implemented a procedural vignette with screen spaced look-up table and tied it into the lighting system. Wanted that “darkness closing in” feeling without it looking like a cheap overlay.
It actually reacts to the lights so it feels more natural.
Here’s a short clip from the current Harmony Tree test scene.

u/exp_function — 18 days ago

CyberVGA update – simple software depth of field with radial blur

Been toying with software post-processing effects in CyberVGA lately.

Really liking this depth of field effect that just uses a simple radial blur. Surprisingly effective for how little it costs, especially in a pure software renderer.

Here’s a short clip:

https://reddit.com/link/1vaihuf/video/bcj9styagagh1/player

Curious what other cheap post-process tricks people have found work well in software rasterizers.

reddit.com
u/exp_function — 23 days ago
▲ 19 r/u_exp_function+3 crossposts

CyberVGA update.

I've just finished implementing screen spaced grass effect in my octree renderer.

It works only with materials tagged with "terrain" and it generates and distributes grass blades on the fly using screen spaced 4x4 Bayer Matrix as threshold, for now a hard-coded density parameter, global wind vector for animated sway effect and triangles' UV for screen placement and 1/z information for perspective correction.

What do you think?

u/exp_function — 2 months ago
▲ 5 r/u_exp_function+2 crossposts

CyberVGA - New Terrain Blend Mapping Feature

Added full 8-band terrain texture blending today.

The system uses a painted blend map (0-255 values) to control mixing between 8 different texture bands on top of the existing heightmap terrain.

Works nicely with the in-engine CyberEdit (same 320x240 Mode X viewport setup).

We paint the blend map in GIMP, use on world quads, then bake it for octree sidecar file.

Screenshots:

Multi-view editor with brush and quad mode:

https://preview.redd.it/kiyjcb93ew9h1.png?width=1818&format=png&auto=webp&s=cefc4e15778fe58c308ef13201538386f277c458

Terrain Blend Bands window showing the 8 layers + ranges combined with material window:

https://preview.redd.it/fhyw9vk8ew9h1.png?width=1820&format=png&auto=webp&s=fe4143f8da3e2ca3d067a40a37279535aafa9c94

In-game 3D view with the new blended terrain:

https://preview.redd.it/najd15lcew9h1.png?width=1822&format=png&auto=webp&s=8f83c77af18fb19cb4f27eb22d1ae4155abdfe5e

Still targets real 486+ hardware (and the Win64 port of course :) ).

Feels like a big step for terrain editing while keeping it all under intended hardware constraints.

Let me know what you think!

reddit.com
u/exp_function — 2 months ago
▲ 9 r/u_exp_function+4 crossposts

New Version Available

A new version of CyberVGA released on itch!

This version has:
Static octree based renderer
A separate 64-bit Windows port

You can use editor, save the world you created and see in action using VIEWER module.

expfunction.itch.io
u/exp_function — 2 days ago
▲ 5 r/u_exp_function+2 crossposts

A Subtitle?

I really like the idea of putting a subtitle for CyberVGA.

“Engine Of The Past”

What do you think?

u/exp_function — 2 months ago
▲ 105 r/u_exp_function+3 crossposts

CyberVGA mocap.

Just locked in the full mocap workflow for CyberVGA vertex key animation.
Raw capture synced side-by-side against the in-engine playback — timing, vertex deltas, and playback precision all holding under the fixed-point pipeline.
This slots straight into the existing entity/component system and Play Mode testing. No floating point. No modern crutches. Pure C89 + NASM constraints, delivered.

#gamedev #indiedev #retrodev #DOS #vertexanimation #engineprogramming

u/exp_function — 2 months ago