Open Chippit opened 2 years ago
Hey, I may be interested in doing something on this topic too.
I'm a french highschool student graduating this year and we have a 5 minutes oral presentation as part of the final exams, so I thought about talking about perspective and projective spaces (I'm still in the process of finalizing my presentation). So, no surprise, I've come across the homogeneous coordinates system and spent some time thinking about it : how to clearly make the link between the n-dimensional projective frame and the vector space of dimension n+1, and finally, the projective frame and homogeneous coordinates.
I think there is something interesting to do, maybe explaining the maths, giving the ouline of game rendering process and diving into some examples to show how homogeneous coordinates make things easier to compute. There is a lot of possibilities and interesting things, we could even use the game engine aspect as guiding the content, but that would be a lot to cover (an interesting serie idea, but that's too much work). But using this specific apect as a guideline can be great, I guess ?
Well, that's all, I'm interested in the subject (and in learning new things, which I believe would be the case if we and up collaborating), but I'm not anything like a domain expert and do not have any animation skills. I'm not against learning, tho, but the deadline is close, and being to greedy often lead to unfinished projects (in my personal experience).
Thanks for your interest!
Learning more about the maths involved is definitely chief among my interests here too, but I have not got the mathematical grounding to do well at explaining such a thing. I understand enough to know that the coordinate space lets us do normal linear matrix projections, which can be really fast, but little about why that actually is able to work.
And indeed I am actually already concerned, reviewing my old horrible original video, that the content is already too dense and adding additional potential dense mathematics to it may just make this problem worse. Perhaps the solution is two separate videos tied to each other, rather than an attempt to jam maths, computer science, game engine and 3d renderer design all into one video?
Oh, I think that the idea of making two videos is great. One saying that the "w" stands for "wizardry" and that the other video can explain this wizardry, the other one saying at the end that those maths can be applied in 3d rendering and leading to the first one. And I would love to learn about all the things you want to say in the game engine video (and tell about what I understand of projective geometry)
PS: do you mind if we move to another way of discussing ? I've a phone number, discord and instagram
There is a great potential in giving more explanations on what there is in your old video (that I really don't find it that "horrible"). There are actually a few things that I did not understand: what is going on in the last steps of the model view projection matrix, and why do we have to give normals (is it to avoid computations ? Because it looks to me like we can figure it out with the vertices) Maybe the use of an example to follow the different steps of the rendering process can bring something interesting?
PS: my discord is Lune#5299
Sorry for the delay in response! I have sent you a friend request on Discord. I'm on GMT+2, so we should have some fair time overlap (though I'm usually busy during the weekdays).
do you have this project actively running or may we prepare something for 2023?
About the author
Hello all! I am a professional game developer and programmer with over 10 years of professional experience and double that again with amateur/hobbyist experience, in making games of all sorts, scopes, target platforms and genres. I have a lot of interest in applied mathematics and use a lot of the kinds of maths 3b1b covers on a daily basis, even when the underlying mathematics and how it operates is occasionally beyond my full understanding.
Quick Summary
3D renderers and game engines apply a lot of really cool maths to do what they do, and all of this can also highlight how remarkable current modern hardware is in a nice visual fashion. Most notably, 3D renderers make use of 4-dimensional math to produce perspective correct imagery, using a coordinate system known as homogeneous coordinates.
This topic will also touch on linear algebra, coordinate spaces, and the transformations you can do between those coordinate spaces.
In addition, there would be an opportunity for a more mathematical expert to help explain the underlying mathematics better than I can.
Target medium
The various transformations that take place in a game engine and graphics card in order to produce a final image lead to really interesting visualisations that would make for great video (or interactive video) content.
More details
A few years ago, with very limited time, video production knowledge, and access to really rubbish recording hardware (and some wallowing despair at needing to listen back to my own voice for hours on end), I produced a video that touches on this topic (as well as digging further into more technical processes behind how game renderers interact with graphics cards) for students at a local university. I expect this can be a baseline for a much better produced, higher quality video fit for public release. The technical game engine stuff is perhaps stretching the definition of what is acceptable for SoME, but the mathematical bits definitely fit. I'm not certain how strict any SoME limitations might be, as it would still count as educational content, just in a slightly different field.
The video I produced before is here.
Please forgive the audio quality (and all other quality, honestly) that sounds as if it was recorded on the other side of a tin can telephone. In some senses it was. This video is also probably already a good representation of a script and teaching outline, especially if there is room for the game engine related stuff, but could do with expansion on the mathematics behind homogeneous coordinates in particular (a part where my expertise is probably insufficient).
Contact details
I am flexible, but we can keep these discussions to the Github issue for now, and perhaps move to some other IM if this sounds like it interests anyone.