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. ;)
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. ;)
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 :)
last->least
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?
Props for Kalms. Excellent description.
moredhel: he doesnt explain 6d0f. hav ever done it?e he
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.
http://www.pouet.net/prod.php?which=53163
Everything is explained here : http://laurent.horus.free.fr/chaos.pdf
Everything is explained here : http://laurent.horus.free.fr/chaos.pdf
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.
One of those bucket list things I should've done 20 years ago.
http://pastebin.com/4PKFZkbN
Here goes. Have fun, bash, whatever.
Refractions in the balls and cubes with chess pieces in them in this prod.
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.
Add a static cubemap reflection you're done. I think the look could've been improved with a proper fresnel term though.
cce: wow thank you so much! I was sure it has something to do with cubemaps but i couldn't figure out how.
This one https://youtu.be/bPYWIAu24XQ?t=49s
I guess it's so simple, but I just don't get it...
I guess it's so simple, but I just don't get it...
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...
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)?
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 :)
Wow great! Thanks!
maali: my guess would be that the first scene is actually the same algo as the last scene (2buffer water propagation)
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/
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.
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.
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 :)
mrdoob: yeah, maybe a bit more distortion to make it look like clouds instead of water ripples, but, that effect comes close enough :)