You don’t really need much knowledge in physics (certainly no degree) to code something like Cycles and I don’t think there’s any amount of advanced physics in Blender, whatsoever. The parts that require physics require the kind of “simple” newtonian physics that a physics student will deal with as an undergraduate.
Fundamentally, you need to know how to program and have a firm grasp on basic linear algebra. It also helps to learn this linear algebra in a graphics-related context, because generalized math courses tend to not be very efficient at teaching people anything useful.
As some like to point out, a simple pathtracer can be written from scratch in one hour. The underlying concepts are not complicated. What can become complicated (and laborious) is taking these concepts into a framework that people can actually use.
I don’t know whether a level of intelligence above average is required to achieve any of this, but I do know that it requires persistence. You really have to want to do something, because things can take time - a lot of time.
Also, a word on degrees: When it comes to Computer “Science”: You don’t need them. At all. It can help to follow a curriculum, but unless you’re looking into going into academia, a lot of the work that goes into a degree is a waste of time. If you want to develop something for people to use (as opposed to doing research) you’d better spend that time on getting real-world development experience.