My Bachelor's thesis was frustum culling. I implemented single-threaded brute force culling and optimized it using AVX instructions and cache. It goes over 400,000,000 culls / second.
For Master's thesis I had an idea for occlusion culling. Later I found out that such method already exists and it is called coverage buffer occlusion culling. I still went with it. Used Intel's Software Culling as a base and replaced depth buffer rasterization with coverage buffer. On a side note it was only 1% better, but average FPS has significantly lower deviation.
You could also try to go for various shading algorithms. For example try to create shader for realistic human skin or animal fur. Maybe give a try at area lights (https://labs.unity.com/article/real-time-polygonal-light-shading-linearly-transformed-cosines). Maybe beat a dead horse and create Yet Another Planet Renderer™, possibly with full vegetation and simulation to show how planet evolves as time goes on (plants growing, dying, spreading, river erosion, deserts growing / disappearing, etc.).