Check out 3d graphics related stuff, there’s a ton of geometry used there, whether you’re ray tracing or using 2d projection.
A ray tracer is basically made up of:
ray caster algorithm to map pixels to rays and puts them into an image
data structures to contain scene data (like geometry, lighting, materials)
algorithm that represents a ray as a line and determines which parts of the scene geometry that line intersects with, selecting the one nearest and in front of the eye (or wherever the front is culled)
same algorithm used to determine if a ray from that intersection point to each light has anything between the point and light
also need to get the angle to the light for each ray that isn’t blocked
a shading algorithm that uses the lights, materials, and angles (and maybe more info) to determine the colour of that ray
some code that does something with the resulting image, like display it or save to a file
And that’s basically it. It will be slow without optimizations but it’s cool af seeing your renders. And you can improve on it from there if you want. Though a warning: you might get obsessed with analysing different visual phenomena and thinking about how to render something like that for a while after doing this, which might also lead to gaining a critical eye for where 3d engines fail to be accurate.
Check out 3d graphics related stuff, there’s a ton of geometry used there, whether you’re ray tracing or using 2d projection.
A ray tracer is basically made up of:
And that’s basically it. It will be slow without optimizations but it’s cool af seeing your renders. And you can improve on it from there if you want. Though a warning: you might get obsessed with analysing different visual phenomena and thinking about how to render something like that for a while after doing this, which might also lead to gaining a critical eye for where 3d engines fail to be accurate.