Final Project-- Unicorn World

Cara Pew


For my final project, I created a magical unicorn world. This world is sprinkled with giant flowers, candy canes, and lollipops. The unicorn is free to roam the world by trotting, running, and turning, and the user can view the world from their own outsider's persepctive or from the unicorn's point of view. The user can also see the world from the unicorn's perspective. In bunny mode, the user can add bunnies to the scene wherever they like.


Hierarchical Modeling

The unicorn is hierarchically modeled by the lower segment of each of its legs, as well as the upper segment of its legs, and its tail. When it moves, each part of each leg moves in a specific way so as to mimic the movements of an actual horse.

Modeling of legs when standing still.
Modeling of legs while walking.

Phong Lighting

The scene features two lights that make the world quite bright. This is purposeful, to add to the cheerful nature of the scene. By looking at different sides of the scene, we can see where the light shines more heavily.

Lighting clearly comes from the middle of this scene.

Extensive Use of Materials and Textures

Everything but the sky in this scene is colored with a material or a texture. The clouds, the unicorn, the bunnies, and the lollipops each have their own unique material that alters their color and reflection. The flower is actually colored with a texture that is mapped to it. The grass and the candy canes are also made of their own textures.

A pearly bunny, a shiny lollipop, a realistically colored unicorn, fluffy clouds, and the textured flower and candycane.

Animation (sort of)

A key element in this project is actually getting the unicorn to move throughout the scene. This is done by keeping track of not just camera coordinates, but also unicorn coordinates, for where its eye and lookat point would be. The unicorn can move at two different speeds, as well as turn in any direction. Another in-game feature is the bunnies that appear when bunny mode is turned on, which appear at the users look at point.

Unicorn moving in one direction, and then another in the same view.

Camera Positions and Movement

This program also allows the user to see from either the user's perspective, or the unicorn's perspective. The user can naturally navigate around the world using WASD keys and the mouse. While looking from the unicorns perspective, they are given less freedom, but can still look around with the mouse, as well as still turning the unicorn itself with arrow keys and move faster or slower with the keyboard-- essentially turning the user in the unicorn, temporarily :)

View looking at the unicorn and the objects in the direction it's facing, vs actually looking from the unicorn's perspective.


Improvements for Next Time

If I had had more time, I would have liked to implement more features, such as:

What I Learned