Macroscopic and microscopic mixture models and algorithms for hyperspectral unmixing are presented. Unmixing algorithms are derived from an objective function. The objective function incorporates the linear mixture model for macroscopic unmixing and a nonlinear mixture model for microscopic unmixing. The nonlinear mixture model is derived from a bidirectional reflectance distribution function for microscopic mixtures. The algorithm is designed to unmix hyperspectral images composed of macroscopic or microscopic mixtures. The mixture types and abundances at each pixel can be estimated directly from the data without prior knowledge of mixture types. Endmembers can also be estimated. Results are presented using synthetic data sets of macroscopic and microscopic mixtures and using well-known, well-characterized laboratory data sets. The unmixing accuracy of this new physics-based algorithm is compared to linear methods and to results published for other nonlinear models. The proposed method achieves the best unmixing accuracy.