MDL (GoldSrc): Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
Important:Older versions of StudioMDL, including the version found in the 
 Half-Life SDK on Steam, do not support tiling UVs, clamping them to the edge of the texture. This is not a limitation of the HLMDL file format; the Sven Co-op StudioMDL can create MDLs compatible with vanilla 
 GoldSrc which have tiled UVs. 
Bug:The latest version of the Sven Co-op StudioMDL (from December 2020), as found in the Sven Co-op SDK, has some bugs with bounding boxes; use the version linked above instead (from November 2018).  [todo tested in ?]
Tip:To create a model or submodel with more than 4080 tris, split the model into multiple SMD meshes, with a separate 
 Confirm:Max textures, max skins, and other limits?
		
	
SirYodaJedi (talk | contribs) m (→Model flags)  | 
				SirYodaJedi (talk | contribs)  m (→Model flags)  | 
				||
| Line 37: | Line 37: | ||
== Flags ==  | == Flags ==  | ||
=== Model flags ===  | === Model flags ===  | ||
Particle effects ''cannot'' be combined, but all others can.{{clarify}}  | |||
{| class="wikitable"  | {| class="wikitable"  | ||
|-  | |-  | ||
! Bit !! Flag name !! Particle effect? !! Description  | ! Bit !! Flag name !! Particle effect? !! Description  | ||
|-  | |-  | ||
| 1 || EF_ROCKET   | | 1 || EF_ROCKET || Yes || {{quake|4|nt=0}} rocket trail particles and dynamic light  | ||
|-  | |-  | ||
| 2 || EF_GRENADE || Yes || {{quake|4|nt=0}}      grenade trail smoke particles  | | 2 || EF_GRENADE || Yes || {{quake|4|nt=0}}      grenade trail smoke particles  | ||
Revision as of 12:49, 27 August 2023
MDL (sometimes referred to as Half-Life MDL or HLMDL) is a model format used by 
 GoldSrc to store dynamically lit models which can be animated using skeletal animation, along with their associated textures. It is a heavily modified version of the Quake MDL format.
Overview
Limits
HLMDL has the following limits per input SMD:
- 1 mesh
- 2048 vertices and vertex normals per mesh
 - 4080 triangles per mesh
 
 - 1 animation sequence
- 512 keyframes per sequence
 
 - 128 bones
 
Additionally, the following limits apply to the whole MDL:
- 4 bone attachments
 - 8 bone controllers
 - 32 meshes across all submodels
 - 256 animation sequences.
 
Textures must:
- Be 8-bit uncompressed BMP files.
 - Have a resolution which is a multiple of 8 (multiples of 16 are preferred).
 - Have a resolution which does not exceed 512x512 (soft limit; raised to 1024x1024 in 
 Sven Co-op and other engines like 
 FTE). - Have a file name which is not longer than 64 characters (including the 
.bmpextension). 
$body or $bodygroup entry for each mesh in the QC file.
Template:ModernWarning Flags
Model flags
Particle effects cannot be combined, but all others can.[Clarify]
| Bit | Flag name | Particle effect? | Description | 
|---|---|---|---|
| 1 | EF_ROCKET | Yes | |
| 2 | EF_GRENADE | Yes | |
| 4 | EF_GIB | Yes | |
| 8 | EF_ROTATE | No | Rotate this model around its origin, like the weapon pickups in  | 
| 16 | EF_TRACER | Yes | |
| 32 | EF_ZOMGIB | Yes | |
| 64 | EF_TRACER2 | Yes | |
| 128 | EF_TRACER3 | Yes | Like EF_GRENADE, but only has one trail | 
| 256 | EF_NOSHADELIGHT | No | Reduces intensity of shadows on the model, without making the model flat  | 
| 512 | EF_HITBOXCOLLISIONS | No | Use hitbox for collision instead of bounding box | 
| 1024 | EF_FORCESKYLIGHT | No | Always use skybox lighting, regardless of model location | 
In other engines
Half-Life MDLs are supported by 
 FTE and the 
 Unity game 
 Codename: Loop.
External links
References
-  From the GoldSrc Model Export Tutorial by The303:
In order to compile models with more than 4080 triangles, you must break up your SMD's into parts and give them their own $body lines for compiling. Also, FOR THE LOVE OF ALL THAT IS HOLY PLEASE DO NOT GO CRAZY ON YOUR TRIANGLE COUNT; remember this is goldsrc, not source engine. Going any higher than 9000 tris is excessive and direct ports from source/other games are inefficent, wasteful, and cause performance issues for the old renderer.— The303