Skip to content

memory_usage

Jan Boon edited this page Mar 14, 2026 · 2 revisions

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}

1. Landscape

1.1. Terminology

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².

1.2. Memory Size of a Tile

A tile is 3 tile numbers (9 bits each) with flags and additional information (5 bits). 4 bytes.

1.3. Memory Size of a Patch

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

1.4. Patches

There are 4800 zones of 200 patches. This gives 960,000 patches in the world.

1000 meters visibility, near distance 100m, reserve 500m

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.

500 meters visibility, near distance 50m, reserve 250m

Coverage of 2.25 km². 88 zones to load. 13,200 patches in memory. Patch memory: 9.2 MB RAM.

250 meters visibility, near distance 50m, reserve 100m

Coverage of 0.49 km². 20 zones to load. 4,000 patches in memory. Patch memory: 2.1 MB RAM.

1.5. Near Textures

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.

1.6. Far Textures

100 to 200 meters

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.

200 to 400 meters

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.

Beyond 400 meters

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.

1.7. Video Buffers

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

1.8. Tile Textures

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

2. Summary

Default Configuration

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

Top-Level Configuration

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

Minimum Configuration

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

3. 64 MB VRAM Budget

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

Clone this wiki locally