I have always wondered how modern game engines do things such as realistic water, ambient occluded lighting, eye adaptation, global illumination, etc.
I'm not so much interested in the implementation details, but more on what part of the graphics API such as D3D or OpenGL allow adding such functionality.
The only thing I can think of is shaders, but I do not think just shaders can do all that.
So really what I'm asking is, what functions or capabilities of graphics APIs enable developers to implement these types of features into their engines?
Thanks