How Unity physics works (PhysX vs Unity Physics vs Havok Physics)

Unity offers multiple physics systems. For traditional object-oriented projects, Unity uses NVIDIA’s PhysX engine for 3D physics and Box2D for 2D. In newer DOTS/ECS projects, Unity provides Unity Physics (a lightweight, deterministic engine built on Burst and the Job System) and Havok Physics for Unity (an optimized, high-performance physics engine suitable for large-scale worlds). You can swap between Unity Physics and Havok Physics without changing content, as both integrate with the ECS workflow. In summary, use built-in PhysX for standard 3D projects, Unity Physics (DOTS) for data-oriented performance, and Havok Physics when you need AAA-quality stability and scale.

Rigidbody vs CharacterController in Unity: which one to use

Rigidbody is a physics component that makes a GameObject respond to forces and gravity via the physics engine. It can be dynamic (fully simulated) or kinematic (moved by script), and it participates in collision with other Rigidbodies. In contrast, a CharacterController is a specialized collider used for player/movement without using physics forces.

It is not affected by physics forces by default – you move it via CharacterController.Move or similar, and it does not automatically push or be pushed by Rigidbodies. Use a CharacterController for precise, script-driven player movement (e.g. FPS controls) where you handle collisions manually. Use a Rigidbody (with a Collider) if you want the GameObject to be influenced by physics (gravity, forces) and to physically push or be pushed by other objects.

Rigidbody collision detection modes in Unity (Discrete vs Continuous)

Unity Rigidbodies have a Collision Detection mode. The default is Discrete, meaning the engine only checks collisions at fixed physics steps. Fast-moving objects can “tunnel” (pass through) thin colliders with Discrete mode. To prevent this, use Continuous or Continuous Dynamic modes, which perform additional checks between frames.

Continuous collision detection sweeps the collider along its path so it hits objects it would otherwise skip. Continuous Dynamic should be used on the fast-moving Rigidbody itself, and Continuous on the objects it collides with. There is also Continuous Speculative (a lower-cost CCD) that works with kinematic bodies. In summary, use Discrete by default for best performance, and switch to Continuous or Continuous Dynamic when an object’s velocity is high enough to risk tunneling.

Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance

FixedUpdate vs Update in Unity physics: best practices

Unity’s game loop separates frame updates and physics updates. Update() is called once per rendered frame (variable timing), while FixedUpdate() runs on a regular fixed timestep (default 0.02s) for physics calculations. Best practice is: read input and perform non-physics work in Update(), and apply physics forces or move Rigidbodies in FixedUpdate(). For example, capture player input in Update(), then in FixedUpdate() call rb.AddForce() or rb.MovePosition() using that input. This keeps physics deterministic. Unity’s documentation advises: “read input in Update, apply it to physics in FixedUpdate”. Using FixedUpdate for physics ensures consistent simulation (even if frame rate fluctuates), while Update is synced with rendering and is ideal for UI, input, and animations.

Unity physics materials explained (friction and bounciness)

Unity uses PhysicMaterials (3D) or Physics Materials 2D to define surface friction and bounce. A PhysicMaterial lets you set Dynamic Friction (friction when sliding) and Static Friction (when at rest), both typically 0–1. It also has Bounciness (0 to 1) determining how “elastic” collisions are: 0 means no bounce, 1 is fully elastic. When two objects collide, their friction and bounciness combine according to the chosen combine mode (Average, Min, Max, or Multiply).

For example, an ice PhysicMaterial might have near-zero friction and low bounciness, while a rubber one has high friction and bounciness. Note that PhysX’s friction model is tuned for stability, not real-world accuracy: surfaces touching over a large area yield about twice the expected friction. In practice, tweaking these values (and combine modes) lets you simulate various materials (ice, rubber, metal, etc.).

Colliders in Unity: BoxCollider, SphereCollider, CapsuleCollider, MeshCollider

Collider defines the shape of an object for physics collisions. The cheapest colliders are primitive types: BoxColliderSphereCollider, and CapsuleCollider in 3D (and Box/Circle Collider 2D in 2D). These primitives are fast and efficient for most objects. You can combine multiple primitive colliders (even on child objects) to approximate complex shapes with minimal cost. For detailed shapes, a MeshCollider matches an object’s mesh exactly.

MeshColliders are more expensive and can only collide with other MeshColliders if marked Convex. A common approach is to use MeshColliders for static level geometry and simple primitive colliders (or convex meshes) for moving objects, to balance accuracy and performance. Remember that a Collider attached to a GameObject without a Rigidbody is static (non-moving), while adding a Rigidbody makes it dynamic. Use as few complex colliders as possible to keep physics fast.

Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance

Trigger colliders in Unity: OnTriggerEnter vs OnCollisionEnter

A collider can be marked Is Trigger to detect overlaps without a physical collision response. With triggers, objects pass through each other and trigger events. When a collider set as a trigger is entered, Unity calls the script function OnTriggerEnter(Collider other) on that object. In contrast, a normal (non-trigger) collider produces physics collisions: if at least one object has a non-kinematic Rigidbody, OnCollisionEnter(Collision collision) is invoked.

The key difference: OnCollisionEnter reports a solid physics collision (with Collision data, e.g. contact points), while OnTriggerEnter fires when one collider enters another marked as trigger (passing a Collider reference, with no physics forces applied). Use triggers for things like pickups or zones (you usually don’t want physics reactions), and normal colliders for physical interactions like bouncing or blocking movement. Note one rule: exactly one object must have IsTrigger checked; if both are triggers nothing happens. Also, triggers will call OnTriggerEnter for kinematic objects, whereas OnCollisionEnter only fires if a non-kinematic Rigidbody is involved.

Unity Layer Collision Matrix setup for performance and gameplay

Unity’s Layer Collision Matrix (in Project Settings → Physics) lets you enable or disable collisions between layers. By assigning GameObjects to layers and toggling their interactions, you can prevent whole groups of objects from ever checking collisions. This dramatically reduces physics workload: when a layer pair is unchecked, the engine skips checking those objects entirely. For example, you might disable collisions between “PlayerWeapons” and “Player” layers so your player’s own projectiles don’t hit them.

Best practice is to only enable layer collisions that are necessary for gameplay and disable all others. Unity recommends revisiting the collision matrix as your game grows and profiling the physics broad-phase pairs and contacts. In summary, using collision layers smartly reduces the number of potential contacts each frame, improving performance without changing gameplay, and is an essential optimization for larger projects.

How to prevent tunneling in Unity (fast moving objects)

Tunneling occurs when a fast object “skips” through a collider between physics steps. To prevent this, Unity offers Continuous Collision Detection (CCD) modes. On a Rigidbody’s Collider Detection setting, choose Continuous Dynamic for the fast-moving object itself, and Continuous on the objects it should hit. Continuous Dynamic sweeps the collider along its trajectory to catch collisions that would be missed. Unity also provides Continuous Speculative, a lightweight CCD that can handle kinematic objects and has lower overhead than traditional CCD.

In short: switch from Discrete to a continuous mode for any rigidbody with high velocity. Additionally, increasing the physics update rate (Time.fixedDeltaTime) can help if objects still tunnel, but at a higher CPU cost. Unity’s manual states CCD “ensures that fast-moving bodies collide with objects instead of passing, or tunneling, through those objects”. So use CCD wisely (only where needed) to avoid tunneling.

Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance

Unity joints explained (HingeJoint, SpringJoint, ConfigurableJoint)

Unity provides several joint components that constrain Rigidbody movement. A HingeJoint connects two Rigidbodies so they rotate around a shared axis (like a door on hinges). You set the anchor point and axis, and the joint can optionally use motors or limits. A SpringJoint ties two Rigidbodies with spring-like behavior: as they move apart, the spring applies forces to pull them back, like a rubber band or slingshot. Properties let you adjust spring strength and damping.

The ConfigurableJoint is the most versatile: it can mimic any other joint or create new ones by allowing drives and limits on each axis. Configurable Joints have settings for linear and angular motion on X/Y/Z axes, with drive forces, springs, and limits. In essence, ConfigurableJoints are “extremely customisable” as they combine all other joint types’ functionality. Use HingeJoints for simple one-axis rotation (doors, wheels), SpringJoints for elastic connections, and ConfigurableJoints when you need fine-grained, multi-axis control or unique joint behaviors.

Raycasting in Unity physics (Raycast, SphereCast, BoxCast)

Physics raycasts are queries that shoot shapes into the scene to detect colliders. The most common is Physics.Raycast, which casts an infinitesimally thin line (a ray) from a point in a direction and reports the first collider hit. Raycasts are used for line-of-sight, shooting, or any straight-line detection. Unity also offers SphereCast and BoxCast, which cast a volume along a path. A SphereCast sweeps a sphere (radius and direction) like a “thick raycast,” useful when you need to check if a moving object of some size (e.g. player or character controller) will hit anything.

A BoxCast similarly casts an oriented box (with given half-extents) forward. Both return detailed hit information via RaycastHit. In practice, use Raycast for precision (bullet hits), SphereCast when you need to account for object radius (characters, obstacles), and BoxCast for rectangular volumes (e.g. wide field-of-view). All these methods allow filtering by layer masks and can optionally hit trigger colliders.

Physics interpolation and extrapolation in Unity: smoother movement

If a Rigidbody’s motion appears jerky because the rendering frame rate doesn’t align with physics updates, Unity provides interpolation and extrapolation options to smooth it. Interpolation uses the Rigidbody’s positions from the previous physics updates to render a smooth transition in the current frame. This makes the object’s movement slightly lag behind the physics simulation (one-step delay), but it greatly reduces visible jitter when the camera follows it.

Extrapolation uses the current velocity to predict the next position, so the object appears slightly ahead of its physics position. Extrapolate can overshoot (since it doesn’t account for future collisions), but it avoids lag for objects moving steadily. Generally, Interpolate is recommended for most cases (especially when velocity varies) because it’s more accurate. Extrapolate is useful if a consistent offset is acceptable (e.g. constant velocity) and you want to avoid the one-frame delay. Both settings are found on the Rigidbody component in the Inspector. Use them only when you notice visual stuttering at runtime, as Unity advises.

Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance

Unity 2D physics vs 3D physics (Rigidbody2D and Collider2D differences)

Unity’s 2D physics is a separate system (Box2D) from 3D physics (PhysX), and it uses distinct components. For 2D, you use Rigidbody2DCollider2D (like BoxCollider2D, CircleCollider2D), and the Physics2D API. In 2D, objects move only in the XY plane and rotate around the Z axis. Many Rigidbody properties (mass, drag, gravity) carry over, but 2D bodies ignore any Z movement/rotation. Importantly, 2D colliders will only collide with other 2D colliders on the same Z=0 plane, and likewise 3D colliders only collide in 3D. You cannot mix 2D and 3D colliders.

In summary, 2D physics is optimized for side-scrollers or top-down games: it’s lighter and restricted to 2D movement, whereas 3D physics handles full 3D simulation. Use the matching Rigidbody/Collider type for your game. Unity’s manual notes that Rigidbody2D “carries over” many concepts from Rigidbody but confines motion to XY only.

Physics settings in Unity Project Settings (solver iterations and queries)

Unity’s Project Settings → Physics panel contains global parameters that affect simulation accuracy and queries. Two important settings are the Solver Iteration Count and Solver Velocity Iterations. These determine how many passes the physics solver takes each physics frame to resolve contacts and joints. Higher values make constraints and jointed systems (like ragdolls or stacked objects) more stable, at the cost of CPU time.

For example, if you see jittery joints or unrealistic behavior, increasing solver iterations can help. Another pair of options, Queries Hit Backfaces and Queries Hit Triggers, control raycasts and other physics queries. If Hit Triggers is enabled, raycasts and spherecasts will detect trigger colliders by default. By default Unity enables trigger hits, but you can disable it if you want queries to ignore trigger objects. Adjust these project-level settings to balance performance versus simulation fidelity in your game. Always profile after changes to ensure the impact is acceptable.

Unity physics optimization tips (collision layers, callbacks, and CPU cost)

To optimize physics performance, first use collision layers (as above) to skip unnecessary collisions. Next, be mindful of collision callbacks: every OnCollisionEnter/Stay/Exit allocates a new Collision object by default. In heavy physics scenes, these allocations can hurt performance. Unity provides a “Reuse Collision Callbacks” setting (enabled by default) which reuses a pool of Collision data rather than allocating new ones.

Ensure it’s enabled (it is by default) to reduce garbage collector overhead during many collisions. Finally, limit physics calculations to what’s needed: disable rigidbodies or colliders on inactive objects, use Physics.IgnoreCollision for exceptions, and profile the CPU cost of physics in Unity’s Profiler. Broad-phase collision checks scale with object count, so keeping redundant colliders inactive (or off hidden layers) cuts CPU load. In short, optimize by culling collisions via layers, reusing collision data to reduce GC impact, and minimizing active physics components.

Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance

Frequently Asked Questions (FAQs)

  1. What is the difference between Rigidbody and CharacterController?
    A Rigidbody uses Unity’s physics simulation (responding to forces, gravity, and collisions). A CharacterController is a special collider not driven by physics forces; you move it via script commands (e.g. Move()). Use CharacterController for controllable player movement (with manual collision handling), and Rigidbody for physics-driven behavior.
  2. How do Discrete and Continuous collision detection work?
    Discrete (the default) only checks collisions at fixed updates, which can miss fast objects. Continuous modes sweep the collider through its path between frames. Set a fast object to Continuous Dynamic and its targets to Continuous to catch high-speed collisions. Continuous Speculative is an alternative with lower cost.
  3. Why use FixedUpdate instead of Update for physics?
    FixedUpdate() runs on a consistent, fixed timestep synchronized with the physics engine, making force application stable. Update() runs every frame (variable rate). The rule of thumb is to read input in Update and apply it to physics in FixedUpdate. This ensures smooth, deterministic physics simulation.
  4. What is a PhysicMaterial and how do I use friction/bounciness?
    A PhysicMaterial asset defines surface friction (static and dynamic) and bounciness. Assign it to a Collider to control sliding and bounce. Friction values (0–1) reduce motion, and Bounciness (0–1) adds energy on impact. You can also set combine modes (Average, Min, Max, Multiply) to define how two colliding materials mix.
  5. When should I use a MeshCollider?
    Use a MeshCollider for precise collisions with complex geometry (level scenery, static environment). But MeshColliders are expensive. For moving objects or gameplay characters, prefer primitive colliders (Box/Sphere/Capsule) or convex MeshColliders for performance. A convex MeshCollider can collide with other MeshColliders, while a non-convex one cannot collide with another mesh.
  6. How do trigger colliders differ from normal colliders?
    Trigger colliders (IsTrigger enabled) let objects pass through and invoke OnTriggerEnter/Stay/Exit. Normal colliders cause physical collisions and invoke OnCollisionEnter/Stay/Exit. Use triggers for non-physical interactions (collectibles, zones) and regular colliders for physics contacts. Recall: triggers pass a Collider to your script, collisions pass a Collision object with contact data.
  7. How do I configure the Layer Collision Matrix for performance?
    In Unity’s Physics Project Settings, find the Layer Collision Matrix. Assign layers (e.g. “Player”, “Enemy”, “Environment”) to GameObjects, then uncheck layer pairs that should not interact. This stops Unity from checking collisions between those layers entirely. For example, disable “Bullet” vs “Bullet” if bullets don’t hit each other. Only leave enabled the interactions needed for gameplay.
  8. How can I avoid fast objects tunneling through colliders?
    Enable continuous collision detection on the rigidbody: set its Collision Detection mode to Continuous or Continuous Dynamic. This makes Unity sweep the collider each frame to catch collisions. Alternatively, reduce Time.fixedDeltaTime or use thicker colliders. Continuous modes (and the newer Continuous Speculative) are the recommended solution to prevent tunneling.
  9. What are common types of joints in Unity and when to use them?
    • HingeJoint: locks two objects to rotate around one axis (e.g. doors, wheels). – SpringJoint: connects two objects with spring force (like a tether or rubber band).
    • ConfigurableJoint: fully custom, can mimic hinges, sliders, etc. with drive and limit controls. Use Hinge for one-axis rotation, Spring for elastic connections, and Configurable for complex or multi-axis constraints.
  10. How do Rigidbody2D and Rigidbody (3D) differ?
    Rigidbody2D (with Collider2D) is the 2D physics body. It only moves in the XY plane and rotates about Z. It uses a separate engine (Box2D). Rigidbody (3D) is for three-dimensional physics and can move/rotate in all axes. You cannot mix them: 2D colliders only hit 2D, and 3D colliders only hit 3D. Choose the appropriate type based on your game’s dimension.
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance
Physics in unity: complete guide to rigidbodies, colliders, joints, fixedupdate, and performance

Conclusion

Unity’s physics system is powerful and flexible, combining NVIDIA PhysX (for 3D), Box2D (for 2D), and new DOTS-based options (Unity Physics, Havok). Understanding how and when to use Rigidbodies, Colliders, and Joints is key for realistic movement and interactions. Use continuous collision detection for fast objects, interpolate motions for smooth visuals, and organize layers to cut costs. Applying forces in FixedUpdate and leveraging physics materials (friction, bounce) allows nuanced behavior. Finally, profile and optimize: disable unnecessary collisions, reuse collision callbacks, and tweak solver iterations as needed. By following Unity’s best practices and tooling (Layer Collision Matrix, Physics Settings), you can achieve stable, performant physics in your game.

Sources and Citations

  1. Unity Manual — Rigidbody component reference
    https://docs.unity3d.com/6000.4/Documentation/Manual/class-Rigidbody.html
  2. Unity Manual — Introduction to rigid body physics
    https://docs.unity3d.com/6000.4/Documentation/Manual/RigidbodiesOverview.html
  3. Unity Manual — Rigidbody physics section
    https://docs.unity3d.com/6000.3/Documentation/Manual/rigidbody-physics-section.html
  4. Unity Scripting API — Rigidbody
    https://docs.unity3d.com/6000.4/Documentation/ScriptReference/Rigidbody.html
  5. Unity Scripting API — Collider
    https://docs.unity3d.com/6000.4/Documentation/ScriptReference/Collider.html
  6. Unity Scripting API — Physics
    https://docs.unity3d.com/6000.3/Documentation/ScriptReference/Physics.html
  7. Unity Manual — Joints
    https://docs.unity3d.com/2022.3/Documentation/Manual/joints-section.html
  8. Unity Manual — Physics Profiler module
    https://docs.unity3d.com/6000.4/Documentation/Manual/ProfilerPhysics.html
  9. Unity — Enhanced physics performance for smooth gameplay
    https://unity.com/how-to/enhanced-physics-performance-smooth-gameplay
  10. Unity — Best practice guides
    https://docs.unity3d.com/6000.4/Documentation/Manual/best-practice-guides.html

Recommended

Table of Contents

PixelHair

3D Hair Assets

PixelHair ready-made Rema dreads 3D hairstyle in Blender using Blender hair particle system
Fade 013
PixelHair ready-made 3D Lil Pump dreads hairstyle in Blender using hair particle system
PixelHair ready-made female 3D Dreads hairstyle in Blender with blender particle system
PixelHair ready-made Chadwick Boseman full 3D beard in Blender using Blender hair particle system
PixelHair pre-made Afro Fade Taper in Blender using Blender hair particle system
yelzkizi PixelHair Realistic male 3d Bantu Knots 3d hair in Blender using Blender hair particle system
PixelHair ready-made full 3D goatee beard in Blender using Blender hair particle system
PixelHair ready-made pigtail female 3D Dreads hairstyle in Blender with blender hair particle system
PixelHair Realistic 3d character curly afro taper 4c hair in Blender using Blender hair particle system
PixelHair Realistic female 3d character curly afro 4c big bun hair in Blender using Blender hair particle system
PixelHair ready-made full 3D beard in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Pigtail dreads 4c big bun hair in Blender using Blender hair particle system
PixelHair ready-made iconic 3D Drake braids hairstyle in Blender using hair particle system
PixelHair ready-made full weeknd 3D moustache stubble beard in Blender using Blender hair particle system
yelzkizi PixelHair Realistic Korean Two-Block Male 3d hair in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Halle Bailey Bun Dreads in Blender
PixelHair ready-made 3D hairstyle of Ski Mask the Slump god Mohawk dreads in Blender
PixelHair ready-made Rhino from loveliveserve style Mohawk fade / Taper 3D hairstyle in Blender using Blender hair particle system
PixelHair pre-made Lil Baby Dreads Fade Taper in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Unique Bantu puff twist hairstyle with curled afro ends and sleek parted base 3d hair in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Cardi B Double Bun Pigtail with bangs and   middle parting 3d hair in Blender using Blender hair particle system
PixelHair pre-made Omarion Braided Dreads Fade Taper in Blender using Blender hair particle system
PixelHair ready-made Polo G dreads 3D hairstyle in Blender using hair particle system
PixelHair ready-made 3D hairstyle of Kendrick Lamar braids in Blender
yelzkizi PixelHair Realistic female Realistic Short TWA Afro Groom 3d hair in Blender using Blender hair particle system
PixelHair ready-made top woven dreads fade 3D hairstyle in Blender using Blender hair particle system
PixelHair pre-made Drake Braids Fade Taper in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Dreadlocks wrapped in scarf rendered in Blender
yelzkizi PixelHair Realistic female 3d character curly afro 4c big bun hair with 2 curly strands in Blender using Blender hair particle system
PixelHair ready-made iconic Asap Rocky braids 3D hairstyle in Blender using hair particle system
PixelHair ready-made 3D hairstyle of Halle Bailey dreads knots in Blender with hair particle system
PixelHair ready-made iconic Juice Wrld dreads 3D hairstyle in Blender using hair particle system
PixelHair Realistic Dreads 4c hair in Blender using Blender hair particle system
PixelHair ready-made short 3D beard in Blender using Blender hair particle system
PixelHair ready-made Big Sean braids 3D hairstyle in Blender using hair particle system
yelzkizi PixelHair Realistic female 3d character curly hair afro with bun pigtail  3d hair in Blender using Blender hair particle system
Dreads 010
PixelHair ready-made short 3D beard in Blender using Blender hair particle system
PixelHair Realistic 3d character curly afro fade taper 4c hair in Blender using Blender hair particle system
PixelHair Realistic 3d character bob afro  taper 4c hair in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character curly afro 4c big bun hair with scarf in Blender using Blender hair particle system
PixelHair pre-made Odel beckham jr Curly Afro Fade Taper in Blender using Blender hair particle system
PixelHair ready-made Drake full 3D beard in Blender using Blender hair particle system
PixelHair Realistic female 3d character bob afro 4c hair in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character full dreads 4c hair in Blender using Blender hair particle system
PixelHair pre-made The weeknd Afro 3D hairstyle in Blender using Blender hair particle system
PixelHair pre-made Curly Afro in Blender using Blender hair particle system
PixelHair pre-made The weeknd Dreads 3D hairstyle in Blender using Blender hair particle system
PixelHair pre-made Drake Braids Fade Taper in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Cardi B red curly bun pigtail with bangs style 3d hair in Blender using Blender hair particle system
PixelHair ready-made dreads pigtail hairstyle in Blender using Blender hair particle system
yelzkizi PixelHair Realistic male 3d character Afro Sponge Twists Dreads 3d hair in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Lil uzi vert dreads in Blender
Fade 009
PixelHair Realistic 3d character full beard in Blender using Blender hair particle system
PixelHair pre-made female 3d character Curly  Mohawk Afro in Blender using Blender hair particle system
PixelHair Realistic female 3d character curly afro 4c ponytail bun hair in Blender using Blender hair particle system
PixelHair pre-made Chadwick Boseman Mohawk Afro Fade Taper in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Layered Shag Bob with Wispy Bangs 3D Hair in Blender using Blender hair particle system
PixelHair ready-made top bun dreads fade 3D hairstyle in Blender using Blender hair particle system
PixelHair ready-made iconic Kodak thick black dreads 3D hairstyle in Blender using hair particle system
PixelHair ready-made Afro fade 3D hairstyle in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Cardi B Bow Bun with bangs and stray strands on both sides of the head 3d hair in Blender using Blender hair particle system
PixelHair ready-made 3D full beard with magic moustache in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Travis scott braids in Blender
PixelHair Realistic 3d character clean shaved patchy beard in Blender using Blender hair particle system
PixelHair Realistic 3d character dreads fade taper in Blender using Blender hair particle system
PixelHair Realistic female 3d character curly afro 4c hair in Blender using Blender hair particle system
PixelHair ready-made 3D Jason Derulo braids fade hairstyle in Blender using hair particle system
yelzkizi PixelHair Realistic female 3d character Bow Bun Locs Updo 3d hair in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Khalid Afro Fade  in Blender
yelzkizi PixelHair Realistic female 3d character 4 twist braids 4c afro bun hair with hair clip in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Sleek Side-Part Bob 3d hair in Blender using Blender hair particle system
PixelHair Realistic 3d character afro fade taper 4c hair in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Nipsey Hussle Braids in Blender
PixelHair ready-made short 3D beard in Blender using Blender hair particle system
PixelHair pre-made Chris Brown inspired curly afro 3D hairstyle in Blender using Blender hair particle system
PixelHair ready-made iconic J.cole dreads 3D hairstyle in Blender using hair particle system
PixelHair ready-made Omarion dreads Knots 3D hairstyle in Blender using hair particle system
PixelHair ready-made spiked afro 3D hairstyle in Blender using hair particle system
PixelHair Realistic female 3d charactermohawk knots 4c hair in Blender using Blender hair particle system
PixelHair Realistic 3d character afro dreads fade taper 4c hair in Blender using Blender hair particle system
yelzkizi PixelHair Realistic female 3d character Cardi B Bow Tie weave 4c hair in Blender using Blender hair particle system
PixelHair ready-made chrome heart cross braids 3D hairstyle in Blender using hair particle system
yelzkizi PixelHair Realistic 3D Dreadlocks: Realistic Male Locs 3d hair in Blender using Blender hair particle system
PixelHair Realistic female 3d character curly bangs afro 4c hair in Blender using Blender hair particle system
yelzkizi PixelHair Realistic male 3d character Chris Brown Curly High-Top Fade 3d hair in Blender using Blender hair particle system
PixelHair ready-made Top short dreads fade 3D hairstyle in Blender using Blender hair particle system
PixelHair ready-made Jcole dreads 3D hairstyle in Blender using hair particle system
PixelHair pre-made Drake Double Braids Fade Taper in Blender using Blender hair particle system
yelzkizi PixelHair Realistic Yeat French Crop Fade male 3d character 3d hair in Blender using Blender hair particle system
PixelHair pre-made weeknd afro hairsty;e in Blender using Blender hair particle system
yelzkizi PixelHair Realistic Yeat-Style Van Dyke Beard 3D in Blender using Blender hair particle system
PixelHair ready-made 3D Beard of Khalid in Blender
yelzkizi PixelHair Realistic Korean Two-Block Fade 3d hair in Blender using Blender hair particle system
PixelHair ready-made full 3D beard in Blender using Blender hair particle system
PixelHair ready-made 3D hairstyle of Doja Cat Afro Curls in Blender
PixelHair ready-made 3D full stubble beard with in Blender using Blender hair particle system
PixelHair ready-made 3D Rihanna braids hairstyle in Blender using hair particle system