将物体作为光源,I.E。太阳

时间:2011-03-13 20:16:27

标签: graphics directx

我正在研究太阳能系统模型,我没有在对象+旋转上执行不同变换的实际问题。

但是有一个要求让我感到难过,太阳(位于0,0,0)需要成为光源。我已经开始在该位置创建了一个点光源并对其进行了配置。问题是太阳没有被光线照射,我猜是因为光线来自它内部,所以它没有从外面反射照亮它,任何人都有一些提示让它正常工作?

2 个答案:

答案 0 :(得分:0)

通常通过将材料的“发射”系数设置为黑色以外的其他值来创建发光物体。使用OpenGL,这是使用glMaterial()GL_EMISSION完成的。使用direct3d,您似乎想要更改Emissive的{​​{1}}参数

此系数允许您创建一个看似发光的对象,而不仅仅是从其他来源反射它。请注意,此系数是一种颜色,与漫反射系数和环境系数相同,因此您可以为太阳发射略带黄色的光。

太阳一般也有一种“光环”。使用发射系数或其他传统的照明和遮蔽机制无法轻易模拟这种情况。您可能想尝试使用面向四边形和alpha混合纹理的相机伪装它。

答案 1 :(得分:0)

你可以转动太阳的法线使它们面向内(简单地否定x,y和z)。现在他们都会指向点光源。

TBH虽然更简单,只是将其作为一种特殊情况呈现而不是点亮它。