CSCI 441 - Computer Graphics

Fall 2020

|     Home   |   Assignments  |   Leaderboard  |   Schedule  |   Resources    |




Hi, I'm Reya Okuzaki! Welcome to my Portfolio.
// /// 奥崎レヤのポートフォリオへようこそ!/// //







いらっしゃい!人生は美しいですね。。。

>> Click on an image to view the full size!

[Lab00A] Two Triforce logos! One constructed from multiple triangles, and one constructed from a giant triangle. One is also translated! Isn't that cool?

[Lab00B] My own little plot of Onogoro Island! Has a nice little shoreline, some mountains in the middle, trees scattered all around the place, and even a circular road! The road is a little jagged, but that can be cleaned up later on...

[A1] My official banner! I spent a lot of time tracing and painting out the letters in my name, giving them some nice transformations and pretty colors, and then polishing my home's custom Edo-inspired crest!

[A2] It's me! I can walk around, my head and hands bob idly when I'm not doing anything, and I can look at the mouse while it moves around. I can even close my eyes (CLICK), and if I get complemented or something (SHIFT-CLICK), then I can blush too! In this program, I can also walk around and explore Onogoro Island and see the pretty sights of my friends! Also, don't let the pixels fool you; I am made 100% of GL_TRIANGLES, hehe...

[A2] ... though to be fair, I was originally made from hand-drawn pixel art... made by my creator!

[SQ1] I managed to make a faithful recreation of Pong, the original 1972 video game by Atari! This was a really fun game to make. Although it took roughly 8 hours to design and put together, I am happy with how it turned out! The player can use the mouse or W/S or Up/Down to control the paddle. The game uses state-based logic to determine whether the game has started, end of a round, end of a game, and reset back to the beginning after somebody has won. Also, the text is pretty fancy! I actually used a separate shader for that, so that I could render a font. But anyway, can you get to 3 points before the AI does?

[SQ1] There isn't a difficulty setting though, and the AI has a good bit of speed, so it's pretty difficult to beat... but I feel like that's pretty faithful! And I do enjoy a bit of a challenge, hehe...

[Lab02] I can fly really well between buildings! Oh, and this is the first 3D program I've made so far! A flight simulator that takes place in a little procedural city with colorful buildings perched atop a grid amidst a pitch-black background no less, but it was still pretty fun to make and explore how cameras and model matrices work.

[A3] Taking my brand-new Bentley Square GL 1.0 around the block! Had to build it myself, you know. It only took a few fine hours of elbow grease and low-level graphical mechanickery. As did the rest of the level, which is procedurally-generated with colorful building cubes and trees! After learning that I had to throw object-oriented design out the window when dealing with OpenGL handles and objects, I had to essentially rewrite what I was attempting in order to stay closer to the True Design(tm) of the previous labs and assignments. This took a number of hours. But hey, a pretty car, world, top-down minimap, and mysterious collidable blue sphere popped out of the mystworks! That's a win in my books. ~

[MP] The lighting in our part of Tokugawa can be a little bright sometimes...some may say 明る過ぎって, but I think just bright enough! We managed to assemble a complete working VAO object model system (provided by headers) together with a full Phong Illumination model utilizing Gourad shading, fancy words for pretty normal and effective lighting. The trees are pretty nice, too! Powered by the all-knowing vertex/fragment shaders, sponsored by OpenGL (not really).

[A4] Despite some weird setbacks with the vertex shading of our lovely models, I upgraded the models to be completely opaque! Also, note the extra red-tinged shading on the Bentley Square GL... that's a point light! It's very interesting just how finicky these shaders can be though. By the end of this one, I was pulling my hair out trying to resolve the bizarre issues I was having with viewport coloring. Turns out, when in doubt, trash the old shaders and plug in new ones!

[A5] And just like that, 玉神様 exists! My lovely spherical pulsing god has finally found a way to demulsify itself into an opaque and ever-present form. Oh, and the sphere brought along a skybox with it. Err, well, it's more accurate to say we teleported to Romania, but that's being considerate of the semantics... we don't need those! Anyway, Romania uses its own shader and textures to render a cubemap. Pretty neat, huh?

[A6] It took way longer than I would've liked, but the basics of a dynamic particle rendering system are there! Multiple particle systems can be specified in the program, and those can be defined outside of the program for tinkering. Ignore the inverted skybox walls, I think the textures renamed themselves again. The program runs a little faster than I expected it to as well, but I think it's happy to have a ton of frames.

[FP] My final project is complete! A from-scratch game engine using some of the techniques from here, and a little test game to go with it -- Stargazer! It is a spaceship simulator where you can impact Newtonian force on the spacecraft to send it whizzing around a mock solar system composed of some planets.

[FP] Here, you can see some of the planets, as well as better view of the spacecraft. The spacecraft is composed of a conic shield, a centrifuge, and a quantum cube drive that causes reality to distort and shake when it is activated...

[FP] ...just like this! The effect is more intense the faster the spacecraft is moving, too. The picture doesn't really do it justice!

[FP] Another shot of the big scarlet planet through this oddly-shaped plane-- er, ring, I suppose. Who knew cylinders could render without their caps? I certainly didn't, but I thought it befitting of bizarre Euclidean geometries and massive rendering objects!