CesiumGS/cesium
Feature ID Textures ignore sampler wrap mode
Fechada
#11.574 aberto em 19 de out. de 2023
category - model/gltfgood first issuetype - bug
Métricas do repositório
- Stars
- (11.758 estrelas)
- Métricas de merge de PR
- (Mesclagem média 15d 12h) (23 fundiu PRs em 30d)
Description
Feature ID textures are allowed to have any wrap mode, but CesiumJS incorrectly overrides this with CLAMP_TO_EDGE.
In GltfLoader there is this chunk of code for feature ID textures:
const textureInfo = gltfFeatureIdTexture.texture;
featureIdTexture.textureReader = loadTexture(
loader,
gltf,
textureInfo,
supportedImageFormats,
frameState,
Sampler.NEAREST // Feature ID textures require nearest sampling
);
The last parameter for that function is samplerOverride, which replaces the original texture.sampler with the provided one.
In Sampler.js:
Sampler.NEAREST = Object.freeze(
new Sampler({
wrapS: TextureWrap.CLAMP_TO_EDGE,
wrapT: TextureWrap.CLAMP_TO_EDGE,
minificationFilter: TextureMinificationFilter.NEAREST,
magnificationFilter: TextureMagnificationFilter.NEAREST,
})
Instead of completely replacing the old sampler with the new one, only the minificationFilter and magnificationFilter should be overriden.