Skip to main content

Overview

The model rendering system in Minecraft Community Edition provides classes for rendering 3D entity models with animations. This includes the base Model class, specialized models like HumanoidModel, entity renderers, and model parts.

Model Class

Header: Minecraft.Client/Model.h

Class Definition

Base class for all entity models.

Members

Core Methods

render

Renders the model. Parameters:
  • entity - Entity being rendered
  • time - Animation time/walk position
  • r - Walk animation speed
  • bob - Vertical bob amount
  • yRot - Head yaw rotation (relative to body)
  • xRot - Head pitch rotation
  • scale - Render scale (typically 1/16)
  • usecompiled - Use compiled display lists (optimization)

setupAnim

Sets up model animations before rendering. Parameters:
  • time - Animation time
  • r - Animation speed
  • bob - Bob amount
  • yRot - Y rotation
  • xRot - X rotation
  • scale - Scale factor
  • uiBitmaskOverrideAnim - Animation override flags

prepareMobModel

Prepares model-specific state before rendering (e.g., spider climbing animation).

Texture Mapping

Manage texture coordinate mappings for model parts.

HumanoidModel Class

Header: Minecraft.Client/HumanoidModel.h

Class Definition

Model for humanoid entities (players, zombies, skeletons, etc.).

Model Parts

Animation State

Animation Override Flags

Constructors

Parameters:
  • g - Model scale/padding
  • yOffset - Vertical offset
  • texWidth - Texture width (64 for standard skins)
  • texHeight - Texture height (64 for standard, 32 for legacy)
Example:

Rendering Methods

Example:

ModelPart Class

Header: Minecraft.Client/ModelPart.h

Class Definition

Represents an individual part of a model (head, arm, leg, etc.).

Transform Properties

Constructors

Building Methods

Example:

Rendering

Example:

Entity Renderers

EntityRenderer Base Class

Header: Minecraft.Client/EntityRenderer.h
Base class for all entity renderers.

Key Methods

MobRenderer Class

Header: Minecraft.Client/MobRenderer.h
Renderer for mob entities with models.

Constructor

Parameters:
  • model - The model to render
  • shadow - Shadow radius
Example:

Core Methods

Armor Rendering

Example:

Complete Usage Example

Animation Example

Performance Tips

Display Lists: Set usecompiled to true to use OpenGL display lists for static model parts. This significantly improves performance by caching geometry.
Model Complexity: Keep model part counts reasonable. Each ModelPart adds overhead. Typical humanoid models have 8-12 parts.
  • GameRenderer - Main rendering coordinator
  • LevelRenderer - Level rendering
  • EntityRenderDispatcher - Entity renderer registry
  • Tesselator - Vertex batching
  • Entity - Base entity class
  • Mob - Mobile entity class