pouët.net

Effects in demos that you don't know how they work

category: code [glöplog]
Luminagia uses the two-pass approach: The voxel tracer always writes horizontally into the voxel map (most efficient memory pattern) independently of the ray directions in the height map. The voxel map is then mapped onto the screen either rotated/scaled or polar-wrapped.

This is simple, and as Kalms points out, the performance can be tweaked by varying the resolution of the voxel map independently of the screen resolution. For Luminagia, I used a 128x128 voxel map for rendering to a 160x90 screen (16:9 ftw). It does get somewhat blocky toward the edges when using polar mapping, but that's not where people are looking anyway. ;)
added on the 2011-09-10 15:33:31 by Blueberry Blueberry
For my twister I used a 512x512 target - if I'd go for the two-pass approach (which I certainly will do at some point) I think I'll stick to that. It's the last you can do on a 1.6GHz Atom processor. I noticed the blockyness but a simple bilinear filter (corrected for pixel direction, though) solved it. What solved it as well, but faster, is a simple boxblur pass :)
added on the 2011-09-10 15:42:18 by superplek superplek
last->least
added on the 2011-09-10 15:42:45 by superplek superplek
so. can you do 6dof with wave-surfing and vertical tracing only in heightmap-lookup? and do you need to change the y-projection formula?
added on the 2012-01-06 13:16:03 by rudi rudi
Props for Kalms. Excellent description.
added on the 2012-01-06 13:43:38 by moredhel moredhel
moredhel: he doesnt explain 6d0f. hav ever done it?e he
added on the 2012-01-06 16:56:28 by rudi rudi
that was probably not related to your question
i do know a method to do it, but i dont want to change the beauty of this simple algo i have now.
added on the 2012-01-06 19:07:58 by rudi rudi
I wrote a fool-proof article on checking out the water in Heartquake by Iguana today. I know it's simple and I ain't Einstein and I was 11 years old when it was first written, but it took some figuring out what exactly it it is they were doing and why it was fast enough, and very portable to retro platforms (which is why I initially wrote it for someone specifically).

One of those bucket list things I should've done 20 years ago.

http://pastebin.com/4PKFZkbN

Here goes. Have fun, bash, whatever.
added on the 2016-05-22 03:38:07 by superplek superplek
Refractions in the balls and cubes with chess pieces in them in this prod.
added on the 2016-06-18 10:30:53 by golem golem
Really nice refractions! To me it seems like only the front facing faces of the cubes are refracting and the back facing sides are just ignored. You could get that effect by first rendering the background and the chess pieces, and then drawing the refractive cubes in a separate pass. The shader in the refractive pass calculates which texture coordinate to sample from the buffer rendered earlier, taking the surface normal, camera vector and material density into account. You can see some GL_CLAMP_TO_EDGE artifacts if you look closely at the top of the screen at 2:37-2:38.

Add a static cubemap reflection you're done. I think the look could've been improved with a proper fresnel term though.
added on the 2016-06-18 11:32:19 by cce cce
cce: wow thank you so much! I was sure it has something to do with cubemaps but i couldn't figure out how.
added on the 2016-06-18 11:36:03 by golem golem
This one https://youtu.be/bPYWIAu24XQ?t=49s
I guess it's so simple, but I just don't get it...
added on the 2016-06-22 15:17:08 by EvilOne EvilOne
i'm still curious about the plasma clouds in iguana-heartquake (the first scene)... i can sort of imagine the fx needed to imitate it with a shader in terms of blending perlin noise and smoothed circles, but that's in modern day lingo... but that effect is from 1994, so, that all had to be cleverly precalced somehow, i guess :)
EvilOne: MetaBalls with Cloud-marching-algo (adding small amounts of light to pixel if you hit a part of the cloud, continue marching in small steps until maximum marching depth is reached; The clouds are just some fbm (noise) added as size-offset along the normal of the metaballs i guess...)
Maali: seems to be blending of several perlinNoise-Layers...also added some x-sine about 64 pixels for each layer. So all in all it´s just some texture-reads with offsets for each pixel...sounds like a pixelShader, yes.
About having to fake it: we had 1*1-pixel-fullscreen-rotozoomers on Amiga1200 @ 14MHz...one-colored, so just one bitplane, lots of dithering to be able to show a real picture, but still! I think PCs had some more power than that in 1994, so...
The Bladerunner voice in Off screen Colonies. Is it a super glorious sound compression algo (judging by the quality and similarity to the original voice) or is it really synthesised (judging by absence of background noises from the movie)?
added on the 2016-07-01 18:06:50 by golem golem
Quote:
The Bladerunner voice in Off screen Colonies. Is it a super glorious sound compression algo (judging by the quality and similarity to the original voice) or is it really synthesised (judging by absence of background noises from the movie)?

Neither :) Pre-compression processing with studio tools + standard GSM compression in the intro + the right amount of audio engineering in the mix to make it sound nice :)
added on the 2016-07-01 18:09:36 by Gargaj Gargaj
Wow great! Thanks!
added on the 2016-07-01 18:13:11 by golem golem
maali: my guess would be that the first scene is actually the same algo as the last scene (2buffer water propagation)
added on the 2016-07-02 00:31:38 by the_Ye-Ti the_Ye-Ti
or maybe i should bother jare on facebook :P
Quote:
i'm still curious about the plasma clouds in iguana-heartquake (the first scene)... i can sort of imagine the fx needed to imitate it with a shader in terms of blending perlin noise and smoothed circles, but that's in modern day lingo... but that effect is from 1994, so, that all had to be cleverly precalced somehow, i guess :)

I think it's something along the lines of this:
http://mrdoob.com/lab/javascript/effects/water/01/
added on the 2016-07-02 06:17:45 by mrdoob mrdoob
Maali you're a fucking idiot.

https://github.com/visualizersdotnl/heartquake-water-explained/blob/master/heartquake_water_reverse_engineered.txt

now get the fuck lost and kiss me when we meet again.
added on the 2016-07-02 06:56:36 by superplek superplek
superplek: i am talking about the clouds effect in the beginning of the demo, fucking idiot!

mrdoob: yeah, maybe a bit more distortion to make it look like clouds instead of water ripples, but, that effect comes close enough :)

login