1
\$\begingroup\$

I attempting to make my game have very detailed textures, and in general look pretty. However, I'm having some issues with that.

Let's take a look at a rock texture close up: Picture.

As you can see, this looks perfectly adequate for a 3D game up-close. However, I'm struggling to get this working at a distance: Picture

At a distance, the texturing looks obviously uniform, and looks very tiled and very bland. Picture

How can I solve this issue to make my textures look more detailed at all distances? I obviously have mipmapping enabled, but I don't understand why the texture looks so badly detailed and what I can do to improve it.

\$\endgroup\$
  • \$\begingroup\$ When you incorporate lighting and shadows, or even just faking it with some larger scale brightness variations, the "look" will start to come together more... You can start to get a sense of it by taking your still frames into photoshop or similar, and darken just the right side of each hill and object. There's fancier texture tricks to do also, but basic simplistic lighting will be a great boost. \$\endgroup\$ – david van brink Nov 9 '15 at 19:07
  • \$\begingroup\$ I will do things such as lighting and others, I would also like to know some sort of fancy texture tricks to make them look better far away, which \$\endgroup\$ – joehot200 Nov 9 '15 at 19:10
  • \$\begingroup\$ Automatic mip mapping helps reduce flickery aliasing as the samples are reduced. You can consider a further-range really-big texture that fades in at longer distances. Look at how, say, Google Maps fades from planet-view to houses-view as you get closer... \$\endgroup\$ – david van brink Nov 9 '15 at 20:37
  • \$\begingroup\$ Are you sure your mip mapping is working? \$\endgroup\$ – Yattabyte Nov 17 '15 at 15:52
  • 1
    \$\begingroup\$ @Yattabyte Why would I do that? This isn't a question asking for improvements on mipmapping, this is a question asking for techniques for greater texture detail further away. Providing code is useless for this question. \$\endgroup\$ – joehot200 Nov 17 '15 at 18:12
1
\$\begingroup\$

I don't know if this could help you, but this is everything I do for good MipMapping:

public int loadTexture(String fileName){
    Texture texture = null;
    try {
        texture = TextureLoader.getTexture("PNG", new FileInputStream("res/textures/"+fileName+".png"));
        GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D);
    //I preffer LINEAR_MIPMAP because depending of the distance, 
    //the textures will be seen better or "worst".
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR);
    //The more you increase the final value, the most the texture will be affected by the
    //AntiSotropic Filter, that also distorts the texture depending of the distance.
        GL11.glTexParameterf(GL11.GL_TEXTURE_2D, EXTTextureFilterAnisotropic.GL_TEXTURE_MAX_ANISOTROPY_EXT, 16.0f);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    int textureID = texture.getTextureID();
    return textureID;
}

Other thing that you could do is decrease the texture quality, add FXAA or even make Cell-Shadding techniques that doesn't need to distort anything.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.