Giter Site home page Giter Site logo

raycasting-visualization-in-3d's Introduction

[Raycasting-Visualization-in-3D]

This program has been developed to simulate ray-casting algorithmic process in 2D and pseudo-3D spaces.

Ray-casting is one of the computer graphics rendering methods that uses rays (vectors) to detect intended target objects within specified field of view.

Although conventional methods utilize discretized intervals to detect objects along the ray's trajectory, this program searches for ray's intersecting points and computes the nearest one from itself. The purpose of the nearest intersection point search is to render only the parts of the ray from the light source to the point of intersection, thereby demonstrating an example of light & shade perception.

Some of the mathematical principles used to visualize the simulation are as follows:

[1] Computation of line-to-line interception point --> iteratively updates the interception points to derive the perception of "bright" and "dark" regions using line segments called "rays" emerging from the "light source".
[2] Heuristic method used to map ray-casting phenomena into pseudo-3D perspective.

  • Use mouse to move the light source around the screen (within the 2D viewer).
  • Use left mouse button to switch between different view modes (pseudo-3D perspectives).
  • Use A or D keys to rotate the light source.
  • Use R key to reset the environment.
  • Use C key to change the color of rays and collision spots.
  • Use Z key to tune field of view angle.
  • Use X key to quit.

1 2 3 4 5

raycasting-visualization-in-3d's People

Contributors

kimeg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.