RANDOM USER PROJECTS
Angels Fall First: the Second Antarean War
Psychedelic Flythrough of the Mind of a Computer
Epoch: a space combat game

Panda3D Manual: Third-party dependencies and license info


This page is not in the table of contents.
m
(expand on library functionality)
Line 1: Line 1:
 
When building Panda3D yourself on your computer you'll notice that makepanda.py looks up if you have some libraries installed. On operating systems with a packaging system, like most GNU/Linux distros have, you'll most likely find all dependencies as packages in the official repositories. Otherwise you have to take care of the libraries yourself.
 
When building Panda3D yourself on your computer you'll notice that makepanda.py looks up if you have some libraries installed. On operating systems with a packaging system, like most GNU/Linux distros have, you'll most likely find all dependencies as packages in the official repositories. Otherwise you have to take care of the libraries yourself.
  
Here you have a list of all third party libraries Panda3D must or can be compiled against. Some of them are required, others very optional.
+
Here you have a list of all third party libraries Panda3D must or can be compiled against. All of them are optional, but some features of Panda3D depend on certain libraries being available; omitting certain libraries will omit the corresponding features from Panda3D.
  
 
== Recommended ==
 
== Recommended ==
Line 7: Line 7:
 
=== OpenSSL ===
 
=== OpenSSL ===
 
http://www.openssl.org <br />
 
http://www.openssl.org <br />
Used in Panda's low-level code. Highly recommended.
+
Provides some networking and encryption support. Required for HTTPClient, and for pencrypt/pdecrypt and related functionality.
  
 
=== FFMPEG ===
 
=== FFMPEG ===
 
http://ffmpeg.org <br />
 
http://ffmpeg.org <br />
Library for video and audio.
+
Library for video and audio.  Required to load and play video textures.
  
 
=== libjpeg ===
 
=== libjpeg ===
 
http://www.ijg.org <br />
 
http://www.ijg.org <br />
JPEG library.
+
JPEG library.  Required to read and save JPEG files.
  
 
=== libpng ===
 
=== libpng ===
 
http://www.libpng.org <br />
 
http://www.libpng.org <br />
Portable Network Graphics library.
+
Portable Network Graphics library.  Required to read and save PNG files.
  
 
=== Freetype ===
 
=== Freetype ===
 
http://freetype.sourceforge.net <br />
 
http://freetype.sourceforge.net <br />
Gives font support.
+
Font library.  Required to use dynamic fonts such as TTF files.  Even without this library, however, Panda can use static fonts stored in egg files, as generated by the tool egg-mkfont (however, the tool egg-mkfont itself requires Freetype).
  
 
=== GTK ===
 
=== GTK ===
 
http://www.gtk.org <br />
 
http://www.gtk.org <br />
The Gimp-ToolKit is mostly used by PStats.
+
The Gimp ToolKit is used by only by PStats, and only on non-Windows platforms.
  
 
=== Python ===
 
=== Python ===
Line 35: Line 35:
 
=== FMOD ===
 
=== FMOD ===
 
http://www.fmod.org <br />
 
http://www.fmod.org <br />
Fmod is a proprietary audio library that supports various effects and surround sound.
+
Fmod is a proprietary audio library that supports various effects and surround sound. You must have one of FMOD or OpenAL to build support for Panda's sound interfaces.  (However, you can use external sound libraries such as pygame, even without these two.)
  
 
=== OpenAL ===
 
=== OpenAL ===
Line 52: Line 52:
 
=== libsquish ===
 
=== libsquish ===
 
http://code.google.com/p/libsquish/ <br />
 
http://code.google.com/p/libsquish/ <br />
Libsquish gives DXT support.
+
Libsquish gives DXT support.  This improves Panda's support for pre-compressed texture images such as dds files, and it allows Panda to streamline compression of textures images at load time.  However, even without this library, Panda can still compress and use compressed textures, by relying on the interfaces built into your graphics driver.
  
 
=== FFTW ===
 
=== FFTW ===
 
http://www.fftw.org <br />
 
http://www.fftw.org <br />
Fast Fourier Fransforms library for lossy animation compression in bam files.
+
Fast Fourier Fransforms library for lossy animation compression in bam files.  Compressed animation files may be as small as 10% of the uncompressed animation, but this is only an on-disk and/or download savings.
  
 
=== OpenCV ===
 
=== OpenCV ===
 
http://opencv.willowgarage.com <br />
 
http://opencv.willowgarage.com <br />
 +
An alternate library that provides support for video textures, similar to FFMPEG.
  
 
=== ATRoolKit ===
 
=== ATRoolKit ===
 
http://www.hitl.washington.edu/artoolkit/ <br />
 
http://www.hitl.washington.edu/artoolkit/ <br />
A library for augmented reality. It makes possible detecting 3D planes in live webcam video streams and applying 3D geometry to those.
+
A library for augmented reality. It makes possible detecting 3D planes in live webcam video streams and applying 3D geometry to those, for integrating 3D graphics with a live video feed.
  
 
=== FCollada ===
 
=== FCollada ===
 
https://collada.org/mediawiki/index.php/FCollada <br />
 
https://collada.org/mediawiki/index.php/FCollada <br />
FCollada is an open-source C++ library which offers support for COLLADA interoperability.
+
FCollada is an open-source C++ library which offers support for COLLADA interoperability, used for dae2egg and for loading dae files directly into Panda.

Revision as of 19:46, 13 June 2010

When building Panda3D yourself on your computer you'll notice that makepanda.py looks up if you have some libraries installed. On operating systems with a packaging system, like most GNU/Linux distros have, you'll most likely find all dependencies as packages in the official repositories. Otherwise you have to take care of the libraries yourself.

Here you have a list of all third party libraries Panda3D must or can be compiled against. All of them are optional, but some features of Panda3D depend on certain libraries being available; omitting certain libraries will omit the corresponding features from Panda3D.

Contents

Recommended

OpenSSL

http://www.openssl.org
Provides some networking and encryption support. Required for HTTPClient, and for pencrypt/pdecrypt and related functionality.

FFMPEG

http://ffmpeg.org
Library for video and audio. Required to load and play video textures.

libjpeg

http://www.ijg.org
JPEG library. Required to read and save JPEG files.

libpng

http://www.libpng.org
Portable Network Graphics library. Required to read and save PNG files.

Freetype

http://freetype.sourceforge.net
Font library. Required to use dynamic fonts such as TTF files. Even without this library, however, Panda can use static fonts stored in egg files, as generated by the tool egg-mkfont (however, the tool egg-mkfont itself requires Freetype).

GTK

http://www.gtk.org
The Gimp ToolKit is used by only by PStats, and only on non-Windows platforms.

Python

http://python.org
Panda3D is way easier and faster to code with when using Python bindings.

FMOD

http://www.fmod.org
Fmod is a proprietary audio library that supports various effects and surround sound. You must have one of FMOD or OpenAL to build support for Panda's sound interfaces. (However, you can use external sound libraries such as pygame, even without these two.)

OpenAL

http://www.openal.org
The Open Audio Library is a free alternative to FMOD and supports nearly the same features, including 3D surround sound.

Cg Toolkit

http://developer.nvidia.com/object/cg_toolkit.html
Nvidia's Cg Toolkit is required for Panda's Cg support.

Open Dynamics Engine (ODE)

http://www.ode.org
One of the most versatile, free physics engines. Very well integrated into Panda.

Very Optional

libsquish

http://code.google.com/p/libsquish/
Libsquish gives DXT support. This improves Panda's support for pre-compressed texture images such as dds files, and it allows Panda to streamline compression of textures images at load time. However, even without this library, Panda can still compress and use compressed textures, by relying on the interfaces built into your graphics driver.

FFTW

http://www.fftw.org
Fast Fourier Fransforms library for lossy animation compression in bam files. Compressed animation files may be as small as 10% of the uncompressed animation, but this is only an on-disk and/or download savings.

OpenCV

http://opencv.willowgarage.com
An alternate library that provides support for video textures, similar to FFMPEG.

ATRoolKit

http://www.hitl.washington.edu/artoolkit/
A library for augmented reality. It makes possible detecting 3D planes in live webcam video streams and applying 3D geometry to those, for integrating 3D graphics with a live video feed.

FCollada

https://collada.org/mediawiki/index.php/FCollada
FCollada is an open-source C++ library which offers support for COLLADA interoperability, used for dae2egg and for loading dae files directly into Panda.