panda3D学习之路

本文介绍了Panda3D游戏开发框架的基础知识,包括如何开始一个项目,理解ShowBase和Scene Graph的概念。通过代码示例展示了如何加载模型,控制默认相机以及使用Actors进行动画模型的操作。文章还提到了3D坐标系和相机控制的实现方式,为初学者提供了学习路径。
摘要由CSDN通过智能技术生成

NO1.Getting started

安装完dmg之后,开始第一课

新建一个.py文件,然后写下下面的代码:

from direct.showbase.ShowBase import ShowBase

class MyApp(ShowBase):

    def __init__(self):
        ShowBase.__init__(self)

app = MyApp()
app.run()

ShowBase

ShowBase是一个基类。它承载了大多数panda3d的模块,run()过程是一个panda3d的主循环。它会渲染帧,执行后台任务,再渲染、再执行……循环下去。由于它不是一个正常的返回,因此必须只执行一次,并且要在程序的末尾。

这个程序生成一个黑色的框,仅此而已。

代码也可以简化成这样

import direct.directbase.DirectStart

run()

DirectStart是一个自动实例化ShowBase的一个捷径,在快速地建立原型的时候会比较好用。

Scene Graph

Scene Graph是一个场景树,树的根节点是一个叫做render对象,只有它最先被插入场景树的时候其他的场景树的节点才会被渲染。

将场景模型导入场景图使用reparentTo()方法(之前要导入具体的模型文件),将父节点作为参数传入,才能正确的渲染。

最后,我们适配位置和模型的大小,在我们的场景中,环境模型略大,因此是我们偏移了一些我们的目的。setScale()setPos()过程重塑了模型的大小和中心位置。

Panda3D使用3D世界坐标系的坐标位置。伸出大拇指表示x轴方向,其他手指是y方向,将大拇指指向自己,那这个坐标系就是Panda3D的坐标系统的坐标系。

loader.loadModel()方法读取模型,返回值是一个NodePath类的实例,可以有效地指向这个模型。

代码

from di
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值