场景中采用灯光效果需要2个步骤:
创建灯,定位于场景的某个地方;
声明需要被照亮的对象;
Panda3D引擎有四种类型的灯:点光源,定向灯,环境光,聚光灯。
环境灯;根据手册,
AmbientLight
from panda3d.core import AmbientLight
Bases: LightNode
AmbientLight类包含在panda3d.core命名空间,基类是LightNode;
A light source that seems to illuminate all points in space at once. This kind of light need not actually be part of the scene graph, since it has no meaningful position.
一个光源,好像照射在空间的所有点。这类光不需要是场景图的一部分,因为它没有固定位置。
环境灯,Ambient Lights,在物体的阴暗侧填充阴影,使它看起来不会完全呈现黑色。
环境灯均匀地分布在整个场景,位置和方向都无关紧要。
只使用环境灯照亮的物体着色完全平面化。
在载入模型的基本代码中加入3句;
ambientLight = AmbientLight("ambientLight")
ambientLight.setColor((.55, .01, .01, 1))
self.environ.setLight(self.render.attachNewNode(ambientLight))
定义一个环境光,设置光的颜色,把光加入场景;
看到的模型如下;
如果出现类似下述错误;
File "test4.py", line 13
SyntaxError: Non-UTF-8 code starting with '\xbd' in file test4.py on line 13, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
则把.py文件存为UTF-8编码;
使用pview载入自带模型;
按l键切换灯光效果;
逐步再看其他类型的灯;