List of All Config Variables

The following is an incomplete list of config variables as of Dec, 2016. It was generated using this code:

ConfigVariableManager.getGlobalPtr().listVariables()

Bear in mind that this list includes configuration parameters that control functionality that isn’t fully implemented yet. Ie, not all of these config variables are as useful as they sound.

You can use this command yourself in case this list gets out of date.

List of Panda3D variables:

Variable

Type

Default

Description

accept-clock-skew

bool

0

This controls the default value of SmoothMover::get_accept_clock_skew().

accum-bits

int

0

The minimum number of accumulator buffer bits requested.

adaptive-lru-max-updates-per-frame

int

40

The number of pages the AdaptiveLru class will update per frame. Do not set this too high or it will degrade performance.

adaptive-lru-weight

double

0.2

Specifies the weight factor used to compute the AdaptiveLru’s exponential moving average.

ae-undershift-factor-16

double

1.004

Specifies the factor by which After Effects under-applies the specified maximum pixel shift when applying a displacement map, in a 16-bit project file. This is used to control PfmVizzer::make_displacement().

ae-undershift-factor-32

double

1.0

Specifies the factor by which After Effects under-applies the specified maximum pixel shift when applying a displacement map, in a 32-bit project file. This is used to control PfmVizzer::make_displacement().

allow-collider-multiple

bool

0

Set this true to enable the use of a DoubleBitMask or QuadBitMask to manage many colliders added to a single traverser in one pass. If this is false, a one-word BitMask is always used instead, which is faster per pass, but may require more passes.

allow-flatten-color

bool

0

allows color to always be flattened to vertices

allow-incomplete-render

bool

1

When this is true, the frame may be rendered even if some of the geometry in the scene has been paged out, or if the textures are unavailable. The nonresident geometry and textures will be rendered as soon as they can be read from disk, which may be several frames in the future. When this is false, geometry is always paged in immediately when needed, holding up the frame render if necessary.

allow-live-flatten

bool

1

Set this true to allow the use of flatten_strong() or any variant on a node that is attached to a live scene graph node, or false to disallow this. Flattening a live scene graph node can cause problems when threading is enabled. This variable only has an effect when Panda is not compiled for a release build.

allow-nonpipeline-threads

bool

0

This variable should only be set true for debugging or development purposes. When true, the threading-model variable may specify a threaded pipeline mode, even if pipelining is not compiled in. This will certainly result in erroneous behavior, and quite likely will cause a crash. Do not set this unless you know what you are doing.

allow-portal-cull

bool

0

Set this true to enable portal clipping. This will enable the renderer to cull more objects that are clipped if not in the current list of portals. This is still somewhat experimental.

allow-unrelated-wrt

bool

1

Set this true to allow unrelated NodePaths (that is, nodes which have no common ancestor) to be adjusted relative to each other. If true, these will be treated as if they had a common node above their top nodes.

alpha-bits

int

0 (from Config.prc); 0 hardcoded

The minimum number of alpha buffer bits requested.

alpha-scale-via-texture

bool

1

When this is true, Panda will try to implement ColorScaleAttribs that affect alpha by creating an additional Texture layer over the geometry with a uniform alpha scale applied everywhere, if there is at least one available Texture slot available on the multitexture pipeline. Set this false to avoid this trickery, so that texturing is only enabled when the application specifically enables it. See also color-scale-via-lighting.

anim-blend-type

enum

normalized_linear

The default blend type to use for blending animations between frames, or between multiple animations. See interpolate-frames, and also PartBundle::set_anim_blend_flag() and PartBundle::set_frame_blend_flag().

aspect-ratio

double

0.0

assert-abort

bool

0

Set this true to trigger a core dump and/or stack trace when the first assertion fails

async-bind-priority

int

100

This specifies the priority assign to an asynchronous bind task when it is requested via PartBundle::load_bind_anim(). This controls the relative order in which asynchronous loads happen (in particular, relative to asynchronous texture or model loads). A higher number here makes the animations load sooner.

async-load-delay

double

0.0

If this is nonzero, it represents an artificial delay, in seconds, that is imposed on every asynchronous load attempt (within the thread). Its purpose is to help debug errors that may occur when an asynchronous load is delayed. The delay is per-model, and all aync loads will be queued up behind the delay–it is as if the time it takes to read a file is increased by this amount per read.

asynchronous-clients

bool

1

audio-active

bool

1

audio-buffering-seconds

double

3.0

Controls the amount of audio buffering when streaming audio. If you are playing a streaming sound, and any single frame takes longer than this, the audio will stutter. Caution: buffering streaming audio takes a lot of memory. For example, 5 seconds of stereo audio at 44,100 samples/sec takes one megabyte. The 3-second default is intentionally high, favoring correctness over efficiency, but for a commercial application you may wish to lower this.

audio-cache-limit

int

15

The number of sounds in the cache.

audio-distance-factor

double

1.0

audio-dls-file

filename

Specifies a DLS file that defines an instrument set to load for MIDI file playback. If this is not specified, the sound interface will try to use the system default DLS file, if one is available; the likely success of this depends on the operating system.

audio-doppler-factor

double

1.0

audio-drop-off-factor

double

1.0

audio-library-name

string

p3openal_audio (from Config.prc); null hardcoded

audio-min-hw-channels

int

15

Guarantee this many channels on the local sound card, or just play EVERYTHING in software.

audio-music-active

bool

1

DConfig

audio-output-bits

int

16

audio-output-channels

int

2

audio-output-rate

int

22050

audio-play-midi

bool

1

audio-play-mp3

bool

1

audio-play-wave

bool

1

audio-preload-threshold

int

1000000

If the decompressed size of a sound file exceeds this amount, then Panda3D will not attempt to store that sound file in RAM. Instead, it will stream the sound file from disk. It is not practical to stream multiple sound-files from disk at the same time - the hard drive seek time makes it stutter.

audio-sfx-active

bool

1

DConfig

audio-software-midi

bool

1

audio-volume

double

1.0

auto-break-cycles

bool

1

Set this true to automatically detect and break reference-count cycles in the TransformState and RenderState caches. When this is false, you must explicitly call TransformState.clear_cache() from time to time to prevent gradual memory bloat.

auto-flip

bool

0

This indicates the initial setting of the auto-flip flag. Set it true to cause render_frame() to flip all the windows before it returns (in single-threaded mode only), or false to wait until an explicit call to flip_frame() or the next render_frame(). Setting it true gets more immediate response time, while setting it false can get a better frame rate as more is achieved in parallel with the graphics card.

auto-garbage-logging

bool

0

DConfig

auto-single-cpu-affinity

bool

0

DConfig

aux-display

list

Names each of the graphics display libraries that are available on a particular platform. This variable may be repeated several times. These libraries will be tried one at a time if the library specified by load_display cannot be loaded.

average-frame-rate-interval

double

1.0

See ClockObject::set_average_frame_rate_interval().

back-buffers

int

1

The default number of back buffers requested.

background-color

color

0.41 0.41 0.41 0.0

Specifies the rgb(a) value of the default background color for a new window or offscreen buffer.

bam-endian

enum

littleendian

The default endianness to use for writing major numeric data tables to bam files. This does not affect all numbers written to bam files, only those for which the individual object was designed to support this flag. The default is “native”; you may set it to “littleendian” or “bigendian” to target a particular platform.

bam-stdfloat-double

bool

0

The default width of floating-point numbers to write to a bam file. Set this true to force doubles (64-bit floats), or false to force singles (32-bit floats). The default is whichever width Panda has been compiled to use natively. Normally, this setting should not be changed from the default.

bam-texture-mode

enum

relative

Set this to specify how textures should be written into Bam files.See the panda source or documentation for available options.

bam-version

int

Set this to specify which version .bam files to generate. Each Panda version only supports outputting a limited number of .bam versions. The default is to use the latest supported version.

basic-shaders-only

bool

#f (from Config.prc); 0 hardcoded

Set this to true if you aren’t interested in shader model three and beyond. Setting this flag will cause panda to disable bleeding-edge shader functionality which tends to be unreliable or broken. At some point, when functionality that is currently flaky becomes reliable, we may expand the definition of what constitutes ‘basic’ shaders.

bmp-bpp

int

0

This controls how many bits per pixel are written out for BMP files. If this is zero, the default, the number of bits per pixel is based on the image.

bounds-type

enum

sphere

Specify the type of bounding volume that is created automatically by Panda to enclose geometry. Use ‘sphere’ or ‘box’, or use ‘best’ to let Panda decide which is most appropriate. You can also use ‘fastest’ if you don’t want Panda to waste much time computing the most optimal bounding volume.

buffer-viewer-layout

string

hline

buffer-viewer-position

string

lrcorner

buffer-viewer-size

double

0 0

bullet-additional-damping

bool

0

Enables additional damping on eachrigid body, in order to reduce jitter. Default value is FALSE. Additional damping is an experimental feature of the Bullet physics engine. Use with care.

bullet-additional-damping-angular-factor

double

0.01

Only used when bullet-additional-damping is set to TRUE. Default value is 0.01

bullet-additional-damping-angular-threshold

double

0.01

Only used when bullet-additional-damping is set to TRUE. Default value is 0.01.

bullet-additional-damping-linear-factor

double

0.005

Only used when bullet-additional-damping is set to TRUE. Default value is 0.005

bullet-additional-damping-linear-threshold

double

0.01

Only used when bullet-additional-damping is set to TRUE. Default value is 0.01

bullet-broadphase-algorithm

enum

aabb

Specifies the broadphase algorithm to be used by the physics engine. Default value is ‘aabb’ (dynamic aabb tree).

bullet-enable-contact-events

bool

0

Specifies if events should be send when new contacts are created or existing contacts get remove. Warning: enabling contact events might create more load on the event queue then you might want! Default value is FALSE.

bullet-filter-algorithm

enum

mask

Specifies the algorithm to be used by the physics engine for collision filtering. Default value is ‘mask’.

bullet-gc-lifetime

int

256

Specifies the lifetime of data clean up be the soft body world info garbage collector. Default value is 256.

bullet-max-objects

int

1024

Specifies the maximum number of individual objects within a bullet physics world. Default value is 1024.

bullet-sap-extents

double

1000.0

Specifies the world extent in all directions. The config variable is only used if bullet-broadphase-algorithm is set to ‘sap’ (sweep and prune). Default value is 1000.0.

bullet-solver-iterations

int

10

Specifies the number of iterations for the Bullet contact solver. This is the native Bullet property btContactSolverInfo::m_numIterations. Default value is 10.

ca-bundle-filename

filename

This names the certificate authority file for OpenSSL to use to verify whether SSL certificates are trusted or not. The file named by this setting should contain one or more PEM-formatted certificates from trusted certificate authorities. This is a fairly standard file; a copy of ca-bundle.crt is included in the OpenSSL distribution, and is also included with Panda.

cache-check-timestamps

bool

1

Set this true to check the timestamps on disk (when possible) before reloading a file from the in-memory cache, e.g. via ModelPool, TexturePool, etc. When this is false, a model or texture that was previously loaded and is still found in the ModelPool is immediately returned without consulting the disk, even if the file on disk has recently changed. When this is true, the file on disk is always checked to ensure its timestamp has not recently changed; and if it has, the in-memory cache is automatically invalidated and the file is reloaded from disk. This is not related to on-disk caching via model-cache-dir, which always checks the timestamps.

cache-generated-shaders

bool

1

Set this true to cause all generated shaders to be cached in memory. This is useful to prevent unnecessary recompilation.

cache-report

bool

0

cache-report-interval

double

5.0

cg-glsl-version

string

If this is set, it forces the Cg compiler to generate GLSL code conforming to the given GLSL version when using the glslv, glslf or glslg profiles. Use this when you are having problems with these profiles. Example values are 120 or 150.

check-debug-notify-protect

bool

0

Set true to issue a warning message if a debug or spam notify output is not protected within an if statement.

client-cpu-affinity

int

-1

DConfig

client-cpu-affinity-mask

int

-1

DConfig

client-log-stack-dump

bool

0

DConfig

client-sleep

double

0.0

DConfig

clip-plane-cull

bool

1

This is normally true; set it false to disable culling of objects that are completely behind one or more clip planes (primarily useful for debugging) This also disables the use of occluders.

clock-degrade-factor

double

1.0

In degrade clock mode, returns the ratio by which the performance is degraded. A value of 2.0 causes the clock to be slowed down by a factor of two (reducing performance to 1/2 what would be otherwise). See ClockObject::set_degrade_factor().

clock-frame-rate

double

1.0

In non-real-time clock mode, sets the number of frames per second that we should appear to be running. In forced mode or limited mode, sets our target frame rate. In normal mode, this has no effect. See ClockObject::set_frame_rate().

clock-mode

enum

normal

Specifies the mode of the global clock. The default mode, normal, is a real-time clock; other modes allow non-real-time special effects like simulated reduced frame rate. See ClockObject::set_mode().

cluster-mode

string

DConfig

cluster-sync

bool

0

DConfig

collect-tcp

bool

0

Set this true to enable accumulation of several small consecutive TCP datagrams into one large datagram before sending it, to reduce overhead from the TCP/IP protocol. See Connection::set_collect_tcp() or SocketStream::set_collect_tcp().

collect-tcp-interval

double

0.2

collision-parabola-bounds-sample

int

10

This is the number of points along a CollisionParabola to sample in order to determine an accurate bounding box.

collision-parabola-bounds-threshold

double

10.0

This is the threshold size for a CollisionParabola to make a bounding box (BoundingHexahedron). If the parabola is smaller than this, it will make a BoundingSphere instead, which is much easier to make and will be good enough for small parabolas.

color-bits

int

1 1 1 (from Config.prc); hardcoded

The minimum number of total color buffer bits requested. If you specify only one value, it will represent the total value for the red, green and blue channels, and indicates you don’t care how the bits are divided up among the red, green and blue channels. If you specify three values, it represents three separate red, green and blue bit requirements.

color-scale-via-lighting

bool

1

When this is true, Panda will try to implement ColorAttribs and ColorScaleAttribs using the lighting interface, by creating a default material and/or an ambient light if necessary, even if lighting is ostensibly disabled. This avoids the need to munge the vertex data to change each vertex’s color. Set this false to avoid this trickery, so that lighting is only enabled when the application specifically enables it. See also alpha-scale-via-texture.

compose-componentwise

bool

1

Set this true to perform componentwise compose and invert operations when possible. If this is false, the compositions are always computed by matrix.

compress-chan-quality

int

95

The quality level is an integer number that generally ranges between 0 and 100, where smaller numbers indicate greater compression at the cost of quality, and larger numbers indicate higher quality but less compression. Generally, 95 is the highest useful value; values between 95 and 100 produce substantially larger, but not substantially better, output files. This is akin to the JPEG compression level.

compress-channels

bool

0

Set this true to enable lossy compression of animation channels when writing to the bam file. This serves to reduce the size of the bam file only; it does not reduce the memory footprint of the channels when the bam file is loaded.

compressed-textures

bool

0

Set this to true to compress textures as they are loaded into texture memory, if the driver supports this. Specifically, this changes the meaning of set_compression(Texture::CM_default) to Texture::CM_on.

connect-triangle-strips

bool

1

Set this true to send a batch of triangle strips to the graphics card as one long triangle strip, connected by degenerate triangles, or false to send them as separate triangle strips with no degenerate triangles. On PC hardware, using one long triangle strip may help performance by reducing the number of separate graphics calls that have to be made.

coordinate-system

enum

zup_right

The default coordinate system to use throughout Panda for rendering, user input, and matrix operations, unless specified otherwise.

copy-texture-inverted

bool

0

Set this true to indicate that the GSG in use will invert textures when it performs a framebuffer-to-texture copy operation, or false to indicate that it does the right thing. If this is not set, the default behavior is determined by the GSG’s internal logic.

cull-bin

list

gui-popup 60 unsorted (from Confauto.prc); hardcoded

Creates a new cull bin by name, with the specified properties. This is a string in three tokens, separated by whitespace: ‘bin_name sort type’.

cursor-filename

filename

cursor-hidden

bool

0

dc-multiple-inheritance

bool

1

Set this true to support multiple inheritance in the dc file. If this is false, the old way, multiple inheritance is not supported, but field numbers will be numbered sequentially, which may be required to support old code that assumed this.

dc-sort-inheritance-by-file

bool

1

This is a temporary hack. This should be true if you are using version 1.42 of the otp_server.exe binary, which sorted inherited fields based on the order of the classes within the DC file, rather than based on the order in which the references are made within the class.

dc-virtual-inheritance

bool

1

Set this true to support proper virtual inheritance in the dc file, so that diamond-of-death type constructs can be used. This also enables shadowing (overloading) of inherited method names from a base class.

debug-portal-cull

bool

0

Set this true to enable debug visualization during portal clipping.(You first need to enable portal culling, using the allow-portal-cullvariable.)

decompressor-step-time

double

0.005

Specifies the maximum amount of time that should be consumed by a single call to Decompressor::run().

default-antialias-enable

bool

0

Set this true to enable the M_auto antialiasing mode for all nodes by default.

default-converge

double

25.0

The default convergence distance for stereo cameras.

default-directnotify-level

string

warning (from Config.prc); info hardcoded

default-far

double

100000.0

The default far clipping distance for all cameras.

default-fov

double

30.0

The default field of view in degrees for all cameras. This is defined as a min_fov; that is, it is the field-of-view for the smallest of the X and Y sizes of the window, which is usually the vertical field of view (windows are usually wider than they are tall). For a 4x3 window, 30 degrees vertical is roughly 40 degrees horizontal.

default-iod

double

0.2

The default interocular distance for stereo cameras.

default-keystone

double

0.0

The default keystone correction, as an x y pair, for all cameras.

default-lod-type

enum

pop

Set this to either ‘pop’ or ‘fade’ to determine the type of LODNode that is created by LODNode::make_default_lod().

default-model-extension

string

.egg (from Confauto.prc); hardcoded

This specifies the filename extension (with leading dot) that should be assumed if an attempt is made to load a filename that has no extension. This is primarily designed to support legacy code that used the now-deprecated implicit-extension feature of Panda’s loader; new code should probably give the correct name for each model file they intend to load.

default-near

double

1.0

The default near clipping distance for all cameras.

default-stereo-camera

bool

1

When this is true, the default DisplayRegion created for a window or buffer with the stereo property will be a StereoDisplayRegion, which activates the stereo properties of the camera lens, and enables stereo. Set this false to require StereoDisplayRegions to be created explicitly.

default_max_angular_dt

double

0.03333333507180214

default_max_linear_dt

double

0.03333333507180214

default_noise_force_seed

int

665

default_terminal_velocity

double

400.0

depth-bits

int

1 (from Config.prc); 0 hardcoded

The minimum number of depth buffer bits requested.

depth-offset-decals

bool

1

Set this true to allow decals to be implemented via the advanced depth offset feature, if supported, instead of via the traditional (and slower) two-pass approach. This is currently the only method by which decals are implemented in Panda3D, and as such, this setting is ignored.

detect-graph-cycles

bool

1

Set this true to attempt to detect cycles in the scene graph (e.g. a node which is its own parent) as soon as they are made. This has no effect in NDEBUG mode.

direct-gui-edit

bool

0

DConfig

direct-wtext

bool

1

disable-sticky-keys

bool

0

DConfig

display

string

Specify the X display string for the default display. If this is not specified, $DISPLAY is used.

display-list-animation

bool

0

Set this true to allow the use of OpenGL display lists for rendering animated geometry (when the geometry is animated by the hardware). This is not on by default because there appear to be some driver issues with this on my FireGL T2, but it should be perfectly doable in principle, and might get you a small performance boost.

display-lists

bool

0

Set this true to allow the use of OpenGL display lists for rendering static geometry. On some systems, this can result in a performance improvement over vertex buffers alone; on other systems (particularly low-end systems) it makes little to no difference. On some systems, using display lists can actually reduce performance. This has no effect on DirectX rendering or on dynamic geometry (e.g. soft-skinned animation).

download-throttle

bool

0

When this is true, all HTTP channels will be bandwidth-limited so as not to consume more than downloader-byte-rate bytes per second.

downloader-byte-rate

int

500000

Specifies the default max bytes per second of throughput that is supported by any HTTP connections with download-throttle enabled. This may also be set on a per-channel basis with HTTPChannel::set_max_bytes_per_second(). It has no effect unless download-throttle (or HTTPChannel::set_download_throttle) is true.

downloader-frequency

double

0.2

Frequency of download chunk requests in seconds (or fractions of) (Estimated 200 msec round-trip to server).

downloader-timeout

int

15

downloader-timeout-retries

int

5

drive-forward-speed

double

20.0

drive-horizontal-center

double

0.0

drive-horizontal-dead-zone

double

0.1

drive-horizontal-ramp-down-time

double

0.0

drive-horizontal-ramp-up-time

double

0.0

drive-reverse-speed

double

10.0

drive-rotate-speed

double

80.0

drive-vertical-center

double

0.0

drive-vertical-dead-zone

double

0.1

drive-vertical-ramp-down-time

double

0.0

drive-vertical-ramp-up-time

double

0.0

driver-compress-textures

bool

0

Set this true to ask the graphics driver to compress textures, rather than compressing them in-memory first. Depending on your graphics driver, you may or may not get better performance or results by setting this true. Setting it true may also allow you to take advantage of some exotic compression algorithm other than DXT1/3/5 that your graphics driver supports, but which is unknown to Panda. If the libsquish library is not compiled into Panda, textures cannot be compressed in-memory, and will always be handed to the graphics driver, regardless of this setting.

driver-generate-mipmaps

bool

1

Set this true to use the hardware to generate mipmaps automatically in all cases, if supported. Set it false to generate mipmaps in software when possible.

dump-generated-shaders

bool

0

Set this true to cause all generated shaders to be written to disk. This is useful for debugging broken shader generators.

early-random-seed

bool

0

Configure this true to compute the SSL random seed early on in the application (specifically, when the libpandaexpress library is loaded), or false to defer this until it is actually needed (which will be the first time you open an https connection or otherwise use encryption services). You can also call HTTPClient::init_random_seed() to do this when you are ready. The issue is that on Windows, OpenSSL will attempt to randomize its seed by crawling through the entire heap of allocated memory, which can be extremely large in a Panda application, especially if you have already opened a window and started rendering; and so this can take as much as 30 seconds or more. For this reason it is best to initialize the random seed at startup, when the application is still very small.

egg-accept-errors

bool

1

When this is true, certain kinds of recoverable errors (not syntax errors) in an egg file will be allowed and ignored when an egg file is loaded. When it is false, only perfectly pristine egg files may be loaded.

egg-alpha-mode

enum

blend

Specifies the alpha mode to apply when the alpha specification “on” appears in the egg file (or when a primitive is implicitly transparent, because of a <RGBA> that involves a non-unity alpha, or because of a four-channel texture.

egg-combine-geoms

bool

0

Set this true to combine sibling GeomNodes into a single GeomNode, when possible. This usually shouldn’t be necessary, since the egg loader does a pretty good job of combining these by itself.

egg-consider-fans

bool

0

Set this true to enable the egg mesher to consider making triangle fans out of triangles that are connected at a common vertex. This may help if your scene involves lots of such connected triangles, but it can also make the overall stripping less effective (by interfering with triangle strips).

egg-coordinate-system

enum

default

egg-coplanar-threshold

double

0.01

The numerical threshold below which polygons are considered to be coplanar. Determined empirically.

egg-emulate-bface

bool

1

When this is true, the bface flag applied to a polygon will cause two different polygons to be created, back-to-back. When it is false, a single polygon will be created with the two_sided flag set on it.

egg-flat-colors

bool

1

Set this true to allow the egg loader to create geometry with the ColorAttrib::T_flat attribute set: that is, geometry that uses the scene graph color instead of per-vertex color. Normally Panda will do this as an optimization for Geoms whose vertices are all the same color, or all white. This allows the removal of the color attribute from the vertices where it is not necessary to specify colors per-vertex. If this is false, the color attribute will always be specified per-vertex, even if all vertices have the same value.

egg-flat-shading

bool

0

Set this true to allow the egg loader to create geometry with the ShadeModelAttrib::M_flat attribute set. It will do this only for geometry that has per-polygon normals and/or colors. This allows the egg loader to avoid duplicating vertices when they are shared between connected polygons with different normals or colors, but it prevents the flat-shaded geometry from being combined with any adjacent smooth-shaded geometry (for instance, as the result of a flatten_strong operation). It is false by default, since flat-shaded geometry is rare; but you may wish to set it true if your scene largely or entirely consists of flat-shaded polygons.

egg-flatten

bool

1

This is normally true to flatten out useless nodes after loading an egg file. Set it false if you want to see the complete and true hierarchy as the egg loader created it (although the extra nodes may have a small impact on render performance).

egg-flatten-radius

double

0.0

This specifies the minimum cull radius in the egg file. Nodes whose bounding volume is smaller than this radius will be flattened tighter than nodes larger than this radius, to reduce the node count even further. The idea is that small objects will not need to have their individual components culled separately, but large environments should. This allows the user to specify what should be considered “small”. Set it to 0.0 to disable this feature.

egg-ignore-decals

bool

0

egg-ignore-filters

bool

0

egg-ignore-mipmaps

bool

0

egg-implicit-alpha-binary

bool

0

If this is true, then a <Scalar> alpha value appearing in an egg file that appears to specify only a binary (0 or 1) value for alpha will automatically be downgraded to alpha type “binary” instead of whatever appears in the egg file.

egg-load-classic-nurbs-curves

bool

0

When this is true (and the above is also true), a <NurbsCurve> entry appearing in an egg file will load a ClassicNurbsCurve object instead of the default, a NurbsCurve object. This only makes a difference when the NURBS++ library is available, in which case the default, NurbsCurve, is actually a NurbsPPCurve object.

egg-load-old-curves

bool

1

When this is true, a <NurbsCurve> entry appearing in an egg file will load as a NurbsCurve or ClassicNurbsCurve object (see below). When this is false, it will load a RopeNode instead, which uses the new NurbsCurveEvaluator interface.

egg-max-indices

int

65535

Specifies the maximum number of vertex indices that will be added to any one GeomPrimitive by the egg loader.

egg-max-tfan-angle

double

40.0

The maximum average angle per triangle to allow in a triangle fan. If triangles are larger than this–that is, more loosely packed–then we figure a triangle strip is likely to do a more effective job than a triangle fan, and the fan maker leaves it alone.

egg-max-vertices

int

65534

Specifies the maximum number of vertices that will be added to any one GeomVertexData by the egg loader.

egg-mesh

bool

1

Set this true to convert triangles and higher-order polygons into triangle strips and triangle fans when an egg file is loaded or converted to bam. Set this false just to triangulate everything into independent triangles.

egg-min-tfan-tris

int

4

The minimum number of triangles that must be involved in order to generate a triangle fan. Fewer than this is just interrupting a triangle strip.

egg-normal-scale

double

1.0

egg-object-type-barrier

string

<Collide> { Polyset descend } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-binary

string

<Scalar> alpha { binary } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-bubble

string

<Collide> { Sphere keep descend } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-dcs

string

<DCS> { 1 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-direct-widget

string

<Scalar> collide-mask { 0x80000000 } <Collide> { Polyset descend } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-dual

string

<Scalar> alpha { dual } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-dupefloor

string

<Collide> { Polyset keep descend level } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-floor

string

<Collide> { Polyset descend level } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-ghost

string

<Scalar> collide-mask { 0 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-glass

string

<Scalar> alpha { blend_no_occlude } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-glow

string

<Scalar> blend { add } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-indexed

string

<Scalar> indexed { 1 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-invsphere

string

<Collide> { InvSphere descend } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-model

string

<Model> { 1 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-notouch

string

<DCS> { no_touch } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-polylight

string

<Scalar> polylight { 1 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-portal

string

<Scalar> portal { 1 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq10

string

<Switch> { 1 } <Scalar> fps { 10 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq12

string

<Switch> { 1 } <Scalar> fps { 12 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq2

string

<Switch> { 1 } <Scalar> fps { 2 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq24

string

<Switch> { 1 } <Scalar> fps { 24 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq4

string

<Switch> { 1 } <Scalar> fps { 4 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq6

string

<Switch> { 1 } <Scalar> fps { 6 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-seq8

string

<Switch> { 1 } <Scalar> fps { 8 } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-sphere

string

<Collide> { Sphere descend } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-trigger

string

<Collide> { Polyset descend intangible } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-trigger-sphere

string

<Collide> { Sphere descend intangible } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-object-type-tube

string

<Collide> { Tube descend } (from Confauto.prc); hardcoded

Defines egg syntax for the named object type.

egg-precision

int

15

The number of digits of precision to write out for values in an egg file. Leave this at 0 to use the default setting for the stream.

egg-preload-simple-textures

bool

1

This specifies whether the egg loader will generate simple texture images for each texture loaded. This supercedes the preload-simple-textures global default, for egg files. In fact, the egg loader will generate simple texture images if either this or preload-simple-textures is true.

egg-recursion-limit

int

1000

The maximum number of levels that recursive algorithms within the egg library are allowed to traverse. This is a simple hack to prevent deeply-recursive algorithms from triggering a stack overflow. Set it larger to run more efficiently if your stack allows it; set it lower if you experience stack overflows.

egg-retesselate-coplanar

bool

0

If this is true, the egg loader may reverse the tesselation direction of a single pair of planar triangles that share the same properties, if that will help get a better triangle strip. In some rare cases, doing so can distort the UV’s on a face; turning this off should eliminate that artifact (at the cost of less-effective triangle stripping).

egg-rigid-geometry

bool

0

Set this true to create rigid pieces of an animated character as separate static nodes, or false to leave these in with the parent node as vertex-animated geometry. Setting this true means less geometry has to be vertex-animated, but there will tend to be more separate pieces.

egg-show-normals

bool

0

egg-show-qsheets

bool

0

Set this true to color each quadsheet a random color, so you can visually observe the quadsheet algorithm.

egg-show-quads

bool

0

Set this true to color each detected quad a random color, so you can visually observe the algorithm that unifies pairs of triangles into quads (prior to generating triangle strips).

egg-show-tstrips

bool

0

Set this true to color each triangle strip a random color, with the leading triangle a little bit darker, so you can visually observe the quality of the triangle stripping algorithm.

egg-subdivide-polys

bool

1

This is obsolete. In the old Geom implementation, it used to be true to force higher-order polygons that were not otherwise meshed to be subdivided into triangles. In the new Geom implementation, this happens anyway.

egg-support-old-anims

bool

1

Set this true to support loading of old character animation files, which had the convention that the order “phr” implied a reversed roll.

egg-suppress-hidden

bool

0

When this is true, objects flagged as “hidden” with the visibility scalar are not created at all. When false, these objects are created, but initially stashed.

egg-test-vref-integrity

int

20

The maximum number of vertices a primitive may have before its vertices will no longer be checked for internal integrity. This is meaningful in non-production builds only.

egg-unify

bool

1

When this is true, then in addition to flattening the scene graph nodes, the egg loader will also combine as many Geoms as possible within a given node into a single Geom. This has theoretical performance benefits, especially on higher-end graphics cards, but it also slightly slows down egg loading.

egg-unroll-fans

bool

1

Set this true to allow the egg loader to convert weak triangle fans–triangles that share the same vertex but aren’t connected enough to justify making a triangle fan primitive from them–into a series of zig-zag triangles that can make a triangle strip that might connect better with its neighbors.

egg-vertex-max-num-joints

int

4

Specifies the maximum number of distinct joints that are allowed to control any one vertex. If a vertex requests assignment to more than this number of joints, the joints with the lesser membership value are ignored. Set this to -1 to allow any number of joints.

egg-vertex-membership-quantize

double

0.1

Specifies the nearest amount to round each vertex joint membership value when loading an egg file. This affects animated egg files only. There is a substantial runtime performance advantage for reducing trivial differences in joint membership. Set this to 0 to leave joint membership as it is.

enforce-attrib-lock

bool

1

When a MaterialAttrib, TextureAttrib, or LightAttrib is constructed, the corresponding Material, Texture, or Light is ‘attrib locked.’ The attrib lock prevents qualitative changes to the object. This makes it possible to hardwire information about material, light, and texture properties into generated shaders. This config variable can disable the attrib lock. Disabling the lock will break the shader generator, but doing so may be necessary for backward compatibility with old code.

even-animation

bool

0

When this is true, characters’ vertices will be recomputed every frame, whether they need it or not. This will tend to balance out the frame rate so that it is more uniformly slow. The default is to compute vertices only when they need to be computed, which can lead to an uneven frame rate.

exclude-texture-scale

list

This is a list of glob patterns for texture filenames (excluding the directory part of the filename, but including the extension); for instance, ‘digits_*.png’. Any texture filenames that match one of these patterns will not be affected by max-texture-dimension or texture-scale.

extended-exceptions

bool

0

extractor-step-time

double

0.005

Specifies the maximum amount of time that should be consumed by a single call to Extractor::step().

fake-texture-image

filename

Set this to enable a speedy-load mode in which you don’t care what the world looks like, you just want it to load in minimal time. This causes all texture loads via the TexturePool to use the same texture file, which will presumably only be loaded once.

fake-view-frustum-cull

bool

0

Set this true to cause culling to be performed by rendering the object in red wireframe, rather than actually culling it. This helps make culling errors obvious. This variable only has an effect when Panda is not compiled for a release build.

ffmpeg-global-lock

bool

0

Set this true to enable a single global mutex across *all* ffmpeg operations. Leave this false to use the mutex only for the ffmpeg operations that are generally known to be not thread-safe. This will negatively affect ffmpeg performance, especially when decoding multiple videos at once (including the left and right channels of a stereo video). Set this true only if you suspect a problem with ffmpeg’s own thread-safe nature.

ffmpeg-max-readahead-frames

int

2

The maximum number of frames ahead which an ffmpeg decoder thread should read in advance of actual playback. Set this to 0 to decode ffmpeg videos in the main thread.

ffmpeg-read-buffer-size

int

4096

The size in bytes of the buffer used when reading input files. This is important for performance. A typical size is that of a cache page, e.g. 4kb.

ffmpeg-show-seek-frames

bool

1

Set this true to allow showing the intermediate results of seeking through the ffmpeg stream to a target frame, or false to hold the current frame until the target frame is achieved. This has the biggest effect on videos that are too expensive to decode in real time: when this is true, the video can be seen to animate at least a little bit; when it is false, you may get long periods of one held frame.

ffmpeg-support-seek

bool

1

True to use the av_seek_frame() function to seek within ffmpeg video files. If this is false, Panda will only seek within a file by reading it from the beginning until the desired point, which can be much slower. Set this false only if you suspect a problem with av_seek_frame().

ffmpeg-thread-priority

enum

normal

The default thread priority at which to start ffmpeg decoder threads.

fft-error-threshold

double

0.2

fft-exponent

double

4.0

fft-factor

double

0.1

fft-offset

double

0.001

filesystem-encoding

enum

utf8

Specifies the default encoding used for wide-character filenames.

flash-bin-background

color

flash-bin-fixed

color

flash-bin-gui-popup

color

flash-bin-opaque

color

flash-bin-transparent

color

flash-bin-unsorted

color

flatten-collision-nodes

bool

0

Set this true to allow NodePath::flatten_medium() and flatten_strong() to combine multiple CollisionNodes into a single CollisionNode–but only if they share the same name and collide masks. When false, CollisionNodes are never combined. This is false by default, since collision tests rely heavily on bounding volume tests to be efficient, and combining CollisionNodes is likely to merge bounding volumes inappropriately.

flatten-geoms

bool

1

When this is true (the default), NodePath::flatten_strong() and flatten_medium() will attempt to combine multiple Geoms into as few Geoms as possible, by combing GeomVertexDatas and then unifying. Setting this false disables this behavior, so that NodePath flatten operations will only reduce nodes. This affects only the NodePath interfaces; you may still make the lower-level SceneGraphReducer calls directly.

flt-error-abort

bool

0

Set this true to trigger an assertion failure (and core dump) immediately when an error is detected on reading or writing a flt file. This is primarily useful for debugging the flt reader itself, to generate a stack trace to determine precisely at what point a flt file failed.

fluid-cap-amount

int

100

ensures that fluid pos doesn’t check beyond X feet

fmod-audio-preload-threshold

int

1048576

Files that are smaller than this number of bytes will be preloaded and kept resident in memory, while files that are this size or larger will be streamed from disk. Set this to -1 to preload every file.

fmod-number-of-sound-channels

int

128

Guarantee this many channels you will have with FMOD. AKA the max number of sounds you can play at one time.

fmod-speaker-mode

enum

Sets the speaker configuration that the FMOD sound system will use. Options: raw, mono, stereo, quad, surround, 5.1 and 7.1.

fmod-use-surround-sound

bool

0

Determines if an FMOD Flavor of PANDA use 5.1 Surround Sound or not. This variable is deprecated and should not be used. Use the enum variable fmod-speaker-mode instead.

force-parasite-buffer

bool

0

Set this true to make GraphicsOutput::make_texture_buffer() really strongly prefer ParasiteBuffers over conventional offscreen buffers. With this set, it will create a ParasiteBuffer every time an offscreen buffer is requested, even if this means reducing the buffer size to fit within the window. The only exceptions are for buffers that, by their nature, really cannot use ParasiteBuffers (like depth textures). You might set this true if you don’t trust your graphics driver’s support for offscreen buffers.

frame-rate-meter-layer-sort

int

1000

frame-rate-meter-milliseconds

bool

0

frame-rate-meter-ms-text-pattern

string

%0.1f ms

frame-rate-meter-scale

double

0.05

frame-rate-meter-side-margins

double

0.5

frame-rate-meter-text-pattern

string

%0.1f fps

frame-rate-meter-update-interval

double

1.5

framebuffer-accum

bool

0

True if FM_accum should be added to the default framebuffer properties, which requests an accumulator buffer if possible.

framebuffer-alpha

bool

1

True if FM_alpha should be added to the default framebuffer properties, which requests an alpha channel if possible.

framebuffer-depth

bool

1

True if FM_depth should be added to the default framebuffer properties, which requests a depth buffer.

framebuffer-float

bool

0

Set this to request a framebuffer that uses floating-point storage for the color channel.

framebuffer-hardware

bool

#t (from Config.prc); 1 hardcoded

True if FM_hardware should be added to the default framebuffer properties, which requests a hardware-accelerated display.

framebuffer-mode

string

No longer has any effect. Do not use.

framebuffer-multisample

bool

0

True if FM_multisample should be added to the default framebuffer properties, which requests a multisample-capable display, if possible. This can be used to implement full-screen antialiasing.

framebuffer-software

bool

#f (from Config.prc); 0 hardcoded

True if FM_software should be added to the default framebuffer properties, which requests a software-only display.

framebuffer-srgb

bool

0

Set this to request an sRGB framebuffer, which will convert all values to linear space before blending. This means that the output will be properly gamma-corrected, as long as all the input textures are either converted from original sRGB to linear or sRGB textures are used.

framebuffer-stencil

bool

0

True if FM_stencil should be added to the default framebuffer properties, which requests an stencil buffer if possible.

framebuffer-stereo

bool

0

True if FM_stereo should be added to the default framebuffer properties, which requests a stereo-capable display, if supported by the graphics driver.

fullscreen

bool

#f (from Config.prc); 0 hardcoded

game-server-timeout-ms

int

20000

This represents the amount of time to block waiting for the TCP connection to the game server. It is only used when the connection method is NSPR.

garbage-collect-states

bool

1

Set this true to defer destruction of TransformState and RenderState objects until the end of the frame (or whenever TransformState::garbage_collect() and RenderState::garbage_collect() are called). This is a particularly useful thing to do when using multiple threads, because it improves parallelization.

garbage-collect-states-rate

double

1.0

The fraction of the total number of TransformStates (or RenderStates, or whatever) that are processed with each garbage collection step. Setting this smaller than 1.0 will collect fewer states each frame, which may require less processing time, but risks getting unstable cache performance if states accumulate faster than they can be cleaned up.

geom-cache-min-frames

int

1

Specifies the minimum number of frames any one particular object will remain in the geom cache, even if geom-cache-size is exceeded.

geom-cache-size

int

5000

Specifies the maximum number of entries in the cache for storing pre-processed data for rendering vertices. This limit is flexible, and may be temporarily exceeded if many different Geoms are pre-processed during the space of a single frame.

geomipterrain-incorrect-normals

bool

0

If true, uses the incorrect normal vector calculation that was used in Panda3D versions 1.9 and earlier. If false (the default), uses the correct calculation.

gl-cheap-textures

bool

0

Configure this true to glHint the textures into the cheapest possible mode.

gl-check-errors

bool

0

Regularly call glGetError() to check for OpenGL errors. This will slow down rendering significantly. If your video driver supports it, you should use gl-debug instead.

gl-color-mask

bool

1

Configure this false if your GL’s implementation of glColorMask() is broken (some are). This will force the use of a (presumably) more expensive blending operation instead.

gl-compile-and-execute

bool

0

Configure this true if you know your GL’s implementation of glNewList(n, GL_COMPILE_AND_EXECUTE) works. It is false by default, since it is known to cause a crash with Intel 855GM driver 4.14.10.3889 at least. Turning this on *may* reduce the chug you get for preparing display lists for the first time, by allowing the display list to be rendered at the same time it is being compiled.

gl-coordinate-system

enum

yup_right

Which coordinate system to use as the internal coordinate system for OpenGL operations. If you are using features like fixed-function sphere mapping, it is best to leave this to yup-right. However, if you are creating a shader-only application, it may be easier and more efficient to set this to default.

gl-cube-map-seamless

bool

1

This configures Panda to try and enable seamless cube map sampling when supported. This will help to remove seams that show up at cube map edges, especially at lower resolutions. On by default; disable if you suspect that this is causing problems or if you simply don’t need the functionality.

gl-debug

bool

0

Setting this to true will cause OpenGL to emit more useful error and debug messages, at a slight runtime performance cost. notify-level-glgsg controls which severity levels are shown.

gl-debug-abort-level

enum

fatal

Set this to a setting other than ‘fatal’ to cause an abort to be triggered when an error of the indicated severity level (or a more severe one) occurs. This is useful if you want to attach a debugger. If you set this, it is highly recommended to also set gl-debug-synchronous, since the call stack will otherwise not point to the GL call that triggered the error message. This feature is not available when NDEBUG has been defined.

gl-debug-buffers

bool

0

Set this true, in addition to enabling debug notify for glgsg, to enable debug messages about the creation and destruction of OpenGL vertex buffers.

gl-debug-object-labels

bool

1

When gl-debug is set to true, this will tell OpenGL the name of textures, shaders, and other objects, so that OpenGL can display those in error messages. There’s usually no reason to disable this.

gl-debug-synchronous

bool

0

Set this true to make sure that the errors generated by gl-debug are reported as soon as they happen. This is highly recommended if you want to attach a debugger since the call stack may otherwise not point to the GL call where the error originated.

gl-dump-compiled-shaders

bool

0

This configures Panda to dump the binary content of GLSL programs to disk with a filename like glsl_program0.dump into the current directory.

gl-enable-memory-barriers

bool

1

If this is set, Panda will make sure that every write to an image using an image2D (et al) binding will cause Panda to issue a memory barrier before the next use of said texture, to ensure that all reads and writes are properly synchronized. This may not be strictly necessary when using the ‘coherent’ qualifier, but Panda has no way to detect whether you are using those. Turning this off may give a slight performance increase, but you have to know what you’re doing.

gl-finish

bool

0

Set this true to force a call to glFinish() after every major graphics operation. This is likely to slow down rendering performance substantially, but it will make PStats graphs more accurately reflect where the graphics bottlenecks are, although it is better to use timer queries when available. This variable is enabled only if PStats is compiled in.

gl-fixed-vertex-attrib-locations

bool

0

Experimental feature.

gl-force-depth-stencil

bool

0

Temporary hack variable 7x00 vs 8x00 nVidia bug. See glGraphicsStateGuardian_src.cxx.

gl-force-fbo-color

bool

1

This is set to true to force all FBOs to have at least one color attachment. This is to work around an Intel driver issue. Set to false to allow depth-only FBOs.

gl-force-flush

bool

0

Call this to force a call to glFlush() after rendering a frame, even when using a double-buffered framebuffer. This can incur a significant performance penalty.

gl-force-mipmaps

bool

0

Configure this true to enable full trilinear mipmapping on every texture, whether it asks for it or not.

gl-ignore-clamp

bool

0

Configure this true to disable texture clamp mode (all textures repeat, a little cheaper for software renderers).

gl-ignore-filters

bool

0

Configure this true to disable any texture filters at all (forcing point sampling).

gl-ignore-mipmaps

bool

0

Configure this true to disable mipmapping only.

gl-immutable-texture-storage

bool

0

This configures Panda to pre-allocate immutable storage for each texture. This improves runtime performance, but changing the size or type of a texture will be slower.

gl-interleaved-arrays

bool

0

Set this true to convert OpenGL geometry such that the primary data columns vertex, normal, color, and texcoord are interleaved into one array when possible, or false to render geometry as it appears in the GeomVertexData. See also gl-parallel-arrays.

gl-max-errors

int

20

This is the limit on the number of OpenGL errors Panda will detect and report before it shuts down rendering. Set it to -1 for no limit.

gl-min-buffer-usage-hint

enum

stream

This specifies the first usage hint value that will be loaded as a vertex buffer, instead of directly from the client. Normally, this should be “stream”, which means to load the vertex buffer using GL_STREAM_DRAW. If this is set to “dynamic”, or “static”, then only usage hints at that level or higher will be loaded as a vertex buffer, and stream or lower will be rendered directly from the client array. If changing this results in a remarkable performance improvement, you may have code that is creating and destroying vertex buffers every frame, instead of reusing the same buffers. Consider increasing released-vbuffer-cache-size instead.

gl-parallel-arrays

bool

0

Set this true to convert OpenGL geometry such that each data column is a separate array, or false to render geometry as it appears in the GeomVertexData. See also gl-interleaved-arrays.

gl-separate-specular-color

bool

1

When separate specular mode is on, the specular component will be written to the secondary instead of the primary color, which is added after the texturing stage. In other words, the specular highlight will be unmodulated by the color of the texture.

gl-show-texture-usage

bool

0

If you set this true, the screen will flash with textures drawn in a special mode that shows the mipmap detail level and texture size for each texture. Textures will be drawn in blue for mipmap level 0, yellow for mipmap level 1, and red for all higher mipmap levels. Brighter colors represent larger textures.

gl-show-texture-usage-max-size

int

1024

Specifies the texture size (along one side) of the largest texture expected to be loaded. This controls the assignment of the texture color in gl-show-texture-usage mode; colors will be fully bright for textures of this size or larger.

gl-support-clamp-to-border

bool

1

Configure this true to enable the use of the clamp_to_border extension if the GL claims to support it, or false not to use it even if it appears to be available. (On some OpenGL drivers, enabling this mode can force software rendering.)

gl-support-fbo

bool

1

Configure this false if your GL’s implementation of EXT_framebuffer_object is broken. The system might still be able to create buffers using pbuffers or the like.

gl-support-occlusion-query

bool

1

Configure this true to enable the use of the occlusion_query extension if the GL claims to support it, or false not to use it even if it appears to be available. (On some OpenGL drivers, enabling this mode can force software rendering.)

gl-support-primitive-restart-index

bool

1

Setting this causes Panda to make use of primitive restart indices to more efficiently render line segment primitives. Set to false if you suspect a bug in the driver implementation.

gl-support-rescale-normal

bool

1

Configure this true to enable the use of the rescale_normal extension if the GL claims to support it, or false not to use it even if it appears to be available. (This appears to be buggy on some drivers.)

gl-support-sampler-objects

bool

1

Setting this allows Panda to make use of sampler objects. Set to false if you suspect a bug in the driver implementation.

gl-support-shadow-filter

bool

1

Disable this if you suspect a bug in the driver implementation of ARB_shadow. Particularly, older ATI cards suffered from a broken implementation of the shadow map filtering features.

gl-support-texture-lod

bool

1

Configure this true to enable the use of minmax LOD settings and texture LOD bias settings. Set this to false if you suspect a driver bug.

gl-use-bindless-texture

bool

0

Set this to let Panda use OpenGL’s bindless texture extension for all textures passed to shaders, for improved performance. This is an experimental feature and comes with a few caveats; for one, it requires that all sampler uniforms have a layout(bindless_sampler) qualifier, and it also requires that the texture properties are not modified after the texture handle has been initialized.

gl-validate-shaders

bool

1

Set this to true to enable glValidateShader the first time a shader is bound. This may cause helpful information about shaders to be printed.

gl-version

int

Set this to get an OpenGL context with a specific version.

gl-vertex-array-objects

bool

1

Setting this causes Panda to make use of vertex array objects to more efficiently switch between sets of vertex arrays. This only has effect when vertex-arrays and vertex-buffers are both set. This should usually be true unless you suspect a bug in the implementation.

glsl-include-recursion-limit

int

10

This sets a limit on how many nested #pragma include directives that Panda will follow when glsl-preprocess is enabled. This is used to prevent infinite recursion when two shader files include each other.

glsl-preprocess

bool

1

If this is enabled, Panda looks for lines starting with #pragma include when loading a GLSL shader and processes it appropriately. This can be useful if you have code that is shared between multiple shaders. Set this to false if you have no need for this feature or if you do your own preprocessing of GLSL shaders.

glx-get-os-address

bool

1

Set this to true to allow Panda to query the OpenGL library directly using standard operating system calls to locate addresses of extension functions. This will be done only if glxGetProcAddress() cannot be used for some reason.

glx-get-proc-address

bool

1

Set this to true to allow the use of glxGetProcAddress(), if it is available, to query the OpenGL extension functions. This is the standard way to query extension functions.

glx-support-fbconfig

bool

1

Set this true to enable the use of the advanced FBConfig interface (as opposed to the older XVisual interface) if it is available, to select a graphics visual and create an OpenGL context.

glx-support-pbuffer

bool

1

Set this true to enable the use of X pbuffer-based offscreen buffers, if available. This is usually preferred over pixmap-based buffers, but not all drivers support them.

glx-support-pixmap

bool

0

Set this true to enable the use of X pixmap-based offscreen buffers. This is false by default because pixmap-based buffers are usually slower than pbuffer-based buffers.

graphics-memory-limit

int

-1

This is a default limit that is imposed on each GSG at GSG creation time. It limits the total amount of graphics memory, including texture memory and vertex buffer memory, that will be consumed by the GSG, regardless of whether the hardware claims to provide more graphics memory than this. It is useful to put a ceiling on graphics memory consumed, since some drivers seem to allow the application to consume more memory than the hardware can realistically support. Set this to -1 to have no limit other than the normal hardware-imposed limit.

handle-datagrams-internally

bool

1

When this is true, certain datagram types can be handled directly by the C++ cConnectionRepository implementation, for performance reasons. When it is false, all datagrams are handled by the Python implementation.

hardware-animated-vertices

bool

#f (from Config.prc); 0 hardcoded

Set this true to allow the transforming of soft-skinned animated vertices via hardware, if supported, or false always to perform the vertex animation via software within Panda. If you have a card that supports this, and your scene does not contain too many vertices already, this can provide a performance boost by offloading some work from your CPU onto your graphics card. It may also help by reducing the bandwidth necessary on your computer’s bus. However, in some cases it may actually reduce performance.

hardware-point-sprites

bool

1

Set this true to allow the use of hardware extensions when rendering perspective-scaled points and point sprites. When false, these large points are always simulated via quads computed in software, even if the hardware claims it can support them directly.

hardware-points

bool

1

Set this true to allow the use of hardware extensions when rendering large points. When false, large points (even if untextured) will be simulated via quads computed in software.

http-connect-timeout

double

10.0

This is the default amount of time to wait for a TCP/IP connection to be established, in seconds.

http-idle-timeout

double

5.0

This the amount of time, in seconds, in which a previously-established connection is allowed to remain open and unused. If a previous connection has remained unused for at least this number of seconds, it will be closed and a new connection will be opened; otherwise, the same connection will be reused for the next request (for a particular HTTPChannel).

http-max-connect-count

int

10

This is the maximum number of times to try reconnecting to the server on any one document attempt. This is just a failsafe to prevent the code from attempting runaway connections; this limit should never be reached in practice.

http-proxy-tunnel

bool

0

This specifies the default value for HTTPChannel::set_proxy_tunnel(). If this is true, we will tunnel through a proxy for all connections, instead of asking the proxy to serve documents normally.

http-skip-body-size

int

8192

This is the maximum number of bytes in a received (but unwanted) body that will be skipped past, in order to reset to a new request. See HTTPChannel::set_skip_body_size().

http-timeout

double

20.0

This is the default amount of time to wait for the HTTP server (or proxy) to finish sending its response to our request, in seconds. It starts counting after the TCP connection has been established (http_connect_timeout, above) and the request has been sent.

icon-filename

filename

img-header-type

enum

short

IMG format is just a sequential string of r, g, b bytes. However, it may or may not include a “header” which consists of the xsize and the ysize of the image, either as shorts or as longs. Specify that with this variable, either ‘short’, ‘long’, or ‘none’ for no header at all (in which case you should also set img-size).

img-size

int

0

If an IMG file without a header is loaded (e.g. img-header-type is set to ‘none’, this specifies the fixed x y size of the image.

inactivity-timeout

double

0.0

interpolate-frames

bool

0

Set this true to interpolate character animations between frames, or false to hold each frame until the next one is ready. This can also be changed on a per-character basis with PartBundle::set_frame_blend_flag().

interrogatedb-path

search-path

The search path for interrogate’s *.in files.

interval-precision

double

1000.0

Set this to the default value for set_precision() for each CMetaInterval created.

jpeg-quality

int

95

Set this to the quality percentage for writing JPEG files. 95 is the highest useful value (values greater than 95 do not lead to significantly better quality, but do lead to significantly greater size).

keep-temporary-files

bool

0

Set this true to keep around the temporary files from downloading, decompressing, and patching, or false (the default) to delete these. Mainly useful for debugging when the process goes wrong.

keep-texture-ram

bool

0

Set this to true to retain the ram image for each texture after it has been prepared with the GSG. This will allow the texture to be prepared with multiple GSG’s, or to be re-prepared later after it is explicitly released from the GSG, without having to reread the texture image from disk; but it will consume memory somewhat wastefully.

lens-far-limit

double

1e-7

This number is used to reduce the effect of numeric inaccuracies in Lens::extrude(). It should be a very small, positive number, almost zero; set it larger if Lens::extrude() returns values that appear meaningless, and set it smaller if you appear to be unable to move the far plane out far enough.

lens-geom-segments

int

50

This is the number of times to subdivide the visualization wireframe created when Lens::make_geometry() (or LensNode::show_frustum()) is called, for representing accurate curves. Note that this is only used for a nonlinear lens such as a cylindrical or fisheye lens; for a normal perspective or orthographic lens, the wireframe is not subdivided.

load-audio-type

list

* p3ffmpeg (from Confauto.prc); hardcoded

List the audio loader modules that Panda will automatically import when a new, unknown audio type is loaded. This may be either the name of a module, or a space-separate list of filename extensions, followed by the name of the module.

load-display

string

pandagl (from Config.prc); * hardcoded

Specify the name of the default graphics display library or GraphicsPipe to load. It is the name of a shared library (or * for all libraries named in aux-display), optionally followed by the name of the particular GraphicsPipe class to create.

load-file-type

list

egg pandaegg (from Confauto.prc); p3ptloader (from Confauto.prc); hardcoded

List the model loader modules that Panda will automatically import when a new, unknown model type is loaded. This may be either the name of a module, or a space-separate list of filename extensions, followed by the name of the module.

load-video-type

list

* p3ffmpeg (from Confauto.prc); hardcoded

List the video loader modules that Panda will automatically import when a new, unknown video type is loaded. This may be either the name of a module, or a space-separate list of filename extensions, followed by the name of the module.

loader-num-threads

int

1

The number of threads that will be started by the Loader class to load models asynchronously. These threads will only be started if the asynchronous interface is used, and if threading support is compiled into Panda. The default is one thread, which allows models to be loaded one at a time in a single asychronous thread. You can set this higher, particularly if you have many CPU’s available, to allow loading multiple models simultaneously.

loader-thread-priority

enum

low

The default thread priority to assign to the threads created for asynchronous loading. The default is ‘low’; you may also specify ‘normal’, ‘high’, or ‘urgent’.

lod-fade-bin-draw-order

int

0

The default bin draw order to assign the fading part of a FadeLODNode transition.

lod-fade-bin-name

string

fixed

The default bin name in which to place the fading part of a FadeLODNode transition.

lod-fade-state-override

int

1000

The default override value to assign to the fade attribs in order to effect a FadeLODNode transition.

lod-fade-time

double

0.5

The default amount of time (in seconds) over which a FadeLODNode transitions between its different levels.

log-stack-dump

bool

0

DConfig

m-dual

bool

1

Set this false to disable TransparencyAttrib::M_dual altogether (and use M_alpha in its place).

m-dual-flash

bool

0

Set this true to flash any objects that use M_dual, for debugging.

m-dual-opaque

bool

1

Set this false to disable just the opaque part of M_dual.

m-dual-transparent

bool

1

Set this false to disable just the transparent part of M_dual.

matrix-palette

bool

0

Set this true to allow the use of the matrix palette when animating vertices in hardware. The matrix palette is not supported by all devices, but if it is, using it can allow animation of more sophisticated meshes in hardware, and it can also improve the performance of animating some simpler meshes. Without this option, certain meshes will have to be animated in software. However, this option is not enabled by default, because its support seems to be buggy in certain drivers (ATI FireGL T2 8.103 in particular.)

max-collect-indices

int

65535

Specifies the maximum number of vertex indices that are allowed to be accumulated into any one GeomPrimitive as a result of collecting objects together during a flatten operation. This prevents the accidental generation of large index buffers from lots of smaller index buffers, while not imposing a limit on the original size of any one GeomPrimitive.

max-collect-vertices

int

65534

Specifies the maximum number of vertices that are allowed to be accumulated into any one GeomVertexData structure as a result of collecting objects together during a flatten operation. This prevents the accidental generation of large vertex buffers from lots of smaller vertex buffers, while not imposing a limit on the original size of any one GeomVertexData structure.

max-color-targets

int

-1

Set this to a positive integer to limit the number of color targets reported by the GSG. This can be used to limit the amount of render targets Panda will attempt to use. If this is zero or less, the GSG will report its honest number of color targets, allowing Panda the full use of the graphics card; if it is 1 or more, then Panda will never allow more than this number of color targets simultaneously, regardless of what the GSG says it can do.

max-compressed-vertex-data

int

0

Specifies the maximum number of bytes of all vertex data that is allowed to remain compressed in system RAM at one time. If more than this number of bytes of vertices are created, the least-recently-used ones will be temporarily flushed to disk until they are needed. Set it to -1 for no limit.

max-disk-vertex-data

int

-1

Specifies the maximum number of bytes of vertex data that is allowed to be written to disk. Set it to -1 for no limit.

max-dt

double

-1.0

Sets a limit on the value returned by ClockObject::get_dt(). If this value is less than zero, no limit is imposed; otherwise, this is the maximum value that will ever be returned by get_dt(), regardless of how much time has actually elapsed between frames. See ClockObject::set_dt().

max-heap-size

int64

0

If this is nonzero, it is the maximum number of bytes expected to be allocated on the heap before we enter report-memory-usage mode automatically. The assumption is that once this limit has been crossed, we must be leaking.

max-independent-vertex-data

int

-1

Specifies the maximum number of bytes of all vertex data that is independent of the paging system. This is an initial buffer before max-ram-vertex-data, specifically designed for vertex datas that are dynamic in nature and may change size or be created and destroyed frequently.

max-lag

double

0.0

This represents the time in seconds by which to artificially lag inbound messages. It is useful to test a game’s tolerance of network latency.

max-lenses

int

100

Specifies an upper limit on the maximum number of lenses and the maximum lens index number) that may be associated with a single LensNode. There is no technical reason for this limitation, but very large numbers are probably a mistake, so this can be used as a simple sanity check. Set it larger or smaller to suit your needs.

max-occlusion-vertices

int

3000

The maximum number of vertices that may be included in a PandaNode and its descendents in order to perform an occlusion query for it. Subgraphs whose total vertex count exceeds this number will be subdivided further before performing an occlusion test–the hope is that we can eventually get to a finer-grained answer. GeomNodes and Geoms will not be subdivided, regardless of this limit.

max-resident-vertex-data

int

-1

Specifies the maximum number of bytes of all vertex data that is allowed to remain resident in system RAM at one time. If more than this number of bytes of vertices are created, the least-recently-used ones will be temporarily compressed in system RAM until they are needed. Set it to -1 for no limit.

max-texture-dimension

int

-1

Set this to the maximum size a texture is allowed to be in either dimension. This is generally intended as a simple way to restrict texture sizes for limited graphics cards. When this is greater than zero, each texture image loaded from a file (but only those loaded from a file) will be automatically scaled down, if necessary, so that neither dimension is larger than this value. If this is less than zero, the size limit is taken from the primary GSG. If this is exactly zero, there is no limit.

max-texture-stages

int

-1

Set this to a positive integer to limit the number of texture stages reported by the GSG. This can be used to limit the amount of multitexturing Panda will attempt to use. If this is zero or less, the GSG will report its honest number of texture stages, allowing Panda the full use of the graphics card; if it is 1 or more, then Panda will never allow more than this number of texture stages simultaneously, regardless of what the GSG says it can do.

min-lag

double

0.0

This represents the time in seconds by which to artificially lag inbound messages. It is useful to test a game’s tolerance of network latency.

min-occlusion-vertices

int

300

The minimum number of vertices a PandaNode or Geom must contain in order to perform an occlusion query for it. Nodes and Geoms smaller than this will be rendered directly, without bothering with an occlusion query.

model-cache-dir

undefined

$HOME/.panda3d/cache (from Config.prc); hardcoded

model-cache-textures

undefined

#f (from Config.prc); hardcoded

model-path

undefined

$MAIN_DIR (from Config.prc); $THIS_PRC_DIR/.. (from Config.prc); $THIS_PRC_DIR/../models (from Config.prc); hardcoded

movies-sync-pages

bool

1

Set this true to force multi-page MovieTextures to hold pages back if necessary until all pages are ready to render at once, so that the multiple pages of a single movie are always in sync with each other. Set this false to allow individual pages to be visible as soon as they come available, which means pages might sometimes be out of sync. This only affects multi-page MovieTextures such as cube maps, 3-d textures, or stereo textures, or textures with separate color and alpha channel movie sources.

multi-sleep

bool

0

DConfig

multifile-always-binary

bool

0

This is a temporary transition variable. Set this true to enable the old behavior for multifiles: all subfiles are always added to and extracted from the multifile in binary mode. Set it false to enable the new behavior: subfiles may be added or extracted in either binary or text mode, according to the set_binary() or set_text() flag on the Filename.

multisamples

int

0 (from Config.prc); 0 hardcoded

The minimum number of samples requested.

name-deleted-mutexes

bool

0

Set this true to allocate a name to each Mutex object that destructs, so if the Mutex is locked after destruction, we can print out its name to aid debugging. This is only available when compiled with DEBUG_THREADS. Enabling this variable will cause a memory leak, so you should only enable it when you are specifically tracking down an operation on a deleted Mutex. It is not guaranteed to work, of course, because the memory for a deleted Mutex may become reused for some other purpose.

net-max-read-per-epoch

int

1024

The maximum number of bytes to read from the net in a single thread epoch, when SIMPLE_THREADS is defined. This is designed to minimize the impact of the networking layer on the other threads.

net-max-write-per-epoch

int

1024

The maximum number of bytes to write to the net in a single thread epoch, when SIMPLE_THREADS is defined. This is designed to minimize the impact of the networking layer on the other threads.

net-thread-priority

enum

low

The default thread priority when creating threaded readers or writers.

newline-mode

enum

native

Controls how newlines are written by Panda applications writing to a text file. The default, “native”, means to write newlines appropriate to the current platform. You may also specify “binary”, to avoid molesting the file data, or one of “msdos”, “unix”, or “mac”.

no-singular-invert

bool

0

Set this true to make singular-invert warning messages generate an assertion failure instead of just a warning (which can then be trapped with assert-abort).

no-unsupported-copy

bool

0

Set this true to make an attempt to copy an unsupported type generate an assertion failure instead of just a warning (which can then be trapped with assert-abort).

notify-integrate

bool

1

notify-level

enum

warning (from Config.prc); unspecified hardcoded

Default severity of this notify category

notify-level-BufferViewer

string

notify-level-BulletinBoard

string

notify-level-DirectScrolledList

string

notify-level-DirectScrolledListItem

string

notify-level-EventManager

string

notify-level-ExceptionVarDump

string

notify-level-FunctionInterval

string

notify-level-GarbageReport

string

notify-level-Interval

string

notify-level-JobManager

string

notify-level-LerpFunctionInterval

string

notify-level-LerpFunctionNoStateInterval

string

notify-level-Loader

string

notify-level-Messenger

string

notify-level-MetaInterval

string

notify-level-ShowBase

string

notify-level-TaskManager

string

notify-level-ai

enum

unspecified

Default severity of this notify category

notify-level-assimp

enum

unspecified

Default severity of this notify category

notify-level-audio

enum

unspecified

Default severity of this notify category

notify-level-bam

enum

unspecified

Default severity of this notify category

notify-level-bmp

enum

unspecified

Default severity of this notify category

notify-level-bullet

enum

unspecified

Default severity of this notify category

notify-level-chan

enum

unspecified

Default severity of this notify category

notify-level-char

enum

unspecified

Default severity of this notify category

notify-level-clock

enum

unspecified

Default severity of this notify category

notify-level-collide

enum

unspecified

Default severity of this notify category

notify-level-cull

enum

unspecified

Default severity of this notify category

notify-level-dconfig

enum

unspecified

Default severity of this notify category

notify-level-deadrec

enum

unspecified

Default severity of this notify category

notify-level-device

enum

unspecified

Default severity of this notify category

notify-level-dgraph

enum

unspecified

Default severity of this notify category

notify-level-display

enum

unspecified

Default severity of this notify category

notify-level-distort

enum

unspecified

Default severity of this notify category

notify-level-distributed

enum

unspecified

Default severity of this notify category

notify-level-downloader

enum

unspecified

Default severity of this notify category

notify-level-drawmask

enum

unspecified

Default severity of this notify category

notify-level-dxml

enum

unspecified

Default severity of this notify category

notify-level-egg

enum

unspecified

Default severity of this notify category

notify-level-egg2pg

enum

unspecified

Default severity of this notify category

notify-level-event

enum

unspecified

Default severity of this notify category

notify-level-express

enum

unspecified

Default severity of this notify category

notify-level-exr

enum

unspecified

Default severity of this notify category

notify-level-ffmpeg

enum

unspecified

Default severity of this notify category

notify-level-flt

enum

unspecified

Default severity of this notify category

notify-level-fmodAudio

enum

unspecified

Default severity of this notify category

notify-level-framework

enum

unspecified

Default severity of this notify category

notify-level-glgsg

enum

unspecified

Default severity of this notify category

notify-level-glxdisplay

enum

unspecified

Default severity of this notify category

notify-level-gobj

enum

unspecified

Default severity of this notify category

notify-level-grutil

enum

unspecified

Default severity of this notify category

notify-level-gsg

enum

unspecified

Default severity of this notify category

notify-level-img

enum

unspecified

Default severity of this notify category

notify-level-interrogatedb

enum

unspecified

Default severity of this notify category

notify-level-interval

enum

unspecified

Default severity of this notify category

notify-level-jpg

enum

unspecified

Default severity of this notify category

notify-level-linmath

enum

unspecified

Default severity of this notify category

notify-level-loader

enum

unspecified

Default severity of this notify category

notify-level-mathutil

enum

unspecified

Default severity of this notify category

notify-level-microconfig

enum

unspecified

Default severity of this notify category

notify-level-motiontrail

enum

unspecified

Default severity of this notify category

notify-level-movies

enum

unspecified

Default severity of this notify category

notify-level-nativenet

enum

unspecified

Default severity of this notify category

notify-level-net

enum

unspecified

Default severity of this notify category

notify-level-objegg

enum

unspecified

Default severity of this notify category

notify-level-ode

enum

unspecified

Default severity of this notify category

notify-level-odebody

enum

unspecified

Default severity of this notify category

notify-level-odegeom

enum

unspecified

Default severity of this notify category

notify-level-odejoint

enum

unspecified

Default severity of this notify category

notify-level-odespace

enum

unspecified

Default severity of this notify category

notify-level-odetrimeshdata

enum

unspecified

Default severity of this notify category

notify-level-odeworld

enum

unspecified

Default severity of this notify category

notify-level-openalAudio

enum

unspecified

Default severity of this notify category

notify-level-pandatoolbase

enum

unspecified

Default severity of this notify category

notify-level-parametrics

enum

unspecified

Default severity of this notify category

notify-level-particlesystem

enum

unspecified

Default severity of this notify category

notify-level-pgraph

enum

unspecified

Default severity of this notify category

notify-level-pgraphnodes

enum

unspecified

Default severity of this notify category

notify-level-pgui

enum

unspecified

Default severity of this notify category

notify-level-physics

enum

unspecified

Default severity of this notify category

notify-level-pipeline

enum

unspecified

Default severity of this notify category

notify-level-png

enum

unspecified

Default severity of this notify category

notify-level-pnm

enum

unspecified

Default severity of this notify category

notify-level-pnmimage

enum

unspecified

Default severity of this notify category

notify-level-pnmtext

enum

unspecified

Default severity of this notify category

notify-level-portal

enum

unspecified

Default severity of this notify category

notify-level-prc

enum

unspecified

Default severity of this notify category

notify-level-pstats

enum

unspecified

Default severity of this notify category

notify-level-ptloader

enum

unspecified

Default severity of this notify category

notify-level-recorder

enum

unspecified

Default severity of this notify category

notify-level-sgi

enum

unspecified

Default severity of this notify category

notify-level-shader

enum

unspecified

Default severity of this notify category

notify-level-shader_terrain

enum

unspecified

Default severity of this notify category

notify-level-soft

enum

unspecified

Default severity of this notify category

notify-level-task

enum

unspecified

Default severity of this notify category

notify-level-text

enum

unspecified

Default severity of this notify category

notify-level-tform

enum

unspecified

Default severity of this notify category

notify-level-tga

enum

unspecified

Default severity of this notify category

notify-level-thread

enum

unspecified

Default severity of this notify category

notify-level-tiff

enum

unspecified

Default severity of this notify category

notify-level-uniqueIdAllocator

enum

unspecified

Default severity of this notify category

notify-level-util

enum

unspecified

Default severity of this notify category

notify-level-vision

enum

unspecified

Default severity of this notify category

notify-level-vrpn

enum

unspecified

Default severity of this notify category

notify-level-x11display

enum

unspecified

Default severity of this notify category

notify-level-xfile

enum

unspecified

Default severity of this notify category

notify-output

filename

The filename to which to write all the output of notify

notify-timestamp

bool

0

Set true to output the date & time with each notify message.

occlusion-depth-bits

int

1

The minimum number of depth bits requested for the occlusion buffer.

occlusion-size

int

256 256

Specify the x y size of the buffer used for occlusion testing.

old-alpha-blend

bool

0

Set this to true to enable the old alpha blending behavior from Panda 1.9 in which the alpha value written out to the framebuffer is squared. The new behavior is more intuitive when compositing an semitransparent image produced using render-to-texture. You should generally leave this false unless you have an effect that relies on the old behavior, or you suspect an implementation bug.

on-screen-debug-enabled

bool

0

openal-device

string

Specify the OpenAL device string for audio playback (no quotes). If this is not specified, the OpenAL default device is used.

orig-gui-sounds

bool

0

panda-package-host-url

string

This can be used to specify the value returned by PandaSystem::get_package_host_url(), in development mode only, and only if another value has not already been compiled in. This is intended for developer convenience, to masquerade a development build of Panda as a different runtime version. Use with caution.

panda-package-version

string

local_dev

This can be used to specify the value returned by PandaSystem::get_package_version_str(), in development mode only, and only if another value has not already been compiled in. This is intended for developer convenience, to masquerade a development build of Panda as a different runtime version. Use with caution.

parallax-mapping-samples

int

3

Sets the amount of samples to use in the parallax mapping implementation. A value of 0 means to disable it entirely.

parallax-mapping-scale

double

0.1

Sets the strength of the effect of parallax mapping, that is, how much influence the height values have on the texture coordinates.

paranoid-compose

bool

0

Set this true to double-check the componentwise transform compose (or invert) operation against the equivalent matrix-based operation. This has no effect if NDEBUG is defined.

paranoid-const

bool

0

Set this true to double-check that nothing is inappropriately modifying the supposedly const structures like RenderState, RenderAttrib, TransformState, and RenderEffect. This has no effect if NDEBUG is defined.

paranoid-hpr-quat

bool

0

Set this true to doublecheck the quaternion-hpr compose and decompose operations against the quaternion-matrix and matrix-hpr operations. This only has effect if NDEBUG is not defined.

parent-window-handle

int

0

The window handle of the parent window to attach the Panda window to, for the purposes of creating an embedded window. This is an HWND on Windows, or the NSWindow pointer or XWindow pointer converted to an integer, on OSX and X11.

particle-path

search-path

The directories to search for particle files to be loaded.

patcher-buffer-size

int

16384

Limits the size of the buffer used in a single call to Patcher::run(). Increasing this may help the Patcher perform more work before returning.

patchfile-buffer-size

int

4096

patchfile-increment-size

int

8

patchfile-window-size

int

16

patchfile-zone-size

int

10000

pfm-force-littleendian

bool

0

This forces a pfm file to be read as a sequence of little-endian floats, even if its scale factor is given as a positive number.

pfm-resize-gaussian

bool

1

Specify true to implement PfmFile::resize() with a higher-quality Gaussian filter, or false to implement it with a faster box filter. If pfm-resize-quick is also true, this only takes effect when the pfm is being upsampled. This just controls the behavior of resize(); you can always call box_filter() or gaussian_filter() explicitly.

pfm-resize-quick

bool

1

Specify true to implement PfmFile::resize() with a “quick” filter, but only when the pfm is being downsampled (to a smaller size). This just controls the behavior of resize(); you can always call quick_filter() explicitly.

pfm-resize-radius

double

1.0

Specify the default filter radius for PfmFile::resize(). This just controls the behavior of resize(); you can always call box_filter() or gaussian_filter() explicitly with a specific radius.

pfm-reverse-dimensions

bool

0

Understands that the width and height of a pfm file are given backwards, in the form height width instead of width height, on input. Does not affect output, which is always written width height.

pfm-vis-max-indices

int

1048576

Specifies the maximum number of vertex references that may appear in a single generated mesh. If the mesh would require more than that, the mesh is subdivided into smaller pieces.

pfm-vis-max-vertices

int

65535

Specifies the maximum number of vertex entries that may appear in a single generated mesh. If the mesh would require more than that, the mesh is subdivided into smaller pieces.

physics_manager_random_seed

int

139

pipeline-stages

int

1

The initial number of stages in the render pipeline. This is only meaningful if threaded pipelining is compiled into Panda. In most cases, you should not set this at all anyway, since the pipeline can automatically grow stages as needed, but it will not remove stages automatically, and having more pipeline stages than your application requires will incur additional runtime overhead.

pixel-zoom

double

1.0

The default pixel_zoom factor for new windows.

playback-session

string

DConfig

plugin-path

search-path

The directories to search for plugin shared libraries.

png-palette

bool

1

Set this true to allow writing palette-based PNG images when possible.

polylight-info

bool

0

Set this true to view some info statements regarding the polylight. It is helpful for debugging.

prefer-parasite-buffer

bool

0

Set this true to make GraphicsOutput::make_texture_buffer() try to create a ParasiteBuffer before it tries to create an offscreen buffer (assuming it could not create a direct render buffer for some reason). This may reduce your graphics card memory requirements by sharing memory with the framebuffer, but it can cause problems if the user subsequently resizes the window smaller than the buffer.

prefer-single-buffer

bool

1

Set this true to make GraphicsOutput::make_render_texture() first try to create a single-buffered offscreen buffer, before falling back to a double-buffered one (or whatever kind the source window has). This is true by default to reduce waste of framebuffer memory, but you might get a performance benefit by setting it to false (since in that case the buffer can share a graphics context with the window).

prefer-texture-buffer

bool

1

Set this true to make GraphicsOutput::make_texture_buffer() always try to create an offscreen buffer supporting render-to-texture, if the graphics card claims to be able to support this feature. If the graphics card cannot support this feature, this option is ignored. This is usually the fastest way to render to a texture, and it presumably does not consume any additional framebuffer memory over a copy-to-texture operation (since the texture and the buffer share the same memory).

preload-simple-textures

bool

0

When this is true, every texture image will have a simple image generated for it at load time. (Normally, textures get a simple image at egg2bam time.) This slows the initial loading time of textures, but allows you to take advantage of gsg::set_incomplete_render() to load textures on-the-fly in a sub-thread. It’s not generally necessary if you are loading bam files that were generated via egg2bam.

preload-textures

bool

1

When this is true, texture images are loaded from disk as soon as the Texture is created from the TexturePool. When this is false, the Texture is created immediately, but the image data is not loaded from disk until the Texture is actually rendered (or otherwise prepared) on the GSG. This can help reduce wasted memory from Textures that are created but never used to render.

premunge-data

bool

1

Set this true to preconvert vertex data at model load time to match the data requirements of the current GSG. For instance, color columns are pre-converted to match OpenGL or DirectX encoding requirements, as appropriate. When this is false, the data will be munged at render time instead.

preserve-geom-nodes

bool

0

This specifies the default value for the “preserved” flag on every GeomNode created. When this is true, GeomNodes will not be flattened, so setting this true effectively disables the use of flatten to combine GeomNodes.

preserve-triangle-strips

bool

0

Set this true to indicate a preference for keeping triangle strips when possible, instead of decomposing them into triangles. When this is true, flatten_strong and unify operations may be less effective at combining multiple Geoms together, but they will not implicitly decompose triangle strips.

print-pipe-types

bool

1

profile-bias

string

0

DConfig

profile-frames

bool

0

profile-task-spikes

bool

0

project-invert-uvs

bool

0

If this is true, the UV’s generated by all ProjectionScreens are inverted top-to-bottom. This used to be required to compensate for buggy graphics drivers that rendered to a texture upside-down in this manner, but nowadays Panda should be able to autodetect these graphics drivers. If it fails to do this, you should probably set copy-texture-inverted instead, which is more general.

pstats-average-time

double

3.0

pstats-eventmanager

bool

0

pstats-gpu-timing

bool

0

Set this true to query the graphics library for the actual time that graphics operations take to execute on the video card. Enabling this will harm performance, but this information can be more useful than the regular Draw information in tracking down bottlenecks, because the CPU-based Draw collectors only measure how long it takes for the API call to complete, which is not usually an accurate reflectino of how long the actual operation takes on the video card.

pstats-history

double

60.0

pstats-host

string

localhost

pstats-max-queue-size

int

1

If pstats-threaded-write is true, this specifies the maximum number of packets (generally, frames of data) that may be queued up for the thread to process. If this is large, the writer thread may fall behind and the output of PStats will lag. Keep this small to drop missed packets on the floor instead, and ensure that the frame data does not grow stale.

pstats-max-rate

double

1000.0

The maximum number of packets per second, per thread, to send to the remote PStats server. A packet is defined as a single UDP packet, or each 1024 bytes of a TCP message.

pstats-mem-other

bool

1

Set this true to collect memory categories smaller than 0.1% of the total into a single “Other” category, or false to show each nonzero memory category.

pstats-name

string

Panda Stats

pstats-port

int

5185

pstats-scroll-mode

bool

1

pstats-target-frame-rate

double

30.0

Specify the target frame rate to highlight on the PStats graph. This frame rate is marked with a different-colored line; otherwise, this setting has no effect.

pstats-tasks

bool

0

pstats-tcp-ratio

double

0.01

This specifies the ratio of frame update messages that are eligible for UDP that are sent via TCP instead. It does not count messages that are too large for UDP and must be sent via TCP anyway. 1.0 means all messages are sent TCP; 0.0 means all are sent UDP.

pstats-threaded-write

bool

1

Set this true to write to the PStats channel in a sub-thread, if threading is available. Can’t think of any reason why you wouldn’t want this set true, unless you suspect something is broken with the threaded network interfaces.

pstats-unused-states

bool

0

Set this true to show the number of unused states in the pstats graph for TransformState and RenderState counts. This adds a bit of per-frame overhead to count these things up.

ptloader-load-node

bool

1

Specify true to allow libptloader to invoke the more efficient but possibly-experimental code to load model files directly into PandaNode when possible. Specify false to force the loading to always go through the egg library, which is more likely to be reliable.

ptloader-units

enum

invalid

Specifies the preferred units into which models will be converted when using libptloader to automatically convert files to Panda at load time, via e.g. “pview myMayaFile.mb”.

pushers-horizontal

bool

0

Set this true to make all CollisionHandlerPushers have the set_horizontal() flag by default, false to let the move in three dimensions by default.

read-compressed-channels

bool

1

Set this false to disable reading of compressed animation channels, even if the decompression code is available. The only reason you might want to do this would be to speed load time when you don’t care about what the animation looks like.

read-raw-mice

bool

0

DConfig

record-session

string

DConfig

red-blue-stereo

bool

0

Set this true to create windows with red-blue stereo mode enabled by default, if the framebuffer does not support true stereo rendering.

red-blue-stereo-colors

string

red cyan

This defines the color channels that are used for the left and right eye, respectively, for red-blue-stereo mode. This should be a two-word string, where each word is one of ‘red’, ‘blue’, ‘green’, ‘cyan’, ‘magenta’, ‘yellow’, or ‘alpha’, or a union of two or more words separated by a vertical pipe (|).

released-ibuffer-cache-size

int

102400

Specifies the size in bytes of the cache of index buffers that have recently been released. If a new index buffer is prepared while a recently-released one of the same size is still in the cache, that same buffer is recycled. This cuts down on the overhead of creating and destroying index buffers on the graphics card.

released-vbuffer-cache-size

int

1048576

Specifies the size in bytes of the cache of vertex buffers that have recently been released. If a new vertex buffer is prepared while a recently-released one of the same size is still in the cache, that same buffer is recycled. This cuts down on the overhead of creating and destroying vertex buffers on the graphics card.

report-memory-interval

double

5.0

This is the interval, in seconds, for reports of currently allocated memory, when report-memory-usage is true.

report-memory-usage

bool

0

Set this true to enable automatic reporting of allocated objects at the interval specified by report-memory-interval. This also requires track-memory-usage.

require-window

bool

1

DConfig

rescale-normals

enum

auto

Specifies the kind of RescaleNormalAttrib that should be created for the top of the scene graph. This can automatically ensure that your lighting normals are unit-length, which may be particularly necessary in the presence of scales in the scene graph. Turning it off (‘none’) may produce a small performance benefit.

respect-effective-normal

bool

1

This should be true to support the effective_normal interface of polygons. Set it false to disable this feature, so that all collision solids (including polygons and planes) use their actual normal for intersection and physics tests.

respect-prev-transform

bool

0

Set this true to have all CollisionTraversers in the world respect the previous frame’s transform (position) for a given object when determining motion for collision tests. If this is false, you must explicitly enable motion detection for a particular traverser. It is false by default to force programmers to decide on a case-by-case basis whether they really need this feature.

restore-initial-pose

bool

1

When this is true, setting all control effects on an Actor to 0 causes it to return to its default, unanimated pose. When false, it retains whatever its last-computed pose was (which may or may not be the default pose).

retransform-sprites

bool

1

To render sprite-based particle effects, Panda must convert the sprite points from object space into clip space, and compute the corners of the quads in clip space. When this variable is false, the resulting quads are then sent to the graphics hardware in clip space. When this is true, the quads are re-transformed back into the original object space, which is necessary in order for fog to work correctly on the sprites.

sampler-object-limit

int

2048

This is a default limit that is imposed on each GSG at GSG creation time. It limits the total amount of sampler objects that will be k.ept by the GSG, regardless of whether the hardware claims to provide more sampler objects than this. Direct3D 10-capable hardware supports at least 4096 distinct sampler objects, but we provide a slightly more conservative limit by default.

sbs-left-dimensions

double

0.0 0.5 0.0 1.0

Defines the default region of the window that is used for the left eye, when side-by-side stereo is enabled. This is a set of four numbers, in the form left right top bottom, similar to a normal DisplayRegion layout.

sbs-right-dimensions

double

0.5 1.0 0.0 1.0

Defines the default region of the window that is used for the right eye, when side-by-side stereo is enabled. This is a set of four numbers, in the form left right top bottom, similar to a normal DisplayRegion layout.

scene-graph-analyzer-meter-layer-sort

int

1000

scene-graph-analyzer-meter-scale

double

0.05

scene-graph-analyzer-meter-side-margins

double

0.5

scene-graph-analyzer-meter-update-interval

double

2.0

screenshot-extension

string

jpg

DConfig

screenshot-filename

string

%~p-%a-%b-%d-%H-%M-%S-%Y-%~f.%~e

This specifies the filename pattern to be used to generate screenshots captured via save_screenshot_default(). See DisplayRegion::save_screenshot().

scroll-continued-delay

double

0.1

This is the amount of time, in seconds, to delay between lines scrolled while the user is continuing to hold down the scrollbar button.

scroll-initial-delay

double

0.3

This is the amount of time, in seconds, to delay after the user first clicks and holds on a scrollbar button before the scrolling continues automatically.

sgi-imagename

string

This string is written to the header of an SGI (*.rgb) file. It seems to have documentation purposes only.

sgi-storage-type

enum

rle

Use either ‘rle’ or ‘verbatim’ to indicate how SGI (*.rgb) files are written.

shadow-depth-bits

int

24

The minimum number of depth buffer bits requested when rendering shadow maps. Set this to 32 for more depth resolution in shadow maps.

show-buffers

bool

0

show-frame-rate-meter

bool

#f (from Config.prc); 0 hardcoded

DConfig

show-occluder-volumes

bool

0

Set this true to enable debug visualization of the volumes used to cull objects behind an occluder.

show-occlusion

bool

0

Set this true to visualize the efforts of the occlusion test.

show-scene-graph-analyzer-meter

bool

0

DConfig

show-tex-mem

bool

0

DConfig

show-transparency

bool

0

Set this true to flash any objects that are rendered in some transparency mode. The color chosen is based on the particular transparency mode in effect. This only has effect when NDEBUG is not defined.

show-vertex-animation

bool

0

Set this true to flash any objects whose vertices are animated by Panda on the CPU (flash red) or by hardware (flash blue). This only has effect when NDEBUG is not defined.

side-by-side-stereo

bool

0

Set this true to create windows with side-by-side stereo mode enabled by default, if the framebuffer does not support true stereo rendering.

simple-image-size

int

16 16

This is an x y pair that specifies the maximum size of an automatically-generated texture simple image. The simple image can displayed before the texture has been loaded from disk.

simple-image-threshold

double

0.1

This is a value that indicates how closely a texture’s generated simple image should approximate the original image. The smaller the number, the closer the match; small numbers will result in simple images close to the maximum size specified by simple-image-size. Larger numbers will result in smaller simple images. Generally the value should be considerably less than 1.

singular-points

bool

1

Set this true to insist that when RenderModeAttrib::M_points is used, each point appears only once in the result, even if the vertex is referenced multiple times. This is particularly important when rendering points from a triangle mesh and you don’t want the points to appear repeatedly.

sleep-precision

double

0.01

This is the accuracy within which we can expect select() to return precisely. That is, if we use select() to request a timeout of 1.0 seconds, we can expect to actually sleep for somewhere between 1.0 and 1.0 + sleep-precision seconds.

ssl-certificates

list

This variable lists additional filenames, on top of the file named by ca-bundle-filename, that contain trusted SSL certificates or certificate authorities.

state-cache

bool

1

Set this true to enable the cache of RenderState objects, similar to the TransformState cache controlled via transform-cache.

stencil-bits

int

0 (from Config.prc); 0 hardcoded

The minimum number of stencil buffer bits requested.

stereo-lens-old-convergence

bool

0

In Panda3D 1.8 and below, when using a stereo lens, Panda generate an incorrect frustum skew for a given convergence distance, meaning that the left-right images wouldn’t overlap at the configured distance. This calculation has since been corrected, but if your application relies on the old, incorrect behavior, this may be set to ‘true’ to switch back to the old calculation.

stm-max-chunk-count

int

2048

Controls the maximum amount of chunks the Terrain can display. If you use a high LOD, you might have to increment this value. The lower this value is the less data has to be transferred to the GPU.

stm-max-views

int

8

Controls the maximum amount of different views the Terrain can be rendered with. Each camera rendering the terrain corresponds to a view. Lowering this value will reduce the data that has to be transferred to the GPU.

stm-use-hexagonal-layout

bool

0

Set this to true to use a hexagonal vertex layout. This approximates the heightfield in a better way, however the CLOD transitions might be visible due to the vertices not matching exactly.

subprocess-window

filename

The filename of a SubprocessWindowBuffer’s temporary mmap file, used for opening a window in a child process and rendering to a different window in the parent process. This is specifically used for OSX when the plugin is compiled, and is not used or needed in other environments. See WindowProperties::set_subprocess_window().

subprocess-window-max-wait

double

0.2

This is the amount of time, in seconds, that the SubprocessWindow will wait in begin_flip for the parent process to remove the previously-rendered frame. When this time is exceeded, the next frame will be rendered without having flipped the previous one. This is designed to allow the Python process some time to run even when the parent window is offscreen or minimized.

support-fade-lod

bool

1

Set this false to make FadeLOD nodes behave like regular LOD nodes (ignoring the fade time). This may be useful, for instance, to test the performance impact of using FadeLOD nodes.

support-ipv6

bool

1

Specifies whether IPv6 support should be enabled. This should be true unless you are experiencing issues with Panda’s IPv6 support or are using a misconfigured system.

support-render-texture

bool

1

Set this true allow use of the render-to-a-texture feature, if it is supported by your graphics card. Without this enabled, offscreen renders will be copied to a texture instead of directly rendered there.

support-rescale-normal

bool

1

Set this true to allow use of the rescale-normal feature, if it is supported by your graphics card. This allows lighting normals to be uniformly counter-scaled, instead of re-normalized, in the presence of a uniform scale, which should in principle be a bit faster. This feature is only supported by the OpenGL API.

support-stencil

bool

1

Set this true to allow use of the stencil buffer, if it is supported by your graphics card. If this is false, stencil buffer support will not be enabled, even if it is supported. Generally, only very old cards do not support some kind of stencil buffer operations; but it is also not supported by our tinydisplay renderer. The main reason to set this false is to test your code in the absence of stencil buffer support.

support-threads

bool

1

Set this false to disallow the creation of threads using Panda’s Thread interface, even if threading support is compiled in. This does not affect the operation of mutexes and other synchronization primitives, just the creation of threads.

swap-eyes

bool

0

Set this true to reverse the left and right channel output of stereo DisplayRegions.

sync-flip

bool

0

Set this true to attempt to flip all windows at the same time, or false to flip each window as late as possible. Setting this false can improve parallelization. This is a temporary variable; it will later be replaced with a more explicit control over synchronizing window flip.

sync-video

bool

1

Configure this true to request the rendering to sync to the video refresh, or false to let your frame rate go as high as it can, irrespective of the video refresh. Usually you want this true, but it may be useful to set it false during development for a cheesy estimate of scene complexity. Some drivers may ignore this request.

task-timer-verbose

bool

0

tcp-header-size

int

2

Specifies the number of bytes to use to specify the datagram length when writing a datagram on a TCP stream. This may be 0, 2, or 4. The server and client must agree on this value.

text-anisotropic-degree

int

1

This is the default anisotropic-degree that is set on dynamic font textures. Setting this to a value greater than 1 can help smooth out the antialiasing for small letters.

text-default-font

filename

This names a filename that will be loaded at startup time as the default font for any TextNode that does not specify a font otherwise. The default is to use a special font that is compiled into Panda, if available.

text-default-underscore-height

double

-0.2

Specifies the default height of the underscore line, relative to the text baseline, when underscoring is enabled.

text-dynamic-merge

bool

1

Set this true to merge generated glyphs into the GeomVertexData as the text is assembled, or false to wait for the flatten operation. Usually it’s a performance advantage to keep this true. See TextNode::set_flatten_flags().

text-embed-graphic-key

int

5

This is the decimal character number that, embedded in a string, is used to bracket the name of a model added to the TextPropertiesManager object, to embed an arbitrary graphic image within a paragraph.

text-encoding

enum

utf8

Specifies how international characters are represented in strings of 8-byte characters presented to Panda. See TextEncoder::set_encoding().

text-flatten

bool

1

Set this true to flatten text when it is generated, or false to keep it as a deep hierarchy. Usually it’s a performance advantage to keep this true, but this also depends on the setting of text-dynamic-merge. See TextNode::set_flatten_flags().

text-hyphen-ratio

double

0.7

If the rightmost whitespace character falls before this fraction of the line, hyphenate a word to the right of that if possible.

text-magfilter

enum

linear

The default texture magfilter type for dynamic text fonts

text-max-never-break

int

3

If we have more than this number of text-never-break-before characters in a row, do not treat any of them as special and instead break the line wherever we can.

text-minfilter

enum

linear

The default texture minfilter type for dynamic text fonts

text-native-antialias

bool

1

text-page-size

int

256 256

This is the default size for new textures created for dynamic fonts.

text-pixels-per-unit

double

40.0

text-point-size

double

10.0

text-poly-margin

double

0.0

This is the amount by which to make each glyph polygon larger than strictly necessary, in screen units that are added to each margin. Increasing this value will decrease the tendency for letters to get chopped off at the edges, but it will also increase the tendency for adjacent glyphs to bleed into each other (unless you also increase text-texture-margin).

text-pop-properties-key

int

2

This is the decimal character number that undoes the effect of a previous appearance of text_push_properties_key.

text-push-properties-key

int

1

This is the decimal character number that, embedded in a string, is used to bracket the name of a TextProperties structure added to the TextPropertiesManager object, to control the appearance of subsequent text.

text-quality-level

enum

best

The default quality level for dynamic text fonts; see Texture::set_quality_level().

text-render-mode

enum

texture

The default render mode for dynamic text fonts

text-scale-factor

double

2.0

text-small-caps

bool

0

This controls the default setting for TextNode::set_small_caps().

text-small-caps-scale

double

0.800000011920929

This controls the default setting for TextNode::set_small_caps_scale().

text-soft-break-key

int

4

This is similar to text-soft-hyphen-key, except that when it is used as a break point, no character is introduced in its place.

text-soft-hyphen-key

int

3

This is the decimal character number that, embedded in a string, is identified as the soft-hyphen character.

text-tab-width

double

5.0

This controls the default setting for TextNode::set_tab_width().

text-texture-margin

int

2

This is the number of texels of empty space reserved around each glyph in the texture. Setting this value larger will decrease the tendency for adjacent glyphs to bleed into each other at small sizes, but it will increase amount of wasted texture memory.

text-wrap-mode

enum

border_color

The default wrap mode for dynamic text fonts

texture-anisotropic-degree

int

1

This specifies the default anisotropic degree that is applied to a texture in the absence of a particular anisotropic degree setting (that is, a texture for which the anisotropic degree is 0, meaning the default setting). It should be 1 to disable anisotropic filtering, or a higher number to enable it. Note if this variable is changed at runtime, you may need to reload textures explicitly in order to change their visible properties.

texture-filter

list

Names one or more external libraries that should be loaded for the purposes of performing texture filtering. This variable may be repeated several times. As in load-display, the actual library filename is derived by prefixing ‘lib’ to the specified name.

texture-magfilter

enum

linear

This specifies the default magfilter that is applied to a texture in the absence of a specific magfilter setting. Normally this is ‘linear’ (since mipmapping does not apply to magfilters). This does not apply to depth textures. Note if this variable is changed at runtime, you may need to reload textures explicitly in order to change their visible properties.

texture-minfilter

enum

linear

This specifies the default minfilter that is applied to a texture in the absence of a specific minfilter setting. Normally this is either ‘linear’ to disable mipmapping by default, or ‘mipmap’, to enable trilinear mipmapping by default. This does not apply to depth textures. Note if this variable is changed at runtime, you may need to reload textures explicitly in order to change their visible properties.

texture-quality-level

enum

normal

This specifies a global quality level for all textures. You may specify either fastest, normal, or best. This actually affects the meaning of Texture::set_quality_level(QL_default), so it may be overridden on a per-texture basis. This generally only has an effect when using the tinydisplay software renderer; it has little or no effect on normal, hardware-accelerated renderers. See Texture::set_quality_level().

texture-scale

double

1.0

This is a global scale factor that is applied to each texture as it is loaded from disk. For instance, a value of 0.5 will reduce each texture to one-half its size in each dimension. This scale factor is applied before textures-power-2 or max-texture-dimension.

texture-scale-limit

int

4

This specifies the limit below which texture-scale will not reduce a texture image. This is a single dimension which applies to both X and Y.

textures-auto-power-2

bool

0

If this is true, then panda will wait until you open a window, and then ask the window if it supports non-power-of-two textures. If so, then the config variable textures_power_2 will automatically be adjusted. The pitfall of doing this is that if you then open a second window that doesn’t support the same capabilities, it will have no choice but to print an error message.

textures-header-only

bool

0

If this is true, texture images will not actually be loaded from disk, but the image header information will be consulted to verify number of channels and so forth. The texture images themselves will be generated in a default blue color.

textures-power-2

enum

down

Specify whether textures should automatically be constrained to dimensions which are a power of 2 when they are loaded from disk. Set this to ‘none’ to disable this feature, or to ‘down’ or ‘up’ to scale down or up to the nearest power of 2, respectively. This only has effect on textures which are not already a power of 2.

textures-square

enum

none

Specify whether textures should automatically be constrained to a square aspect ratio when they are loaded from disk. Set this to ‘none’, ‘down’, or ‘up’. See textures-power-2.

tga-colormap

bool

0

Set this true to write colormapped TGA files.

tga-grayscale

bool

0

Set this true to enable writing grayscale TGA files.

tga-rle

bool

0

Set this true to enable RLE compression when writing TGA files.

thread-stack-size

int

4194304

Specifies the minimum size, in bytes, of the stack that will be created for each newly-created thread. Not all thread implementations respect this value.

threading-model

string

This is the default threading model to use for new windows. Use empty string for single-threaded, or something like “cull/draw” for a 3-stage pipeline. See GraphicsEngine::set_threading_model(). EXPERIMENTAL and incomplete, do not use this!

track-gui-items

bool

1

DConfig

track-memory-usage

bool

0

Set this to true to enable full-force tracking of C++ allocations and recordkeeping by type. It’s quite expensive.

trackball-use-alt-keys

bool

1

Set this true to use the command and option/control keys in conjunction with the first mouse button to simulate the behavior of the second and third mouse buttons in trackball mode. Particularly useful for Macs, or laptops with limited mouse buttons.

transform-cache

bool

1

Set this true to enable the cache of TransformState objects. Using the cache saves time computing transforms and inverse transforms, but imposes some overhead for maintaining the cache itself.

unambiguous-graph

bool

0

Set this true to make ambiguous path warning messages generate an assertion failure instead of just a warning (which can then be trapped with assert-abort).

undecorated

bool

0

This specifies the default value of the ‘undecorated’ window property. When this is true, the default window is created without a title bar or resizable border.

uniquify-attribs

bool

1

Set this true to ensure that equivalent RenderAttribs are pointerwise equal. This may improve caching performance, but also adds additional overhead to maintain the cache, including the need to check for a composition cycle in the cache.

uniquify-matrix

bool

1

Set this true to look up arbitrary 4x4 transform matrices in the cache, to ensure that two differently-computed transforms that happen to encode the same matrix will be collapsed into a single pointer. Nowadays, with the transforms stored in a hashtable, we’re generally better off with this set true.

uniquify-states

bool

1

Set this true to ensure that equivalent RenderStates are pointerwise equal. This may improve caching performance, but also adds additional overhead to maintain the cache, including the need to check for a composition cycle in the cache.

uniquify-transforms

bool

1

Set this true to ensure that equivalent TransformStates are pointerwise equal. This may improve caching performance, but also adds additional overhead to maintain the cache, including the need to check for a composition cycle in the cache.

upload-stack-dump

bool

0

DConfig

use-movietexture

undefined

#t (from Config.prc); hardcoded

verify-dcast

bool

1

Set this to true to verify that every attempted DCAST operation in fact references the correct type, or false otherwise. This has no effect if NDEBUG is defined, in which case it is never tested.

verify-intervals

bool

0

Set this true to generate an assertion failure if interval functions are called out-of-order.

verify-lods

bool

0

When this is true, LODNodes will test when they are rendered to ensure that each child’s geometry fits entirely within the radius defined by its switch-out distance. When it is false, LODNodes may have any switch in and out distances, regardless of the actual size of their geometry. This test is only made in NDEBUG mode (the variable is ignored in a production build).

vertex-animation-align-16

bool

1

If this is true, then animated vertices will be created with 4-component floats and aligned to 16-byte boundaries, to allow efficient vectorization (e.g. SSE2) operations when computing animations. If this is false, animated vertices will be packed as tightly as possible, in the normal way, which will optimize the amount of memory that must be sent to the graphics card, but prevent the use of SSE2 to calculate animation. This does not affect unanimated vertices, which are always packed tightly. This also impacts only vertex formats created within Panda subsystems; custom vertex formats are not affected.

vertex-arrays

bool

1

Set this true to allow the use of vertex arrays for rendering OpenGL vertex data. This, or vertex buffers, is the normal way of issuing vertices ever since OpenGL 1.1, and you almost always want to have this set to true. However, some very buggy graphics drivers may have problems handling vertex arrays correctly, so if you are experiencing problems you might try setting this to false. If this is false, Panda will fall back to using immediate-mode commands like glVertex3f(), etc., to issue the vertices, which is potentially much slower than vertex arrays. Setting this false also disables vertex buffers, effectively ignoring the setting of the vertex-buffers variable (since vertex buffers are a special case of vertex arrays in OpenGL). This variable is normally not enabled in a production build. This has no effect on DirectX rendering.

vertex-buffers

bool

1

Set this true to allow the use of vertex buffers (or buffer objects, as OpenGL dubs them) for rendering vertex data. This can greatly improve rendering performance on higher-end graphics cards, at the cost of some additional graphics memory (which might otherwise be used for textures or offscreen buffers). On lower-end graphics cards this will make little or no difference.

vertex-column-alignment

int

4

This specifies the default byte alignment for each column of data within a GeomVertexData when it is assembled using the default interfaces. Normally, you should not change this config variable (which would change this value globally), but instead specify any alignment requirements on a per-column basis as you construct a GeomVertexFormat. Setting this value globally could result in much needless wasted space in all vertex data objects, but it could be useful for simple experiments. Also see vertex-animation-align-16 for a variable that controls this alignment for the vertex animation columns only.

vertex-data-compression-level

int

1

Specifies the zlib compression level to use when compressing vertex data. The number should be in the range 1 to 9, where larger values are slower but give better compression.

vertex-data-page-size

int

262144

The number of bytes to allocate at a time for vertex data. This also controls the page size that is compressed or written to disk when vertex data pages are evicted from memory.

vertex-data-page-threads

int

1

When this is nonzero (and Panda has been compiled with thread support) then this number of sub-threads will be spawned to evict vertex pages to disk and read them back again. When this is 0, this work will be done in the main thread, which may introduce occasional random chugs in rendering.

vertex-data-small-size

int

64

When a GeomVertexArrayData is this number of bytes or smaller, it is deemed too small to pay the overhead of paging it in and out, and it is permanently retained resident.

vertex-save-file-directory

filename

The directory in which the saved vertex data file is created for saving vertex buffers that have been evicted from RAM. If this is the empty string, or an invalid directory, a system default directory will be chosen.

vertex-save-file-prefix

string

p3d_vdata_

A prefix used to generate the filename for the saved vertex data file which is created for saving vertex buffers that have been evicted from RAM. A uniquifying sequence number and filename extension will be appended to this string.

vertices-float64

bool

0

When this is true, the default float format for vertices will be a 64-bit double-precision float, instead of the normal 32-bit single-precision float. This must be set at static init time to have the broadest effect. You almost never want to set this true, since current hardware does not support double-precision vertices, and setting this will just require the driver to downsample the vertices at load time, making everything slower.

vfs-case-sensitive

bool

1

Set this true to make the VirtualFileSystem present the native OS-provided filesystem as if it were a case-sensitive file system, even if it is not (e.g. on Windows). This variable has no effect if the native filesystem is already case-sensitive, and it has no effect on mounted multifile systems, which are always case-sensitive.

vfs-implicit-mf

bool

0

When this is true, the VirtualFileSystem will automatically mount multifiles on-the-fly when they are used as directories. For instance, opening the file /c/files/foo.mf/dirname/mytex.jpg will implicitly retrieve a file named ‘dirname/mytex.jpg’ within the multifile /c/files/foo.mf, even if the multifile has not already been mounted. This makes all of your multifiles act like directories.

vfs-implicit-pz

bool

1

When this is true, the VirtualFileSystem will pretend a named file exists even if it doesn’t, as long as a filename with the same name and the additional extension .pz does exist. In this case, the VirtualFileSystem will implicitly open the .pz file and decompress it on-the-fly.

vfs-mount

list

vfs-mount system-filename mount-point [options]

vfs-mount-ramdisk

string

vfs-mount-ramdisk mount-point [options]

vfs-mount-url

list

vfs-mount-url http://example.com/path[:port] mount-point [options]

view-frustum-cull

bool

1

This is normally true; set it false to disable view-frustum culling (primarily useful for debugging).

vorbis-enable-seek

bool

1

Set this to false if you’re having trouble with seeking while using the Ogg Vorbis decoder.

vorbis-seek-lap

bool

1

If this is set to true, the Ogg Vorbis decoder will automatically crosslap the transition from the previous playback position into the new playback position when seeking in order to eliminate clicking and boundary discontinuities.

want-dev

bool

1

DConfig

want-directtools

bool

#f (from Config.prc); 0 hardcoded

DConfig

want-env-debug-info

bool

0

DConfig

want-fog

bool

1

DConfig

want-pstats

bool

#f (from Config.prc); 0 hardcoded

DConfig

want-render2dp

bool

1

DConfig

want-tk

bool

#f (from Config.prc); 0 hardcoded

DConfig

want-uberdog

bool

1

DConfig

want-wx

bool

0

DConfig

win-fixed-size

bool

0

This specifies the default value of the ‘fixed_size’ window property. When this is true, the default window is created without a resizable border.

win-origin

int

-2 -2 (from Config.prc); hardcoded

This is the default position at which to open a new window. This replaces the deprecated win-origin-x and win-origin-y variables. A window coordinate of -1 means to choose a default value, whereas -2 means to center the window on the screen.

win-size

int

800 600 (from Config.prc); 800 600 hardcoded

This is the default size at which to open a new window. This replaces the deprecated win-width and win-height variables.

win-unexposed-draw

bool

1

Specifies the default setting of GraphicsWindow::set_unexposed_draw(). See that method for more information.

window-inverted

bool

0

Set this true to create all windows with the inverted flag set, so that they will render upside-down and backwards. Normally this is useful only for debugging.

window-title

string

Panda

window-type

string

onscreen

DConfig

x-error-abort

bool

0

Set this true to trigger and abort (and a stack trace) on receipt of an error from the X window system. This can make it easier to discover where these errors are generated.

x-wheel-down-button

int

5

This is the mouse button index of the wheel_down event: which mouse button number does the system report when the mouse wheel is rolled one notch down?

x-wheel-left-button

int

6

This is the mouse button index of the wheel_left event: which mouse button number does the system report when one scrolls to the left?

x-wheel-right-button

int

7

This is the mouse button index of the wheel_right event: which mouse button number does the system report when one scrolls to the right?

x-wheel-up-button

int

4

This is the mouse button index of the wheel_up event: which mouse button number does the system report when the mouse wheel is rolled one notch up?

x-wm-class

string

Specify the value to use for the res_class field of the window’s WM_CLASS property.

x-wm-class-name

string

Specify the value to use for the res_name field of the window’s WM_CLASS property. Has no effect when x-wm-class is not set.

yield-timeslice

bool

0

Set this true to yield the timeslice at the end of the frame to be more polite to other applications that are trying to run.

z-order

enum

normal