Developers have been relying heavily on the following techniques for creating realistic static and moving images.
Transformations
Hidden Surface Removal
Lights
Materials
Shading
Colors
Textures
Shadows
Transparency
Reflection
Curves and Surfaces
Collision Detection
Animation
Realistic camera models
Advanced meshes
Image based rendering