Introduction
The parameter record of Mandelbulb 3D with MandId 7 alone. The program’s loader reads
SizeOf(TMandHeader9) − 124 bytes for it: 580 bytes, which are the 432-byte main header of
TMandHeader9 followed by a lighting block of 148 bytes, TLightingParas7, not the
272-byte block of the later records. The loader then converts the lights to the current layout.
No file of this kind was available. The layout is read from the program’s source
(thargor6/mb3d, TypeDefinitions.pas and FileHandling.pas), and the explorer’s reading is tested only
on files built to it, so the viewer is partial for this variant. A file is taken as this layout when it
is exactly 580 bytes and MandId is 7. There is no signature.
Layout
The first 0x1B0 bytes are the main header of MandId 8 to 19: five
int32 from MandId to iOptions, the view and the Z range as doubles, the zoom, R bailout
and power at 0x54, the field of view at 0x6C, the shadow, depth of field, Julia and cutting settings, the
view matrix hVGrads at 0xF6, the memory pointers at 0x17A to 0x199 and spare buffers, all with
the offsets, sizes and types given on that page. The lighting block follows:
| Offset | Size | Field | Type | Meaning |
|---|---|---|---|---|
| 0x1B0 | 44 | TBpos[1] to TBpos[11] | 11 × i32 | Trackbar positions of the lighting panel |
| 0x1DC | 4 | TBoptions | u32 | Bits 1 and 2: the specular function (power 8, 16, 32, 64); bits 3 and 4: the diffuse function; bits 5 to 11: position 12; bits 12 to 18: position 13, the interior colour |
| 0x1E0 | 4 | TBfineColAdjust | u32 | Fine colour adjustment: start in the low byte, stop in the next, and the fine-down option in bit 17 |
| 0x1E4 | 4 | DepthCol | colour | The depth colour |
| 0x1E8 | 36 | Cols[1] to Cols[9] | 9 × colour | The object colours |
| 0x20C | 56 | Lights[0..3] | 4 × 14 bytes | Four lights (TLight7): Loption u8 (0 on, 1 off, 2 bitmap), LFunction u8, Lcolor colour, LXangle i32, LYangle i32 |
A colour is a Delphi colour value: the first byte is red, then green, blue, and a fourth byte. The record has no hybrid block.
Not described
What this page and the explorer leave out or only infer for this layout.
- Reference: no real file of this layout was available; it follows from the program’s source (the size 580 is the loader’s read length) and is unchecked on files. The first 0x1B0 bytes are described on the page for MandId 8 to 19, not repeated here, and the lighting option bits and the light functions have only terse meanings.
- Viewer: shown only as built test files show it; there is no conversion of the four lights to the current six.
Variants
- MandId 0 to 3 – the oldest record, TMandHeaderOld, 200 bytes
- MandId 4 to 6 – TMandHeader4, 272 bytes, with the field of view and shadow settings
- MandId 7 – the 580-byte record with four lights
- MandId 8 to 19 – TMandHeader9, 704 bytes, with the old hybrid block from MandId 16
- MandId 20 and later – the current record, 1,976 bytes
- MandId 20 and later with the old hybrid block – 1,856 bytes
Links
Software
- Mandelbulb 3D – the Windows program that reads these files (Windows)
Developers
- thargor6/mb3d – the program’s Delphi source under the GNU LGPL 2.1, with TLightingParas7 and the loader (Delphi)
Reference
- M3P, MandId 20 and later – the current record, with every field’s meaning