Endless Mountain

Introduction

Control a snowboard, the only thing on Endless Mountain besides the trees and snow. Skate, surf, and carve for as many days and nights as you can.

Required Components

Realistic Lighting Fragment and vertex shaders compute light effects according to the Blinn-Phong equation, and compute surface normals when necessary.

Textured Models Both tree and snowboard are texture mapped objects.

Animating Character Both snowboard and sun animate realistically.

3D Scene Objects are placed realistically throughout the world.

Game Camera In debugger mode, the free camera allows you to view the world from anywhere.

Interaction After colliding with a tree, the scene will reset and the console will display a message. Then the cycle continues.

Highlights

OOP I created a class to consolidate and streamline rendering operations per mesh.

Collision Detection Obstacles are reduced to a center point and trigger a collision if they enter the detecting object's bounding box.

Procedural Generation Randomized positioning of a given number of trees, per sector.

Color Interpolation Scene hue changes according to the sun's orientation in the day/night cycle.

Physics The snowboard will accelerate into/out of a turn when carving, and tilt reflecting a heel/toe side turn.

Cycling The map is divided into two sectors that cycle, making the mountain endless.

References

Pow Surf 101 A video that I enjoy very much.

Free3D A good source for free .obj files.

ShaderToy Color interpolation.

Khronos Linear fade.

Digital Color Meter Great tool for identifying colors.

EasyRGB Quick RGB scale conversions.

HTML For beginners.

HTML With CSS.