Rays and Lasers

by LeJon McGowan


My ray traced images


Butterfly

a faiirly simple butterfly image.

Hi-res version here

POV file here
time taken to render: 3 minutes (640 x 480) and 30 minutes (1920 x 1080) w/ 5 bounces and 25 samples of antialiasing

This was used to show off the shadows, reflection, and antialiasing abilities of the Ray tracer


Prism

butt

Hi-res version here

POV file here
time taken to render: 4 minutes (640 x 480) and 60 minutes (1920 x 1080) w/ 5 bounces

A myriad of reflective planes and polygons. The neat part was the white plane far above the scene that rays bounce off and reflect, creating a prism of rays that go upwards (and is reflected again by the sphere)

I should note here that an attempt to render this with 9 smaples of antialiasinf and 20 bounces resulted in my entire computer freezing up after 2 hours of work. This implies that there may be something wrong with my hardware, and limited how much time I could use to render

Zelda Sword

Lies in its scabbord, waiting for the Hero to use it once more

Hi-res version here

POV file here
time taken to render: 4 minutes (640 x 480) and 60 minutes (1920 x 1080) w/ 5 bounces

Last, but not least, I wanted to recreate something from my childhood using these techniques. This obviously meant sommething pointy and dangerous. By using a variety of all the polyhedra intersections, the aforementioned prism trick, a couple of lights (3 in the scene) and lots of trial and error, I createsd this.

The one big problem seems to lie in some of the splotches. This may be due to some approximations errors and may be remedied by changing my epsilon bounds


VR project: Laserz and stuff!

VR Controls

Action Function
Move Head change where to look in the world
Click Button Shoot a laser out of your eye!
Reset Option Resets the game to the initial state
Recenter Option orient yourself in the world
Toggle music option choose to turn on/off the background music
VR mode option orient yourself in the world

My Vr project involved working with rays (because we havent shot enough of them out already!). It's a fairly simple game: you click and shoot lasers at a box. The Cube will fly up and around upon being stricken by the laser.

Before

After!

Each individual laser has a lifespan of 5 seconds, and will reflect when it strikes a wall or cube.

shoot them everywhere!

Make them reflect!

Since this was my first time in 3 years using Unity (which I previous used brielfy for a game jam), I spent a decent amount of time exploring Unity's features. Documentation and online help led me to use a linerenderer to create a laser, and texture over it with a texture obtained from opengameart.org. Much of my time was spent learning how to make use of Unity's colliders and rigidbodies in order to create the reflecting effect I desired. After I was satisfied with that, I found some founds from freesound.org and implemented them into the background music and laser effects. It was especially nifty to be able to heighten the pitch of the laser's reounds based on the number of bounces it had gone through.

In retrospect, I probably should have used a stretched capsule mesh to get a better looking. 3D-esque laser, mostly due to the fact that the LineRenderer's collisions with 3d objects were fairly unreliable and involved a bit of a hack (so, outside of Unity's OnCollision funciton for the GameObject) to get funcitonal. Also, It could have definitely heightened the fun factor if I added mutiple meshes to the scene to shoot (e.g. 10 bunnies as opposed to 1 cube). Doing so would be trivial, but since this is atrgeting mobile, I'd have to run performance checks on how many objects a device can handle