killoeo.blogg.se

3d maze screensaver
3d maze screensaver







dead end) - rotate right (which will bring you to a state where the right side is open)

  • if just-turned and front is open - forward.
  • if in the middle of moving or turning, continue moving or turning.
  • 3d maze screensaver

    The goal is to always follow the right wall. There is a nextMove() function that determines the next step based on the current position, movement, and direction. The lookat function from Maze.js is used, with the eye corresponding to the current location in the maze and the at being the sum of the position vector and the direction vector. So I used GIMP to create the 99x99 image that corresponds to one cell of the maze and then upscaled it to a 128x128 image. The ceiling texture was a 33x33 and this doesn't work well with WebGL because it isn't a Power of Two.

    #3D MAZE SCREENSAVER MANUAL#

    Most of the wall is red brick, but occasionally there is an image displayed on the wall, taken from a standard rendering example image that must have been used in the OpenGL manual Microsoft used. These files were extracted from the original screensaver.

    3d maze screensaver

    The walls, floor and ceiling each have specific textures. This array is looked at when determining the next move and when initially sending the vertex data to the GPU. This is randomly generated with recursive backtracking, based on an algorithm I found at. The maze is stored as a 2D array of "cells" with each cell being a four int array describing it's four walls. The matrix libraries used are from here and under the MIT License.įor comparison, a YouTube sample of the original screensaver can be found at Features that have been implemented:

    3d maze screensaver

    This project is a recreation of that screensaver using WebGL and Javascript. In windows 95 (and a few later versions of Windows) there was a screensaver that rendered and then solved a 3D maze with a a few interactive obstacles.







    3d maze screensaver