Ah, I’m guessing that this is a mip-mapping issue (especially as disabling filtering helps): in short, the mip-maps include some grey in those areas due to downscaling.
One potential solution might, I think at least, be to extend the colour of the skybox a little further into the dark region than it already goes; this should result in the mip-map not reaching the dark area, if taken far enough.
Extend the image so that there is no black or transparent area.
Use 6 separate textures, one for each face.
Use a cube map - a real cube map, not a single texture with a big in it. This means splitting up into 6 separate images and loading it via loadCubeMap. The faces need to be in a particular order and orientation for this.
This is not suitable, since there is a side effect in the form of the difference of neighboring pixels. Alternatively, I can copy the pixel line to the other side if I need a static skybox, however I want to generate it with a shader.
This is too many passes for the shader.
Here again the same problem. For some reason it seemed to me on the contrary that a real cubic map should be whole. The engine should provide links to the faces after processing under the hood.
As for generating with the help of the GPU, I don’t need to render the entire size, it’s enough for me to drop the bottom part and draw the sides in half. And for these purposes, one texture is very well suited, in fact, calls to shader programs are reduced.
I am not sure what you mean by this, but the only way to get “perfect” filtering at edges (except using a different projection, which will have more distortion) is to use a cube map texture, because the GPU then has access to all 6 faces and knows how to sample pixels across face boundaries.