panda3d虚幻引擎--(1)

目录

前言(阿巴阿巴)

安装

调整窗口

导入环境


前言(阿巴阿巴)

前几天无意间看到了一个叫做panda3d的东西,觉得挺好玩,就翻教程,发现现在中文教程似乎没有那么全面成体系,大部分都是复制粘贴过来官网的实例然后就发布出去了,看得云里雾里的,所以我决定自己去摸索一下这个panda3d,学panda3d的小伙伴中间肯定遇到过很多坑,也有过很多不理解的地方,不过没关系,来瞅瞅我的这个panda3d教程,给你个比较全面的讲解。

我整了个QQ群,180962166,有不会的进来问就行(如果我会的话)

好了,正式开始。

安装

想要用这个panda3d呢可以通过官网sdk下载或者通过pip命令安装,官网地址Panda3D | Open Source Framework for 3D Rendering & Games

 

安装sdk就点击中间那个按钮就行,很简单对吧,不过我用的是另一种方式,pip安装

命令pip install Panda3D , pip install panda3d 这俩都行,都能安装下来。

然后新建一个文件夹起名叫ch1(名字无所谓),然后新建一个game.py(名字随便起)的文件

大概是这个样子 

调整窗口

下面直接贴代码块,讲解的内容也在代码块里(贴代码块省事,省的编辑格式了)


#第一步导入,导入这个叫做ShowBase的类,它是一个panda3d的基础类,用来创建窗口的
from direct.showbase.ShowBase import ShowBase
#然后定义一个Game类,继承上面导入的ShowBase类,然后就是Game类init,showBase类init,没啥好说的
class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

#实例化一下这个Game类
game = Game()
#ShowBase类里有一个run方法,启动窗口用的,这里Game也继承了ShowBase,所以直接game.run()
game.run()

 运行之后发现出现了一个灰色窗口,窗口里没有任何东西(实际上,你根本没写东西,显示出其他东西的话才见鬼了)

好了,如果你运行出来上面窗口了,恭喜你,你的环境没有任何问题,可以继续往下进行了。

我觉得这个窗口有点小,我想调成我想要的


#第一步导入,导入这个叫做ShowBase的类,它是一个panda3d的基础类,用来创建窗口的
from direct.showbase.ShowBase import ShowBase

#############################################################
导入一个叫做WindowProperties的东西,它可以帮你解决窗口大小问题
from panda3d.core import WindowProperties
#############################################################




#然后定义一个Game类,继承上面导入的ShowBase类,然后就是Game类init,showBase类init,没啥好说的
class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

        ##############################################################
        properties = WindowProperties()
        第一个是长,第二个是宽
        properties.setSize(1000,750)
        给刚才的配置应用到窗口里
        self.win.requestProperties(properties)
        ##############################################################

#实例化一下这个Game类
game = Game()
#ShowBase类里有一个run方法,启动窗口用的,这里Game也继承了ShowBase,所以直接game.run()
game.run()

运行,然后你就会发现窗口变大了

 后面代码多了之后可能会变混乱,我把每一次出现的新代码用#框起来,#里出现的代码就是新加入的代码,这样看起来会比较容易点,当然如果各位观众老爷觉得这样看起来让你很不爽的话,评论区里告诉我,我改成其他方式。

导入环境

代码能跑了吗?能,但是只跑了一点点,空洞的一个灰窗口没啥意思,我给它加点背景,导入环境,让它没那么无趣。环境文件在QQ群里,群号博客开头有。

from direct.showbase.ShowBase import ShowBase
from panda3d.core import WindowProperties

#############################################
导入一个叫做Actor的类,它是用来加载模型的
from direct.actor.Actor import Actor
#############################################


class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)
        properties = WindowProperties()
        properties.setSize(1000,750)
        self.win.requestProperties(properties)

        ##########################################################################
        #panda3d提供了很多全局对象,这里的loader就是其中之一,用loader的loadModel方法可以把
        #环境文件导入到Game类里,environment不用写后缀,panda3d会自动帮你检测
        self.environment = self.loader.loadModel('Environment/environment')
        把self.environment定向到父节点下,self.render就是一个父节点,下面讲节点
        self.environment.reparentTo(self.render)
        ##########################################################################


game = Game()
game.run()

运行之后,环境模型被成功加载

 

上面提到了一个节点,这个节点是啥呢(了解即可)

这就是一个节点图,每个节点是一个对象,最上面的节点是所有类的父类 ,我们用到的全局对象render是一个Node,我们的Game也是一个Node,Game继承的父类ShowBase类也是一个Node,也就是说其实Panda3d里的东西都是Node形式的。

大概第一节课就讲这么多叭,跟着上面的代码跑一下,没问题的话咱们就继续下一讲了。观众老爷们下节见^-^

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Panda3D虚幻引擎和Unity3D是三种常见的游戏引擎。它们在功能和特点上有所不同。 Panda3D是一个开源的、跨平台的游戏引擎,它提供了强大的3D渲染和物理模拟功能。Panda3D具有灵活的编程接口,可以使用Python或C++进行开发。它适用于独立开发者和小型团队,可以用于创建各种类型的游戏。 虚幻引擎是由Epic Games开发的一款商业游戏引擎。它提供了强大的图形渲染、物理模拟、动画和人工智能等功能。虚幻引擎具有丰富的工具和资源,适用于创建高质量的AAA级游戏。它支持多平台开发,并且有一个活跃的社区和生态系统。 Unity3D是一款广泛使用的商业游戏引擎,它提供了易于使用的可视化编辑器和强大的跨平台支持。Unity3D支持2D和3D游戏开发,并且具有丰富的资源库和插件生态系统。它适用于各种规模的项目,从独立开发者到大型游戏工作室。 总的来说,Panda3D适合独立开发者和小型团队,虚幻引擎适合创建高质量的AAA级游戏,而Unity3D则是一个广泛使用的游戏引擎,适用于各种规模的项目。选择哪个引擎取决于项目的需求、开发团队的技能和预算等因素。 #### 引用[.reference_title] - *1* *3* [剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)](https://blog.csdn.net/www_xuhss_com/article/details/123947843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [开源图形/游戏引擎的点评](https://blog.csdn.net/Witch_Soya/article/details/7948997)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值