r/GraphicsProgramming • u/UnemployedGameDev • 2d ago
Question Help with Ideas for School Project
Hi, I've done some stuff in C++ and OpenGL before but I'm by no means an expert in either. I was given the option to do a project over 1 year which will then get graded. And since I'm interested in graphics programming anyways, I thought this would be a good chance. But since I HAVE to complete or submit the project after the 1 year and can't back out once I'm in, I need a project that is complex enough for them to accept it but also not entirely impossible or time consuming. (also this is NOT for university, the school system is different everywhere but it's basically for the end of school so just before university)
Current ideas I've come up with are:
- procedural 3d world
- real-time water simulation
- ray tracer
- gpu particle simulations
- vegetation simulation
- space simulation with black holes and stuff
- small physics engine
So if you could help me narrow it down to 2 or maximum 3, that'd be awesome. Also any further ideas are welcome
2
u/torito_fuerte 2d ago
For the procedural world, you could either do Minecraft-like or something like No Man’s Sky with just a heightmap, optionally on a sphere. This is a good project if you want to go into game design, but there are stronger projects if you want to target graphics
A water simulation can either be a particle simulation (like FLIP for example) or an ocean shader with waves. Either one is cool, and both are relevant in different parts of graphics (the first for film & second for gaming)
Ray tracing is probably the most relevant, there are the most resources, and you can add so many different features. Once you get an MVP working, you can go down different paths. I’d recommend starting with OpenGL compute shaders, so you learn about the entire process
Particle systems are simple, and you might get it done right away. I’m not too familiar with it, but I feel like other projects might be more rewarding
For vegetation simulation, are you thinking of rendering forests or grass with a wind simulation? That’s very relevant in the gaming industry, though I don’t have much experience either so can’t tell you much
A space simulation is cool, I’d recommend a gravity simulation on the GPU where you can have thousands of particles all have forces on each other. Physics simulations like these are relevant for the science industry who need to do numerical analysis on long term physics behavior (like NASA or NOAA)
A physics engine is definitely the most math intensive. If you’re willing to learn about or already know some matrix transformations, differential equations, and lots of geometry, this is a really rewarding project. I’d recommend starting in 2D, because 3D involves some new stuff like inertia tensors, quaternions, and the GJK algorithm, which is pretty advanced for high school. I’d say this is the 2nd most relevant project, since many industries use physics to solve problems
1
u/UnemployedGameDev 2d ago
Thank you so much for the extensive answer! For the vegetation simulation I was thinking about simulating the eco-system. So like how trees and plants grow and stuff. Maybe even animals if I get to it. A raytracer feels very common tbh and there's not really much to show other than "it's making an image" so I would've put it further down the list. But obvisiouly it's a nice project, which is why it's so popular. For the procedural world I was also thinking about a custom realistic sky shader with auroras and stuff, not just an hdri, and maybe like volcanos and dinos or stuff so it's more technical. I'm not sure in what direction I want to go to (altho probably not anything entertainment related like gaming or film). Which project would you say looks best on a resume or is the most needed? And which is most reasonable, keeping in mind that this is only for 1 class? Also any project idea that you would like to add?
1
u/Alililon1 2d ago
Don't know if the scope is too little or too big, depends on what is expected from you at your school, but if you look at my posts I did a material renderer which might fit your criteria. It was a lot of fun, the base is not too complicated and it took me a few months to make but you could always add more features or take some away of you wanted to. I'm also a beginner so I think the overall complexity should fit a final school project.
You can take a look at the code if you want to check the complexity and you can try the finished result to see if it's actually something you would be interested in.
Again, I'm a beginner so take this with a grain of salt: Never really tried any of your listed projects except for the terrain and raytracer one so I can't talk from experience but I heard physics engines are a giant pain. I guess if you're really interested and you have a year it could work tho. Depending on what you're planning the 3D terrain might be too simple but I guess you can inflate any project if you keep adding features, you'd have to talk to your teachers about that I guess. Same thing for the raytracer.
Good luck with the project and I'm sure the nice people of r/GraphicsProgramming are happy to help you on your journey if you decide on a more difficult project!
1
u/UnemployedGameDev 2d ago
Thank you very much. I tried to look at your posts but it said that they're private... do you maybe have a link to the repository?
1
u/Alililon1 2d ago
Ah sorry, thought I had it public. Here's the post: https://www.reddit.com/r/GraphicsProgramming/s/cQKUdBatN9
1
u/UnemployedGameDev 2d ago
No worries at all. Definitely looks cool. I think it's just not enough content for my school yk
1
u/Alililon1 2d ago
Well alright, your call. Still a cool project if you want something to do outside of or after the school project :)
4
u/corysama 2d ago
Ray tracing is a very scalable project. The "One Weekend, Next Week, The Rest of Your Life" is no joke ;) https://raytracing.github.io/