MD2 is a model format used by id Software's id Tech 2 engine and is thus used by Quake II as well as many other games, most of them using this engine, including SiN and Soldier of Fortune. The format is primarily used for animated player models although it can also be used for static models. Unlike more recent character model formats, MD2 animations are achieved via keyframes on a per-vertex level; the keyframes are stored within the model file and the engine interpolates between them to create a smooth animation.
An MD2 file begins with a fixed length header followed by static model data such as texture coordinates. Dynamic data such as vertices and normals are stored within a number of file chunks called frames (or key-frames) which each have their own short headers.
In defining the file structure several data types will be referred to.
int (4 bytes), short (2 bytes), and char (1 byte)
MD2 Header
At the offset ofs_st there are num_st of this structure:
To recover the floating-point texture coordinates as used by common 3D display API's such as OpenGL, divide the texture coordinates by the respective size dimensions of the texture:
MD2 can refer to:
The MD2 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1989. The algorithm is optimized for 8-bit computers. MD2 is specified in RFC 1319. Although MD2 is no longer considered secure, even as of 2014, it remains in use in public key infrastructures as part of certificates generated with MD2 and RSA.
The 128-bit hash value of any message is formed by padding it to a multiple of the block length (128 bits or 16 bytes) and adding a 16-byte checksum to it. For the actual calculation, a 48-byte auxiliary block and a 256-byte S-table generated indirectly from the digits of the fractional part of pi are used (see nothing up my sleeve number). The algorithm runs through a loop where it permutes each byte in the auxiliary block 18 times for every 16 input bytes processed. Once all of the blocks of the (lengthened) message have been processed, the first partial block of the auxiliary block becomes the hash value of the message.
Don't waste your lips on words I've heard before
Kiss my tired head.
And each letter written wastes your hand, young man
Come and lead me to your bed
You gave me hope that I'd not lost her
And then thought it rather strange to see me smile-
as I don't do too much smiling these days.
She put on happiness like a loose dress
Over pain I'll never know
"So the peace you had," she said,
"I must confess, I'm glad to see it go."
We're two white roses lying frozen just outside his door
I've made you so happy and so sad,
But which should I be more sorry for?
Come kiss my face goodbye,
that space below my eye and above my cheek
Cause I'm faint and fading fast, I see a darkness
And I shall be released.
I'll pass like a fever from this body,
And softly slip into his hands
I tried to love you and I failed,
But I have another plan.
How long, My Lord, how long to sing this song?
And my Lord, how muchmore of this pretending to be strong?
When she stands before your throne
Dressed in beauty not her own
All soft and small, you'll hear her call