panda3d场景的主要状态


    场景的状态包括位置、方向、缩放比例、物体朝向、颜色、可见性、透明度、相机等。

    最常改变的是位置和方向。
    panda3d的默认坐标系:X向右,Y向前,Z向上。
    对象方向使用欧拉角度坐标;由航向(Heading|Yaw)、俯仰(Pitch)、滚动(Roll)构成。

    这两句设置载入场景的位置和缩放比例;
    self.environ.setScale(0.25, 0.25, 0.25)
    self.environ.setPos(-8, 42, 0)
    缩放比例可分别设置X、Y、Z方向的;

    self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
    这句应该是每帧改变相机的位置和方向;

    spinCameraTask,这个是自己写的函数;python的语法看上去和C#和C++不同;

    taskMgr,这个应是每帧调用的一个东西;

    看一下手册;

Tasks are subroutines (functions) that you write that get called by Panda every frame or every specified amount of time. Event handlers are subroutines that you write that get called by Panda when certain special events occur. 
任务是一个你自己写的子路由函数,被Panda每帧调用,或者指定的时间到达调用。......;
Together, these two mechanisms enable you to update your Panda world between rendering steps.
这两个机制使你能更新你的Panda场景,在渲染的步骤之间。

这函数每帧被调用,改变相机的位置和方向;这样场景就在旋转;
def spinCameraTask(self, task):
        angleDegrees = task.time * 6.0
        angleRadians = angleDegrees * (pi / 180.0)
        self.camera.setPos(20 * sin(angleRadians), -20.0 * cos(angleRadians), 3)
        self.camera.setHpr(angleDegrees, 0, 0)
        return Task.cont

setPos,改变位置;
setHpr,改变方向;
setHpr的三个参数是:Yaw,Pitch,Roll;

self是啥我还没搞懂;可能是ShowBase类的一个实例;有时间学习一下python语法;
class MyApp(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

只载入场景;

载入自己的egg模型;位置、方向、缩放比例自己调整;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值