我正在尝试在 WebGL 中创建一个太阳系。但是我不知道设置照明。我想在我的太阳上放一盏灯,让它360度投射光。我的行星应该投射和接收阴影。为了实现这一点,我的灯光需要 360 度投射阴影。有可能做这样的事情吗?如果是这样,怎么做?我应该使用哪种类型的灯?
我的太阳有一个meshBasicMaterial,我的行星有一个meshShaderMaterial。谁能给我一些示例代码?
谢谢!
我正在尝试在 WebGL 中创建一个太阳系。但是我不知道设置照明。我想在我的太阳上放一盏灯,让它360度投射光。我的行星应该投射和接收阴影。为了实现这一点,我的灯光需要 360 度投射阴影。有可能做这样的事情吗?如果是这样,怎么做?我应该使用哪种类型的灯?
我的太阳有一个meshBasicMaterial,我的行星有一个meshShaderMaterial。谁能给我一些示例代码?
谢谢!
您应该THREE.PointLight
为太阳添加一个 - 它会将光线投射到各个方向。
阴影比较棘手,因为 Three.js 中的点光源不支持阴影投射。您有一些不太理想的选择:
请注意,使用自定义ShaderMaterial
阴影接收对象,您需要自己在着色器中实现阴影(或包含三个.js 的阴影代码块)。
听起来您需要使用全向灯。