
This is a squashed commit of the following, as well as my own (rdb's) revisions: commit 80662759a18607743316f75ee6aa4a63c3f8d8e6 Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Thu Dec 1 15:07:29 2016 +0100 Removed some useless fixed pipeline checks commit 563b5dbe93b451006ddbf3797aabdda7482ef3de Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Thu Dec 1 14:19:21 2016 +0100 Improved the LUMINANCE check system commit 596036a8bb59d627f703bccfdc399dc31e1723a9 Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Thu Dec 1 13:30:45 2016 +0100 Removed some useless fixed pipeline checks commit 0f7fa7cd33860c3cde1b4594731271170301b42d Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Thu Dec 1 13:26:07 2016 +0100 Don't try to check if fixed pipeline is available before the context has been generated commit 56ed18e29dcb0a7cb0feccd0d50038416637427f Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Thu Dec 1 13:14:49 2016 +0100 Assuming the fixed pipeline is available in GL 3.1 contexts commit 73075ead73be21c8ce9a468ed92eb2c8c7d548c4 Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Fri Nov 4 12:59:45 2016 +0100 Fixed errors while quering for GL_TEXTURE_LUMINANCE_SIZE and GL_TEXTURE_INTENSITY_SIZE in GL >= 4.0 core profile contexts commit 3f799ed20be22f6f82de13445c5f9515a424ef9f Author: Jose Luis Cercos Pita <jlcercos@gmail.com> Date: Fri Dec 16 10:01:03 2016 +0100 Added fixed functions pipeline support check at runtime Closes: 128
Panda3D
Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for any purpose, including commercial ventures, thanks to its liberal license. To learn more about Panda3D's capabilities, visit the gallery and the feature list. To learn how to use Panda3D, check the documentation resources. If you get stuck, ask for help from our active community.
Panda3D is licensed under the Modified BSD License. See the LICENSE file for more details.
Building Panda3D
Windows
We currently build using the Microsoft Visual C++ 2010 compiler. You do not need Microsoft Visual Studio to build Panda3D, though - the relevant compilers are included as part of the Windows 7.1 SDK.
You will also need to have the third-party dependency libraries available for the build scripts to use. These are available from one of these two URLs, depending on whether you are on a 32-bit or 64-bit system: https://www.panda3d.org/download/panda3d-1.9.3/panda3d-1.9.3-tools-win32.zip https://www.panda3d.org/download/panda3d-1.9.3/panda3d-1.9.3-tools-win64.zip
After acquiring these dependencies, you may simply build Panda3D from the command prompt using the following command:
makepanda\makepanda.bat --everything --installer --no-eigen
When the build succeeds, it will produce an .exe file that you can use to install Panda3D on your system.
Note: you may choose to remove --no-eigen and build with Eigen support in order to improve runtime performance. However, this will cause the build to take hours to complete, as Eigen is a heavily template-based library, and the the MSVC compiler does not perform well under these circumstances.
Linux
Building Panda3D on Linux is easy. All you need is to invoke the makepanda script using the version of Python that you want Panda3D to be built against.
Run makepanda.py with the --help option to see which options are available. Usually, you will want to specify the --everything option (which builds with support for all features for which it detects the prerequisite dependencies) and the --installer option (which produces an installable .deb or .rpm file for you to install, depending on your distribution).
The following command illustrates how to build Panda3D with some common options:
python2.7 makepanda/makepanda.py --everything --installer --no-egl --no-gles --no-gles2
You will probably see some warnings saying that it's unable to find several dependency packages. You should determine which ones you want to include in your build and install the respective development packages. You may visit this manual page for an overview of the various dependencies.
If you are on Ubuntu, this command should cover the most frequently used third-party packages:
sudo apt-get install build-essential pkg-config python-dev libpng-dev libjpeg-dev libtiff-dev zlib1g-dev libssl-dev libx11-dev libgl1-mesa-dev libxrandr-dev libxxf86dga-dev libxcursor-dev bison flex libfreetype6-dev libvorbis-dev libeigen3-dev libopenal-dev libode-dev libbullet-dev nvidia-cg-toolkit libgtk2.0-dev
Once Panda3D has built, you can either install the .deb or .rpm package that it produced, depending on which Linux distribution you are using. For example, to install the package on Debian or Ubuntu, use this:
sudo dpkg -i panda3d*.deb
If you are not using a Linux distribution that supports .deb or .rpm packages, you
may have to use the installpanda.py script instead, which will directly copy the
files into the appropriate locations on your computer. You may have to run the
ldconfig
tool in order to update your library cache after installing Panda3D.
macOS
On macOS, you will need to download a set of precompiled thirdparty packages in order to compile Panda3D, which can be acquired from here.
After placing the thirdparty directory inside the panda3d source directory, you may build Panda3D using a command like the following:
python makepanda/makepanda.py --everything --installer
In order to make a universal build, pass the --universal flag. You may also target a specific minimum macOS version using the --osxtarget flag followed by the release number, eg. 10.6 or 10.7.
If the build was successful, makepanda will have generated a .dmg file in the source directory containing the installer. Simply open it and run the package file in order to install the SDK onto your system.
Reporting Issues
If you encounter any bugs when using Panda3D, please report them in the bug tracker. This is hosted at:
https://bugs.launchpad.net/panda3d
Make sure to first use the search function to see if the bug has already been reported. When filling out a bug report, make sure that you include as much information as possible to help the developers track down the issue, such as your version of Panda3D, operating system, architecture, and any code and models that are necessary for the developers to reproduce the issue.
If you're not sure whether you've encountered a bug, feel free to ask about it in the forums or the IRC channel first.