方向光、点光、聚光灯各三行描述——单位是物理的:lux 与坎德拉,距离衰减是平方反比。
xge3d_light_desc_t tSun = xge3dLightDefault(XGE3D_LIGHT_DIRECTIONAL);
tSun.direction = (xge3d_vec3_t){ -0.4f, -0.75f, 0.5f }; // 光行进方向
tSun.intensity = 3.2f; // lux
xge3d_node_t tLamp;
xge3dNodeCreate(pScene, (xge3d_node_t){0}, &tLamp);
xge3dNodeSetLight(pScene, tLamp, &tSun);点光与聚光灯用 XGE3D_LIGHT_POINT / XGE3D_LIGHT_SPOT:intensity 单位是坎德拉,平方反比衰减;range 为 0 表示无界,聚光角的 inner/outer 满足 0 ≤ inner < outer < π/2(弧度)。颜色是线性 RGB。最多 8 盏灯(XGE3D_MAX_LIGHTS)。
| 函数 / 宏 | 说明 |
|---|---|
xge3dLightDefault(type) | 按灯型返回默认描述 |
xge3dNodeSetLight(scene, node, desc) | 把灯挂到节点;替换即换灯 |
XGE3D_LIGHT_DIRECTIONAL / POINT / SPOT | 三种灯型 |
casts_shadow(描述字段) | 方向/聚光可投影;点光阴影不支持 |