docs: two stale references in the ground material — the fade's name, and why two materials may share one cache key
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+15
-7
@@ -334,9 +334,10 @@ function groundDetailTexture(): THREE.DataTexture {
|
|||||||
texture.magFilter = THREE.LinearFilter;
|
texture.magFilter = THREE.LinearFilter;
|
||||||
// Mipmapped for the reason `swellNormalTexture` states: the mip chain of a
|
// Mipmapped for the reason `swellNormalTexture` states: the mip chain of a
|
||||||
// normal map converges on flat, so the ground a long way off stops perturbing
|
// normal map converges on flat, so the ground a long way off stops perturbing
|
||||||
// its normal without anything having to decide when — and `GROUND_DETAIL_FAR_M`
|
// its normal without anything having to decide when — and the fade at
|
||||||
// then finishes the job by taking the fetch's *result* to zero rather than
|
// `GROUND_DETAIL_NOISE_PX` then finishes the job by taking the fetch's
|
||||||
// leaving a residue of the coarsest mip on the horizon.
|
// *result* to zero rather than leaving a residue of the coarsest mip on the
|
||||||
|
// horizon.
|
||||||
texture.minFilter = THREE.LinearMipmapLinearFilter;
|
texture.minFilter = THREE.LinearMipmapLinearFilter;
|
||||||
texture.generateMipmaps = true;
|
texture.generateMipmaps = true;
|
||||||
// Eight, as the sea has: from a map pose the ground is seen at a grazing
|
// Eight, as the sea has: from a map pose the ground is seen at a grazing
|
||||||
@@ -537,10 +538,17 @@ mapN.xy *= normalScale * groundFlat * groundSeen;
|
|||||||
normal = normalize( tbn * mapN );`,
|
normal = normalize( tbn * mapN );`,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
// Two materials that compile to different programs must not share a cache
|
/*
|
||||||
// key, and `onBeforeCompile` is invisible to three's default key. Set only
|
* `onBeforeCompile` is invisible to three's default key, so a patched
|
||||||
// on the patched branch: an unpatched ground is an ordinary standard
|
* material that does not declare one gets handed somebody else's program.
|
||||||
// material and must go on sharing whatever key three gives it.
|
*
|
||||||
|
* The terrain and the shore plate both answer `"tera:ground"` and that is
|
||||||
|
* correct rather than a collision: `WebGLPrograms.getProgramCacheKey`
|
||||||
|
* appends this string to the *whole* parameter list, and `vertexColors`
|
||||||
|
* is in that list — so the two still hash apart, and two boards of the same
|
||||||
|
* kind still share. Set only on the patched branch: an unpatched ground is
|
||||||
|
* an ordinary standard material and must go on sharing three's own key.
|
||||||
|
*/
|
||||||
material.customProgramCacheKey = () => "tera:ground";
|
material.customProgramCacheKey = () => "tera:ground";
|
||||||
}
|
}
|
||||||
return material;
|
return material;
|
||||||
|
|||||||
Reference in New Issue
Block a user