Atlas #16
In this post
A pale stone head lies sideways in Ho Lang, north of Binh Ninh. In the first game views, the head was there but barely appeared in the water’s reflection.
The accepted view now puts a reflected face beneath the shut stone eye. To get there, the team had to build the back of a head hidden in the concept, shrink texture maps that outweighed the mesh, and add the head to the scene used for distant reflections.
The nose nearly touches the water. Below it, ripples stretch and break the reflected stone. The team kept this pose rather than lifting the crown.
The accepted game view, Atlas fade7850. The head is placed in the existing lake landscape; this is not concept art.
The concept hid the back of the skull and the broken neck#
The starting concept placed a huge head beside a village on piles. Vines crossed the forehead and hung into the lake. It showed the head’s size beside the houses and its closed-eyed expression. Much of the skull, neck and underside was hidden.
The supplied concept. The village, hanging plants and layered cliffs belong to this reference; they have not all been recreated in the game view.
We extracted the head, removed vegetation and developed a complete upright version. Several attempts made the features too heavy. Those versions no longer matched the narrow eyelids and lighter features in the accepted reference.
The accepted face reference, before mesh generation. This image establishes the intended design, not the geometry that later reached the game.
Meshy generated a model from the images. In Blender, the rear of the skull and the broken neck needed more work. The team made additional reference views, then inspected the replacement from behind, below and both sides. The middle-distance mesh also needed repairs to its surface normals and the coordinates that place textures on it.
The new rear and underside were designed for the model. The original picture does not show what should be there.
A 128-triangle mesh still carried 40 MB of textures#
The far-distance version reduced the head to a small mesh. Its texture maps did not shrink with it.
The raw far model had 128 triangles, but its file occupied 40,672,756 bytes. Encoded textures made up 99.97% of that file. It still carried three 4096 × 4096 maps.
The packaged versions now reduce texture resolution along with triangle count. Each keeps three maps: base colour, surface normals and packed material properties.
| Detail | Triangles | Each map’s size |
|---|---|---|
| Near | 103,842 | 2048 × 2048 |
| Middle | 9,362 | 1024 × 1024 |
| Distant | 1,028 | 512 × 512 |
| Far silhouette | 128 | 128 × 128 |
The far file is now 98,960 bytes, down from 40,672,756. The texture maps, rather than the 128 triangles, accounted for almost all of the original file.
At the placed scale of 45 metres per model unit, the base-colour maps provide a measured 16.06 texels per metre for the near mesh and 0.87 for the far mesh. A texel is a pixel in a texture map. These surface-area-weighted RMS figures count reused texture regions, so they do not measure unique painted detail.
The loader still requests every detail level and retains them. In RGBA8 format, the textures for the full set would occupy about 84.25 MiB, including all smaller mip levels. That is a format-based estimate, not a measurement of GPU memory in use. Switching to a simpler visible mesh does not, by itself, unload the other textures.
The survey measured the water surface instead of the lake bed#
Before placing the head, we needed to know what lay beneath it. The first survey returned the lake’s surface height rather than the bed beneath it.
At the test point in the earlier placement build, the corrected survey measured water at 269.02 metres, bed at 266.05 metres, and approximately 2.97 metres of depth. River and sea controls mattered. A river’s sampled channel height already represented ground; blindly subtracting depth there would have introduced another error.
The corrected bed height gave the team ground to fit the head against. Game views then showed where the stone met the water.
Fresh reviewers compared shuffled game views with the original scene and the accepted face reference. They found softened masonry, changed eyelids, overly yellow stone, weak reflections and awkward crops. Those findings describe the rendered result; a successful model export did not resolve them.
The reflection scene had the hills, but not the imported head#
The first game views showed the statue, but little matching reflection. The water renderer uses a coarser scene for more distant parts of a reflection. The imported head had not been added to that scene.
Rejected test, Atlas 66f8c518. Camera and lighting also differ from the accepted view: this records the earlier problem, not a controlled before-and-after experiment.
The team added a lower-detail copy of the head to that reflection scene, using the same placement and measured stone colour. The material was also adjusted towards pale limestone, keeping its authored maps.
The next game views showed the head reflected below the waterline.
Atlas fade7850, another actual view of the accepted pose. Broad water patches and the pale distant shoreline strip remain visible.
The head and reflection are in the game source; water defects remain#
The head, its material and its reflection are in the landed game source. The team accepted the current composition and kept vegetation off the head for this stage.
The critics still identified broad reflection patches, a conspicuously pale shoreline strip, soft facial detail and a clean-looking water intersection. The team accepted the head’s placement with those defects still visible. These stills do not test movement or the switches between detail levels.
A separate proposal would deliver artifacts and their placements as streamed content. That is not implemented. This head still needs a compiled registration, packaged model files and a game build.
The lake-filling work described the ground and water beneath these scenes. At Ho Lang, a shut stone eye stays above the surface. Below it, the reflected face breaks into ripples.





