图解 Panda3D引擎开发入门

        Panda3D 是一个 3D 渲染和游戏开发框架,可以在这个框架下使用 Python 和 C++ 。Panda3D 是开源软件, 它的许可证让它可以用于任何用途, 包括商业用途。本文使用Panda3D 1.7.0版本,其最新稳定版本是1.7.2。可在官网下载最新稳定版本。Panda3D包括Windows和Linux版本,本文基于Windows。

    Panda3D 1.7.0 Windows安装包可在鄙人网盘下载:

http://pan.baidu.com/s/1sjoeS01


    不是做游戏。主要考虑以后用于展示一些行业的场景模型、设备模型之类。

一 安装

1 双击安装;



2 安装向导;

图解 Panda3D引擎开发入门_第1张图片


3 安装位置;

图解 Panda3D引擎开发入门_第2张图片


4 是否需要Egg缓存,若安装,速度快,但占内存;此处选择否;

图解 Panda3D引擎开发入门_第3张图片


5 安装完成;

图解 Panda3D引擎开发入门_第4张图片


6 开始菜单;

图解 Panda3D引擎开发入门_第5张图片


二 入门python程序

1

编辑一个脚本,就2句;

import direct.directbase.DirectStart
run()

然后用python运行;

出现第一个Panda窗口,如下图;

图解 Panda3D引擎开发入门_第6张图片


脚本所引用的库的位置如下图;

图解 Panda3D引擎开发入门_第7张图片


    如果对于Python基础知识还不了解;可参阅我写的博文:http://blog.csdn.net/bcbobo21cn/article/details/44980087

2 认识一下载入场景和模型

from math import pi, sin, cos

from math import pi, sin, cos
from math import pi, sin, cos
from direct.showbase.ShowBase import ShowBase
from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from direct.actor.Actor import Actor
from direct.interval.IntervalGlobal import Sequence
from panda3d.core import Point3


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


        # 禁用鼠标
        self.disableMouse()
        # 载入环境模型
        self.environ = self.loader.loadModel("models/environment")
        # 设置环境模型的父实例
        self.environ.reparentTo(self.render)
self.environ.reparentTo(self.render)
self.environ.reparentTo(self.render)
        # 对模型进行比例及位置调整
# 对模型进行比例及位置调整
        self.environ.setScale(0.25, 0.25, 0.25)
        self.environ.setPos(-8, 42, 0)
        # 通知任务管理器调用SpinCameraTask控制相机
        self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
        # 载入熊猫角色
        self.pandaActor = Actor("models/panda-model",
                                     {"walk": "models/panda-walk4"})
        self.pandaActor.setScale(0.005, 0.005, 0.005)
        self.pandaActor.reparentTo(self.render)
        # 动画循环
        self.pandaActor.loop("walk")
        # 创建四幕
        PosInterval1 = self.pandaActor.posInterval(13,
                                                   Point3(0, -10, 0),
                                                   startPos=Point3(0, 10, 0))
        PosInterval2 = self.pandaActor.posInterval(13,
                                                   Point3(0, 10, 0),
                                                   startPos=Point3(0, -10, 0))
        HprInterval1 = self.pandaActor.hprInterval(3,
                                                   Point3(180, 0, 0),
                                                   startHpr=Point3(0, 0, 0))
        HprInterval2 = self.pandaActor.hprInterval(3,
                                                   Point3(0, 0, 0),
                                                   startHpr=Point3(180, 0, 0))
        # 创建情节并运行四幕
        self.pandaPace = Sequence(PosInterval1,
                                  HprInterval1,
                                  PosInterval2,
                                  HprInterval2,
                                  name="pandaPace")
        self.pandaPace.loop()
        # 定义旋转相机
    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
          
app = MyApp()
app.run()

图解 Panda3D引擎开发入门_第8张图片


    这个场景和模型是Panda3D自带的;大熊猫是panda3d自带角色。看到以上代码要认识到,所使用的库当然不是Python自身的库,是panda3d提供的用于python开发的库。

此处使用的Python是安装Panda3d时自动装上的Python,位于 C:\Panda3D-1.7.0\python。载入的模型位于安装后的C:\Panda3D-1.7.0\models。

两个python脚本代码文件下载:

http://pan.baidu.com/s/1kTqtabd




你可能感兴趣的:(原创教程,图形学和3D,3d引擎,开源软件,3d,python)