castle_stone
Procedural masonry in world space: running-bond blocks, bevelled joints, grain, pitting and soot stains climbing from the ground. Picks its projection plane from the dominant normal axis, so walls, plinths and carved forms read as one stone. It is an engine-lit `surface()` shader…
castle_stone
Procedural masonry in world space: running-bond blocks, bevelled joints, grain, pitting and soot
stains climbing from the ground. Picks its projection plane from the dominant normal axis, so walls,
plinths and carved forms read as one stone. It is an engine-lit surface() shader that fills a
PbrSurface with albedo, normal, roughness and metallic 0.
Up-facing surfaces take the world XZ plane, X-facing surfaces the ZY plane and Z-facing surfaces the
XY plane, each with its own salt so the three patterns differ. Odd courses are staggered by half a
block, every course gets a random offset and a block width between 0.85 and 1.35 times
block_size.x, and each block gets its own grey between (0.20, 0.20, 0.21) and (0.34, 0.33, 0.32) with a random green-grey tint, shaded by a five-octave value-noise grain and a broad blotch
layer. Joints are near-black (0.03) with a soft bevel into the face. The normal is tilted by the
grain's slope and by the bevel at each block edge. Below soot_height the stone darkens toward 0.12
of its colour, with the soot strongest at world height 0 and broken up by noise.
Two materials use it, and the fx_breath scene builds its castle from both: castle_stone (white
tint, the property defaults) and dragon_stone (tint (0.62, 0.66, 0.6), blocks 2.4 by 1.2,
roughness 0.8, soot up to height 1.0).
Properties
| Property | Type | Default | Meaning |
|---|---|---|---|
tint | color | [1, 1, 1, 1] | Multiplies the albedo (rgb). |
block_size | float2 | [1.3, 0.62] | Block width (x) and course height (y) in world units. |
roughness | float | 0.92 | Perceptual roughness of the whole surface. |
soot_height | float | 3.5 | World height below which soot stains darken the stone, rising in strength toward height 0. |
Scoped to this part · feeds back into the world's score.