初步了解panda3d灯光

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初步了解panda3d灯光相关的知识,希望对你有一定的参考价值。

场景中采用灯光效果需要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键切换灯光效果;

 

 逐步再看其他类型的灯;

以上是关于初步了解panda3d灯光的主要内容,如果未能解决你的问题,请参考以下文章

为啥灯光出现在对面?

Win 10 应用开发UI Composition 札记:灯光

初步了解panda3d阴影效果的实现

Unity3D 5.0+模型合并&灯光烘焙降低Draw Calls方案

初步了解Panda3D场景管理

基于51单片机室内灯光控制系统