Correction of spectral reflectance for shadow and topography in optical remote sensing data is challenging. Here, we corrected for canopy self-shadowing in an evergreen conifer forest in mountainous terrain using a three-dimensional (3D) point cloud. In our approach, the surface was modeled from structure-from-motion processed images provided by an unmanned aerial vehicle; then, the relationship between the observed spectral reflectance of the Sentinel-2A/B multispectral instrument, and the simulated sunlit fraction (the percentage of the solar-illuminated area within a Sentinel-2 pixel) was determined based on a ray-tracing scheme using a 3D point cloud. Scene-based and pixel-based linear regressions were applied to remove canopy-shadow and topographic effects from satellite-observed reflectance. Scene-based regression resulted in large seasonal changes that caused overcorrection in winter. Pixel-based regression generated stable seasonal profiles in both the red and near-infrared reflectance values over the conifer canopy; however, excessively smoothed seasonal changes were implemented over deciduous vegetation. In both correction methods, the reflection of incident light by the canopy likely improved the correction accuracy by decreasing the contrast between illuminated and shaded pixels in summer and increasing it in winter. The results were also visually compared with those from the Sun-Canopy-Sensor with C (SCS+C) method and the Sentinel-2 Level-2A product. This research demonstrates the effectiveness of using a 3D point cloud to correct for self-shadowing and topographic effects on remotely sensed reflectance.