Console/Physics
From Blue Mars Developer Guidebook
There are security restrictions on this article
|
|
Contents |
Physics Console Variables
Console variables that control physics parameters start with "p_".
variable: p_accuracy_LCPCG type: float current: 0.005 help: Desired accuracy of LCP CG solver (velocity-related, m/s) variable: p_accuracy_LCPCG_no_improvement type: float current: 0.05 help: Required LCP CG accuracy that allows to stop if there was no improvement after p_max_LCPCG_fruitless_iters variable: p_accuracy_MC type: float current: 0.005 help: Desired accuracy of microcontact solver (velocity-related, m/s) variable: p_approx_caps_len type: float current: 1.2 help: Breakable trees are approximated with capsules of this length (0 disables approximation) variable: p_damping_group_size type: int current: 8 help: Sets contacting objects group size before group damping is used.Usage: p_damping_group_size 3 Used for internal tweaking only.
Character IK
variable: p_characterik type: int current: 1 help: Toggles character IK. Usage: p_characterik [0/1] Default is 1 (on). Set to 0 to disable inverse kinematics.
Debug
variable: p_cull_distance type: float current: 100 help: Culling distance for physics helpers rendering variable: p_break_on_validation type: int current: 0 help: Toggles break on validation error. Usage: p_break_on_validation [0/1] Default is 0 (off). Issues DebugBreak() call in case of a physics parameter validation error. variable: p_debug_explosions type: int current: 0 help: Turns on explosions debug mode variable: p_debug_joints type: int current: 0 help: If set, breakable objects will log tensions at the weakest spots variable: p_do_step type: int current: 0 help: Steps physics system forward when in single step mode. Usage: p_do_step 1 Default is 0 (off). Each 'p_do_step 1' instruction allows the physics system to advance a single step. variable: p_draw_helpers type: string current: 0 help: Same as p_draw_helpers_num, but encoded in letters Usage [Entity_Types]_[Helper_Types] - [t|s|r|R|l|i|g|a|y|e]_[g|c|b|l|t(#)] Entity Types: t - show terrain s - show static entities r - show sleeping rigid bodies R - show active rigid bodies l - show living entities i - show independent entities g - show triggers a - show areas y - show rays in RayWorldIntersection e - show explosion occlusion maps Helper Types g - show geometry c - show contact points b - show bounding boxes l - show tetrahedra lattices for breakable objects j - show structural joints (will force translucency on the main geometry) t(#) - show bounding volume trees up to the level # f(#) - only show geometries with this bit flag set (multiple f's stack) Example: p_draw_helpers larRis_g - show geometry for static, sleeping, active, independent entities and areas variable: p_draw_helpers_num type: int current: 0 help: Toggles display of various physical helpers. The value is a bitmask: bit 0 - show contact points bit 1 - show physical geometry bit 8 - show helpers for static objects bit 9 - show helpers for sleeping physicalized objects (rigid bodies, ragdolls) bit 10 - show helpers for active physicalized objects bit 11 - show helpers for players bit 12 - show helpers for independent entities (alive physical skeletons,particles,ropes) bits 16-31 - level of bounding volume trees to display (if 0, it just shows geometry) Examples: show static objects - 258, show active rigid bodies - 1026, show players - 2050 variable: p_wireframe_distance type: float current: 5 help: Maximum distance at which wireframe is drawn on physics helpers variable: p_ray_fadein type: float current: 0.2 help: Fade-in time for ray physics helpers variable: p_ray_peak_time type: float current: 0 help: Rays that take longer then this (in ms) will use different color variable: p_single_step_mode type: int current: 0 help: Toggles physics system 'single step' mode.Usage: p_single_step_mode [0/1] Default is 0 (off). Set to 1 to switch physics system (except players) to single step mode. Each step must be explicitly requested with a 'p_do_step' instruction variable: p_fly_mode type: int current: 0 help: Toggles fly mode. Usage: p_fly_mode [0/1] variable: p_list_active_objects type: int current: 0 help: variable: p_log_lattice_tension type: int current: 0 help: If set, breakable objects will log tensions at the weakest spots
Solver
variable: p_enable_triangle_cache type: int current: 0 help: Enables triangle caching for heightfields variable: p_fixed_timestep type: float current: 0 help: Toggles fixed time step mode.Usage: p_fixed_timestep [0/1] Forces fixed time step when set to 1. When set to 0, the time step is variable, based on the frame rate. variable: p_GEB_max_cells type: int current: 800 help: Specifies the cell number threshold after which GetEntitiesInBox issues a warning variable: p_group_damping type: float current: 0.5 help: Toggles damping for object groups. Usage: p_group_damping [0/1] Default is 1 (on). Used for internal tweaking only. variable: p_lattice_max_iters type: int current: 100000 help: Limits the number of iterations of lattice tension solver variable: p_limit_simple_solver_energy type: int current: 1 help: Specifies whether the energy added by the simple solver is limited (0 or 1) variable: p_max_approx_caps type: int current: 7 help: Maximum number of capsule approximation levels for breakable trees variable: p_max_contact_gap type: float current: 0.01 help: Sets the gap, enforced whenever possible, between contacting physical objects.Usage: p_max_contact_gap 0.01 This variable is used for internal tweaking only. variable: p_max_contact_gap_player type: float current: 0.01 help: Sets the safe contact gap for player collisions with the physical environment.Usage: p_max_contact_gap_player 0.01 This variable is used for internal tweaking only. variable: p_max_contact_gap_simple type: float current: 0.03 help: Specifies the maximum contact gap for objects that use the simple solver variable: p_max_contacts type: int current: 150 help: Maximum contact number, after which contact reduction mode is activated variable: p_max_debris_mass type: float current: 10 help: Broken pieces with mass<=this limit use debris collision settings variable: p_max_entity_cells type: int current: 300000 help: Limits the number of entity grid cells an entity can occupy variable: p_max_LCPCG_contacts type: int current: 100 help: Maximum number of contacts that LCPCG solver is allowed to handle variable: p_max_LCPCG_fruitless_iters type: int current: 4 help: Maximum number of LCP CG iterations w/o improvement (defined by p_min_LCPCGimprovement) variable: p_max_LCPCG_iters type: int current: 5 help: Maximum number of LCP CG iterations variable: p_max_LCPCG_microiters type: int current: 12000 help: Limits the total number of per-contact iterations during one LCP CG iteration (number of microiters = number of subiters * number of contacts) variable: p_max_LCPCG_microiters_final type: int current: 25000 help: Same as p_max_LCPCG_microiters, but for the final LCP CG iteration variable: p_max_LCPCG_subiters type: int current: 120 help: Limits the number of LCP CG solver inner iterations (should be of the order of the number of contacts) variable: p_max_LCPCG_subiters_final type: int current: 250 help: Limits the number of LCP CG solver inner iterations during the final iteration (should be of the order of the number of contacts) variable: p_max_MC_iters type: int current: 6000 help: Specifies the maximum number of microcontact solver iterations variable: p_max_MC_mass_ratio type: float current: 100 help: Maximum mass ratio between objects in an island that MC solver is considered safe to handle variable: p_max_MC_vel type: float current: 15 help: Maximum object velocity in an island that MC solver is considered safe to handle variable: p_max_plane_contacts type: int current: 8 help: Maximum number of contacts lying in one plane between two rigid bodies (the system tries to remove the least important contacts to get to this value) variable: p_max_plane_contacts_distress type: int current: 4 help: Same as p_max_plane_contacts, but is effective if total number of contacts is above p_max_contacts variable: p_max_substeps type: int current: 5 help: Limits the number of substeps allowed in variable time step mode. Usage: p_max_substeps 5 Objects that are not allowed to perform time steps beyond some value make several substeps. variable: p_max_substeps_large_group type: int current: 5 help: Limits the number of substeps large groups of objects can make variable: p_max_world_step type: float current: 0.2 help: Specifies the maximum step physical world can make (larger steps will be truncated) variable: p_min_LCPCG_improvement type: float current: 0.05 help: Defines a required residual squared length improvement, in fractions of 1
Velocity
variable: p_max_unproj_vel type: float current: 2.5 help: Limits the maximum unprojection velocity request variable: p_max_velocity type: float current: 100 help: Clamps physicalized objects' velocities to this value variable: p_max_player_velocity type: float current: 150 help: Clamps players' velocities to this value
Collision
- p_min_bounce_speed
- Minimum speed for bounce to occur
- p_max_bounce_impulse
- Any bounce impulses exceeding this will be discarded
variable: p_min_separation_speed type: float current: 0.02 help: Used a threshold in some places (namely, to determine when a particle goes to rest, and a sliding condition in microcontact solver) variable: p_prohibit_unprojection type: int current: 0 help: Prohibit Unprojection and velocity penalties upon Unprojection variable: p_skip_redundant_colldet type: int current: 1 help: Specifies whether to skip furher collision checks between two convex objects using the simple solver when they have enough contacts between them
Gravity
- p_gravity_z
- gravity (m/s2)
Misc
variable: p_num_bodies_large_group type: int current: 100 help: Group size to be used with p_max_substeps_large_group, in bodies variable: p_penalty_scale type: float current: 0.3 help: Scales the penalty impulse for objects that use the simple solver variable: p_players_can_break type: int current: 0 help: Whether living entities are allowed to break static objects with breakable joints
Profiler
variable: p_profile_entities type: int current: 0 help: Enables per-entity time step profiling variable: p_profile_functions type: int current: 0 help: Enables detailed profiling of physical environment-sampling functions variable: p_jump_to_profile_ent type: int current: 0 help: Move the local player next to the corresponding entity in the p_profile_entities list
variable: p_sleep_speed_multiple type: float current: 1 help: Multiplier applied to rigid body sleep threshold
Splash
variable: p_max_object_splashes type: int current: 3 help: Specifies how many splash events one entity is allowed to generate variable: p_splash_dist0 type: float current: 7 help: Range start for splash event distance culling variable: p_splash_dist1 type: float current: 30 help: Range end for splash event distance culling variable: p_splash_force0 type: float current: 10 help: Minimum water hit force to generate splash events at p_splash_dist0 variable: p_splash_force1 type: float current: 100 help: Minimum water hit force to generate splash events at p_splash_dist1 variable: p_splash_vel0 type: float current: 4.5 help: Minimum water hit velocity to generate splash events at p_splash_dist0 variable: p_splash_vel1 type: float current: 10 help: Minimum water hit velocity to generate splash events at p_splash_dist1
Time
variable: p_time_granularity type: float current: 0.0001 help: Sets physical time step granularity. Usage: p_time_granularity [0..0.1] Used for internal tweaking only.
variable: p_tick_breakable type: float current: 0.1 help: Sets the breakable objects structure update interval variable: p_unproj_vel_scale type: float current: 10 help: Requested unprojection velocity is set equal to penetration depth multiplied by this number variable: p_use_distance_contacts type: int current: 0 help: Allows to use distance-based contacts (is forced off in multiplayer) variable: p_use_unproj_vel type: int current: 0 help: internal solver tweak
