Panda3D 是一个用于 Python 和 C++ 程序的 3D 渲染和游戏开发框架。

Panda3D 是一个用 C++ 编写的强大的 3D 引擎,具有一套完整的 Python 绑定。与其他引擎不同,这些绑定是自动生成的,这意味着它们始终是最新的和完整的:引擎的所有功能都可以通过 Python 进行控制。所有主要的 Panda3D 应用程序都是用 Python 编写的,这是使用该引擎的预期方式。

Panda3D 现在支持自动着色器生成,这意味着您现在可以使用法线贴图、光泽贴图、发光贴图、HDR、卡通着色等,而无需编写任何着色器。

Panda3D 是一个现代引擎,支持着色器、模板和渲染到纹理等高级功能。Panda3D 的不同寻常之处在于它强调学习曲线短、开发速度快、稳定性和鲁棒性极强。Panda3D 是在 Windows、Linux 或 macOS 下运行的免费软件。

Panda3D 团队非常关心让新用户可以访问引擎。我们提供了详细的手册、完整的 API 参考和大量示例程序来帮助您入门。我们有活跃的论坛,有许多乐于助人的用户,开发人员定期在线回答问题。

Panda3D 手册

欢迎来到 Panda3D 文档!Panda3D 是一个开源、免费使用的 3D 引擎,专为开发实时 3D 游戏、可视化、模拟、实验而设计 - 应有尽有!它包含一个可与 Python 或 C++ 编程语言一起使用的子例程库,以及一些有助于开发和调试的工具。

该手册有两种版本:一种适用于 Python 用户,另一种适用于 C++ 用户。使用侧边栏中的链接在版本之间切换。您当前正在查看Python用户手册。

本手册分为几个部分,如下所列。您可以随时使用左侧的侧边栏在不同部分及其包含的页面之间导航。

介绍

我们建议初学者从阅读 介绍部分开始,介绍安装 Panda3D 的过程,最后以“Hello World”教程解释如何创建一个非常小的 Panda3D 程序,以了解使用引擎的外观喜欢。

Panda3D 简介

Panda3D 基础知识

Panda3D 是一个 3D 引擎:一个用于 3D 渲染和游戏开发的子程序库。该库是带有一组 Python 绑定的 C++。使用 Panda3D 进行游戏开发通常包括编写控制 Panda3D 库的 Python 或 C++ 程序。

Panda3D 是为商业游戏开发而创建的,并且仍然用于开发商业游戏。正因为如此,引擎需要强调四个方面:功率、速度、完整性和容错性。每个人都知道什么是力量和速度。但是完整性和容错性值得一些额外的评论。

完整性意味着 Panda3D 包含许多平淡无奇但必不可少的工具:场景图浏览、性能监控、动画优化器等。

容错是关于所有游戏开发人员都会创建错误的事实。当你这样做时,你希望你的引擎给你一个清晰的错误信息并帮助你找到错误。如果您将错误的值传递给函数,太多的引擎只会崩溃。Panda3D 几乎从不崩溃,很多代码专门用于跟踪和隔离错误的问题。

最后,回到功能和速度:要衡量 Panda3D 的能力,您可以查看示例程序。这些是演示 Panda3D 功能样本的简短程序。屏幕截图的右上角有帧速率,是在 Radeon X700 上拍摄的。请注意,有些示例是旧的并使用占位符艺术,因此不是 Panda3D 视觉功能的好例子。

Panda3D 是由迪士尼为他们的大型多人在线游戏 Toontown Online 开发的。它于 2002 年作为免费软件发布。卡内基梅隆大学的娱乐技术中心目前负责托管网站和其他 Panda3D 服务,它积极参与了 Panda3D 开源项目的开发。它现在由迪士尼和来自世界各地的贡献者共同开发。

您可以阅读更多关于 Panda3D 的功能

Panda3D 不是初学者的工具或玩具

要成功使用 Panda3D,您必须是一名熟练的程序员。如果您不知道“API”是什么,或者如果您不知道“树”是什么,您可能会发现 Panda3D 势不可挡。这不是点击式游戏制造商:这是专业人士的工具。虽然指出这一点很重要,这样您才能有准确的期望,但同样重要的是要意识到 Panda3D 是您将使用的最简单、最强大的引擎之一,我们欢迎您的参与。

如果您刚刚开始编程,我们建议您最好的选择是从编程课程开始。或者,您可以尝试使用来自 CMU的Alice等培训工具自学。

Panda3D 支持现代引擎应具备的全部功能:它为法线贴图、光泽贴图、HDR、卡通着色和墨迹、光晕以及许多其他事物提供了方便的支持。它还允许您编写自己的着色器。

人们有时会误以为 Panda3D 是用 Python 编写的,这会使其非常慢。但是 Panda3D 不是用 Python 编写的;它是用 C++ 编写的。Python 仅用于编写脚本。开发人员通常使用 C++ 或类似的 Cython编写性能密集型位(如果有) 。要了解小型 Panda3D 程序通常会获得什么样的帧速率,请查看示例程序的屏幕截图。这些是使用旧的 Radeon x700 拍摄的。当然,只有示例程序可以像这样以 400 fps 运行,但对于真正的游戏来说,60 fps 是完全可以达到的。不过需要注意的是:要获得这​​种性能,您需要了解 3D 卡和 3D 性能优化。它不会自动发生。Panda3D 包括您需要达到 60 fps 的分析工具。

Panda3D 的软件许可证

从 1.5.3 版开始,Panda3D 已在所谓的“修改后的 BSD 许可证”下发布,这是一种免费软件许可证,使用限制很少。在 1.5.2 及之前的版本中,它使用了与 BSD 和 MIT 许可证非常相似的专有许可证,尽管对于其中两个条款的自由性存在一些分歧。旧许可证仍可在此处访问。

虽然引擎本身是完全免费的,但它附带了各种非免费软件的第三方库。其中一些(如 FMOD)甚至限制您在商业游戏中使用它们,除非您拥有许可副本。由于这个原因,Panda3D 可以很容易地禁用或删除这些受限制的第三方库,并且大多数时候它提供了替代方案。例如,它还带有 OpenAL,您可以使用它来代替 FMOD。

你可以阅读Panda3D 的许可证

谁在研究 Panda3D

商业和开源社区中有许多开发人员。目前,除了开源社区的积极贡献外,开发社区最活跃的成员是迪士尼。迪士尼对 Panda3D 的主要兴趣是商业用途。Panda3D 正被用于开发许多迪士尼游戏和游乐园展品。为了满足迪士尼的需求,Panda3D 必须是一个功能齐全的引擎,能够提供任何“A 级”商业游戏所期望的所有性能和质量。

最受支持的语言是 Python。尽管您也可以使用 C++,但该文档主要针对 Python 的使用。

使用 Panda3D 编程

手册的这一部分解释了 Panda3D 的各种功能以及支持该库的各种概念。它充满了示例代码和API 参考链接,应与手册一起研究,以全面了解如何操作各种类。

调试

本节记录了可用于在 Panda3D 程序中查找问题的各种方法。

性能优化

性能优化通常是制作 3D 游戏的必要步骤,以使游戏在尽可能广泛的计算机硬件上运行。本节介绍如何使用 Panda3D 提供的强大性能分析工具查找和修复性能问题。

分配

本节介绍如何将完成的 Panda3D 应用程序编译成可执行文件并将其打包以进行分发。

工具

本节列出了许多支持使用 Panda3D 进行编程的工具,包括用于将模型导入 Panda3D 的 3D 建模程序的各种导出器。

API 参考

本节包含作为 Panda3D API 一部分的所有类和函数的完整列表。

更多资源

除了本手册之外,还有许多其他资源可能对学习 Panda3D 有用,包括书籍、示例程序和用户提供的教程。本节包含指向这些其他资源的链接。

获得帮助

如果您在理解或使用 Panda3D 方面遇到困难,请随时向社区提问!Panda3D 周围有一个充满热情的社区,可以为您提供帮助。您可以在 论坛上发布问题,访问我们的 Discord 服务器或访问Libera.Chat IRC 服务器#panda3d 上的频道。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐