-
Notifications
You must be signed in to change notification settings - Fork 106
memory_usage
title: Memory Usage Analysis (2000) description: Memory budget calculations for the Ryzom 3D engine landscape system published: true date: 2026-03-14T18:43:55.340Z tags: editor: markdown dateCreated: 2026-03-14T04:19:42.140Z
Translated from "fr 2000 3d memory_usage" — memory budget calculations for the landscape system, referenced by the 3D Engine Specification. {.is-info}
The view cone is calculated with a 90-degree opening. The view distance is the depth of this view cone. The reserve distance is the distance added in front of the view cone to pre-load the landscape during movement. The near distance is the distance from which the landscape is displayed in tile mode.
For 1000 meters of visibility, we have a surface area to process of 9 km². For 500 meters of visibility, 2.25 km².
A tile is 3 tile numbers (9 bits each) with flags and additional information (5 bits). 4 bytes.
| Component | Size |
|---|---|
| 4 control points as floats | 48 bytes |
| 8 normals as integers | 48 bytes |
| Neighbor information, 4 pointers | 16 bytes |
| Tile list 8x8 | 256 bytes (tiles of 2 meters) |
| Global texture 8x8 in RGB 16-bit | 128 bytes (precision of 2 meters) |
| Global shading texture 8x8 in 8-bit | 64 bytes (precision of 2 meters) |
| Shadow texture in bits 32x32 compressed (1/4 ratio) | 32 bytes (precision of 50 cm) |
| Total | 544 bytes of RAM |
There are 4800 zones of 200 patches. This gives 960,000 patches in the world.
For 1000 meters of visibility with 500 meters of reserve in front and behind, the terrain coverage is 9 km². A zone measuring 160 meters per side gives 160x160 = 25,600 m² per zone. That means 351 zones to load. With an average of 200 patches per zone, there will be 70,200 patches in memory. Patch memory: 36.5 MB RAM.
Coverage of 2.25 km². 88 zones to load. 13,200 patches in memory. Patch memory: 9.2 MB RAM.
Coverage of 0.49 km². 20 zones to load. 4,000 patches in memory. Patch memory: 2.1 MB RAM.
With a near zone at 100 meters, we have a 200x200 meter area to cover in tile mode. That's 40,000 m². This gives an average of 234 visible patches.
Each visible patch needs a 32x32 texture in 32-bit VRAM. Total: 1 MB VRAM.
32x32 texture in 16-bit with mipmap per patch in a 400x400 meter zone. About 938 patches to map. 2.5 MB VRAM and RAM.
16x16 texture in 16-bit with mipmap per patch in an 800x800 meter zone. About 3,750 patches to map. 2.5 MB VRAM and RAM.
For 500 meters visibility: 8x8 texture in 16-bit with mipmap per patch in a 1000x1000 meter zone. About 4,062 patches. 0.7 MB VRAM and RAM.
For 1000 meters visibility: 8x8 texture in 16-bit with mipmap per patch in a 2000x2000 meter zone. About 27,500 patches. 4.5 MB VRAM.
| Configuration | Resolution | Format | Size |
|---|---|---|---|
| GeForce | 800x600 | 32-bit double buffer + 24-bit Z (+8-bit?) | 5.5 MB VRAM |
| GeForce GTS | 1024x768 | 32-bit double buffer + 24-bit Z | 8.3 MB VRAM |
| Minimum config | 640x480 | 16-bit double buffer (3.7 MB) + 16-bit Z (1.4 MB) | 1.8 MB VRAM |
First, we need all 1536 tiles in 4x4, 2x2, and 1x1 versions for computing far textures. This gives 32 KB of RAM. Tiles are stored on disk for 10 territories.
| Configuration | Tile size | Format | Count | VRAM | Ground precision |
|---|---|---|---|---|---|
| GeForce | 64x64 | 24-bit S3TC + mipmap | 1536 | 4 MB | 3 cm |
| GeForce GTS | 128x128 | 24-bit S3TC + mipmap | 1536 | 16 MB | 1.5 cm |
| Minimum config | 16x16 | 24-bit S3TC + mipmap | 1536 | 0.5 MB | 12 cm |
GeForce 32 MB, 500 meters visibility, near zone at 100 meters, tiles at 64x64 (3 cm ground precision).
| Component | RAM | VRAM | Disk | DVD |
|---|---|---|---|---|
| Patches | 9.2 MB | — | 498 MB | 498 MB |
| Near global texture | 1.0 MB | 1.0 MB | — | — |
| Far global texture | 2.5 + 2.5 + 0.7 MB | 2.5 + 2.5 + 0.7 MB | — | — |
| Tiles | — | 8 MB | 1280 MB | 1280 MB |
| Video buffers | — | 5.5 MB | — | — |
| Total | 15.9 MB | 16.2 MB | 1778 MB | 1778 MB |
GeForce GTS, 1000 meters visibility, near zone at 100 meters, tiles at 128x128 (1.5 cm ground precision).
| Component | RAM | VRAM | Disk | DVD |
|---|---|---|---|---|
| Patches | 36.5 MB | — | 498 MB | 498 MB |
| Near global texture | 1 MB | 1 MB | — | — |
| Far global texture | 2.5 + 2.5 + 4.5 MB | 2.5 + 2.5 + 4.5 MB | — | — |
| Tiles | — | 16 MB | 1280 MB | 1280 MB |
| Video buffers | — | 8.3 MB | — | — |
| Total | 47 MB | 34.8 MB | 1778 MB | 1778 MB |
16 MB 3D card, 250 meters visibility, near zone at 100 meters, tiles at 16x16 (12 cm ground precision).
| Component | RAM | VRAM | Disk | DVD |
|---|---|---|---|---|
| Patches | 2.1 MB | — | 498 MB | 468 MB |
| Near global texture | 1.0 MB | 1.0 MB | — | — |
| Far global texture | 2.5 + 2.5 MB | 2.5 + 2.5 MB | — | — |
| Tiles | — | 0.5 MB | 1280 MB | 1280 MB |
| Video buffers | — | 1.8 MB | — | — |
| Total | 8.1 MB | 8.3 MB | 1778 MB | 1778 MB |
| Category | VRAM |
|---|---|
| Buffers | 10 MB |
| Landscape | 27 MB |
| Static objects | 4 MB |
| Dynamic objects | 10 MB |
| Sky, SFX, HUD | 7 MB |
| Safety margin | 6 MB |
| Total | 64 MB |