
关键属性
- LightingEnabled:是否启用光照渲染。默认为 false,表示场景使用固定的基准光照。如果设为 true,则使用 BasicEffect 中定义的光照效果。
- EnableDefaultLighting:启用默认光照效果。如果尚未开启光照渲染,调用此方法会自动开启光照。
- PreferPerPixelLighting:开启逐像素光照,提升颜色精度与真实感。
- DirectionalLight0、DirectionalLight1、DirectionalLight2:用于定义渲染时使用的定向光。每个定向光包含镜面反射、漫反射分量以及光源方向,LightingEnabled 为 true 时这几项属性才会生效。
- AmbientLightColor:物体的环境反射颜色,数值范围在 0 到 1 之间的浮点表示。
- 光照模型对比VSport
- 逐点光照(Per-Vertex Lighting)可实现快速渲染,适合复杂场景的初步展示,效果略逊于逐像素光照。
- 逐像素光照(Per-Pixel Lighting)在每个像素点计算颜色,效果更准确,但消耗更高。
常用组合示例
- 固定光照
- 将 LightingEnabled 设为 false,关闭光照计算,使用固定的光照基准。
- 单向定向光且非逐像素光照
- EnableDefaultLighting()
- PreferPerPixelLighting = false
- DirectionalLight1.Enabled = false
- DirectionalLight2.Enabled = false
- 仅保留第一组定向光生效,使用逐点光照模式。
- 使用点光源效果
- EnableDefaultLighting()
- PreferPerPixelLighting = false
- 启用默认光照,以逐点光照模式实现点光源的效果。
- 单向像素光照
- EnableDefaultLighting()
- PreferPerPixelLighting = true
- DirectionalLight1.Enabled = false
- DirectionalLight2.Enabled = false
- 启用逐像素光照,并仅保留第一组定向光。
- 完整像素光照
- EnableDefaultLighting()
- PreferPerPixelLighting = true
- 维持默认的定向光设置,开启逐像素光照以获得最高质量的像素级光照效果。
以上配置可根据实际场景需求进行组合,以实现从快速预览到高质量渲染的不同效果。
