Open GL Exploration



Source Code

Premise:

I wanted to build a flexible system to let me explore 3d modeling, including shader pipelines, particle systems, height maps, skyboxes, terrain generation, shadow mapping, etc. By learning OpenGL, I am better able to understand the animations and programs that we see almost every day. By learning about buffers, vertex arrays, and the general outline of the shader pipeline, I was able to understand the functionality and feature set of modern day GPUS. At this point, I have no plans to build any commercial game or tool, but simply to use this page to demonstrate the things I have done and am proud of within an OpenGL world.

Terrain Generation:

My current terrain generation method is uses Perlin noise, which produces a pseudo-random terrain, albeit slightly repetitive and boring. A new algorithm needs to be implemented having better defined extreme-vertical, and extreme-flat areas. I also think it would be cool to use a 3d implementation of the Weierstrass function to produce interesting terrain, this is not a priority though. I wrote the project in Java and GLSL.


Point lighting:

I think that point lighting makes terrain look significantly more realistic. Below is an example of adding point lighting to a landscape that I generated.


General Rendering:

Next, I wanted to experiment with loading objects and render them with multiple moving light sources. For example, below is a rendering of the Stanford Bunny, showing the specular lighting sources moving and changing color while my code rotates the bunny.




While this project is not tagged as one of my works-in-progress, I update it regularly as my interest peaks in a certain subject. Come back occasionally and see what I've added.

Note: Thank you ThinMatrix, thebennybox, and learnopengl.com for putting out fantastic OpenGL tutorials, allowing people to jump straight into complex 3D rendering, this project has been influenced by your work.

All content on this page belongs to Zachary Porter. You may use, reproduce, or modify anything from this website, provided that you give credit to zackporter.com in your usage.