First post on aether & shaders! This is going to be a personal engineering blog that covers a little bit of everything regarding graphics programming, MMO architecture, general game design, studying Japanese, and any other thing I might find interesting!
Who the hell are you?
Glad you asked, I’m James! I’ve been working for about 6 years professionally as a dev and wanted to go deeper into developing systems I find interesting. Along with development, I’m always had a keen interest in playing MMOs especially FFXIV, the critically acclaimed MMORPG now with a free trial now including Shadowbringers (Square pls hire me), so I’ll be working on figuring out the systems that go in them as well! My main interest is graphics programming though, I like the idea of being able to see my work and this type of programming makes me feel all warm and fuzzy inside!
What am I going to talk about?
Posts here will fall into a few categories:
- Graphics: shader breakdowns, rendering techniques, GPU programming
- Engineering: distributed systems, architecture, tooling
- Japanese: language study, culture, etc
- Notes: shorter observations, bookmarks, drafts of thought
- Games: random observations on things I’m playing!
Let’s test out some components here!
To go along with future articles, I’ll make sure on this article to test out the different components I have, so that I can show off the type of work I’m doing.
Here is an embedded shader viewport so we can verify that I can play with shaders:
You get a code block!
Here’s some C++ code to verify code blocks look great:
std::cout << "hello, world!" << std::endl;
Asides
Short marginalia in three flavors:
malloc per frame is enough to make the pause visible. Disclosures
Hairline-bordered, click-to-expand:
What's a fragment shader, exactly?
A small program that runs once per fragment (a candidate pixel) and decides what color the GPU should write to the framebuffer. There’s usually one running for every pixel on screen, every frame — so the budget per invocation is brutal.
Why not just use the depth buffer for that?
You can, and people do. The catch is that the depth buffer is non-linear — reconstructing world-space position from it costs a matrix multiply and a divide per fragment, which adds up.
Is this going to be on the test?
No. There is no test. Read at the pace that’s useful to you.
Last thing!
This blog is my own perspective, you’re effectively going to be reading about me learning unfamiliar concepts, systems, and ideas in general, so go easy on me and help a guy out! Thanks in advance!