All five of these extensions deal with textures in the following ways:
The first four extensions support floating-point textures, that is, textures whose components
are floating-point values.
OES_texture_float
means 32-bit floating point textures with nearest-neighbor
filtering.
OES_texture_float_linear
means 32-bit floating point textures with linear
filtering.
OES_texture_half_float
means 16-bit floating point textures with nearest-neighbor
filtering.
OES_texture_half_float_linear
means 16-bit floating point textures with linear
filtering.
See texture_float,
texture_float_linear,
and ARB_texture_float
(which OES_texture_float_linear
is based on)
in the OpenGL ES Registry.
Three.js checks for these extensions (and outputs error messages if necessary) in order
to enable their functionality.
The last extension (called EXT_texture_filter_anisotropic
) provides support for anisotropic filtering, which can provide better quality
when filtering some kinds of textures.
Registry: https://www.khronos.org/registry/gles/extensions/EXT/texture_filter_anisotropic.txt
This page
includes a visualization of this filtering.
Here too, Three.js checks for this extension to see if it can be used.
For all these extensions, it depends on your application
whether it makes sense to "go about altering Three.js". For instance,
does your application require floating-point textures for some of its effects? (You can check for
that by checking if you use THREE.HalfFloatType
or THREE.FloatType
.)
Although Three.JS checks for these extensions, it doesn't inherently rely on these extensions in order to work, and only at least one example requires their use. Therefore, the issue is not so much to modify Three.js as it is to modify your application. Nonetheless, here, in WebGLExtensions.js, is where the warning is generated.