Back to Devlogs...

A Brief Lesson on Computer Graphics

This article is unfinished.

I recommend you come back later, but feel free to scroll through.

The Atom

When looking at a topic as broad as "computer graphics", it's best to start with the most fundemental, tiny building blocks. The Atom is the smallest building block of matter that there is. They are the basis of everything.[source] (I don't know why I'm doing an intro paragraph lol). My point is, the smallest possible building block for computer graphics are Vertices.

Vertices

Vertices are, in their simplest concepts, points in space. Technically they can also exist in two dimensions (which I once used for some pretty cool procedural animation, maybe I'll make a post some time...) but generally rendered meshes are only actually considered in 3D. The basic names of the three axis are X, Y, and Z. Which axis is which depends on the program/library/engine and even those software's internal settings separately! Luckily, nowadays people seem to have settled on Y being Up, but you may run into some variation here and there. It's just worth it to be aware of. (i'm gonna be honest the only game that I can actually think of that has a different axis is Minecraft which has it on the Z axis. I don't want to badmouth Hatsune Miku, but that's some suprising code coming from her.)

Vertices don't always only contain position data, though (in fact they rarely do in finished implementations). They some of (but not limited to) these things:

Texture Coordinates (AKA UV's)

Texture Coordinates are basically used to tell the renderer what part of the texture a paticular point is located at. A lot of these values are Scalars which means values that range from 0 to 1. They are very useful for simple scaling of other variables. In this case zero on the X axis would be the left side of the texture attached to the mesh/model. Zero for the Y axis is the top, just like most renderers. That is, unless you're working directly deep in OpenGL, in which case you'll know of a rather infamous aspect of OpenGL that makes all textures flipped vertically upon loading. Why, you ask? I don't know. Maybe I should look that up some time.

...Okay yeah, I just looked it up quickly; everybody just worked around it without asking. PROGRAMMING. I'll be honest though, I did the same thing too. If someone knows, feel free to shoot me an email.

Regardless, I feel like I'm reaching the bounds of textual explanations and I should pull out the pad and pen and bring some DIAGRAMS out!!!!!!!

Incoming at some point

Anyway, the next data type is: