I Created Windows Pipes 3D Using My Own Game Engine

I hope you don't mind a little distraction of me re-creating Windows XP 3D Pipes screensaver simulation. I will occasionally do projects like this to showcase the features of the engine and of course to have fun/avoid burnout.
If you are interested (not the exact ones I used, but explained well):
Sphere generation:
www.songho.ca/opengl/gl_sphere...
Cylinder generation:
www.songho.ca/opengl/gl_cylind...
The colorful rainbow pipe was achieved by outputting the vertex normal values as colors like this in the pixel shader:
return float4(normalize(input.Normal) * 0.5f + 0.5f, 1.0f);
0:00 - Morpheus Codeus
0:36 - No pipes
0:54 - Random .scr found online
1:24 - Disclaimer
1:36 - Original screensaver
2:07 - Dividing the task
2:31 - Geometry
2:59 - Simulation state
4:44 - Algorithm
5:59 - Version 1
6:06 - Fixing issues
7:20 - Version 2
7:50 - Introducing randomness
9:54 - Removing gaps
11:22 - Final version launch
11:35 - Final version
12:22 - Morpheus Codeus is back
12:38 - More pipes
Background Music:
• TrackTribe - A Night Alone
• E's Jammy Jams - Soul and Mind
• JR Tundra - Together With You
• TeknoAXE - Beautiful Day
Music by www.bensound.com/free-music-f...
License code: AUTBQPYBUQSTMZ1R
• Benjamin Tissot - Enigmatic

Пікірлер: 11

  • @tarck333333rrrr
    @tarck333333rrrr7 ай бұрын

    Nice! What would be cool is try to render crazy amount of pipe with fixed view by not clearing render targets each frame. This way on CPU side you only need to store 3D bit array and next segment data. I think this way you can render absolutely bonkers amount of pipes!

  • @enoobis
    @enoobis10 ай бұрын

    this man is a genius

  • @43DM
    @43DM10 ай бұрын

    this guy lays pipes

  • @Maxjoker98
    @Maxjoker9810 ай бұрын

    I've always wondered how this screensaver was implemented. I wonder if you could have made it way simpler by using a depth buffer and just successively drawing a sphere without clearing the screen.

  • @zokalyx

    @zokalyx

    9 ай бұрын

    Can you explain further?

  • @Maxjoker98

    @Maxjoker98

    9 ай бұрын

    @@zokalyx Sure. The idea is that to draw a "tube" you're using a lot of spheres. Instead of drawing a lot of sphere every frame, you just draw a single sphere moving very slightly, without clearing the screen in between and without clearing the depth buffer(But with depth tests enabled while drawing!). The sphere should now be tracing a path, and the look of this path should be the "extrusion" of that sphere( a cylinder). Should work with other shapes as well. Kind of like how when you're clipped out of the skybox in e.g. half-life objects leave a trail.

  • @zokalyx

    @zokalyx

    9 ай бұрын

    @@Maxjoker98 Thanks! That does sound smart. I now understand the concept of using spheres. About the depth buffer thing... is that so you don't draw on top of another pipe if it's closer to the screen?

  • @Maxjoker98

    @Maxjoker98

    9 ай бұрын

    @@zokalyx Yes exactly. Depthbuffers store the "depth" (distance from camera) per-pixel, and then you only update a new pixel if it is closer to the camera than the old one. Otherwise, the "pipe texture" would just be the border of the sphere, instead of defined by the shape, and behind/infront would be wrong. I also think maybe there is a 2D-only version of this effect.

  • @ori8483
    @ori84839 ай бұрын

    Cool bro

  • @tahamkench7459
    @tahamkench745910 ай бұрын

    💪💪💪

  • @srabb
    @srabb10 ай бұрын

    pasta