Dear Donatas,
Thank you so much for looking into this!
Actually you did miss something: in your case you are showing the same
texture (this.tex) on both quads! To make it a bit more readable I changed
the code to the following without changing the logic/behaviour:
public class TestBehaviour : MonoBehaviour
{
public Texture2D origTexture;
public MeshRenderer leftQuad;
public MeshRenderer rightQuad;
private void Awake()
{
// _tex is a 2D Texture with mipmap displayed on left quad
leftQuad.material.mainTexture = origTexture;
// Create a texture without a mipmap
var copiedTexture = new Texture2D(origTexture.width,
origTexture.height, origTexture.graphicsFormat, 0,
TextureCreationFlags.None);
// copy full resolution texture (mip 0) and show it on right quad
Graphics.CopyTexture(origTexture, 0, 0, copiedTexture, 0, 0);
rightQuad.material.mainTexture = copiedTexture;
}
}
So you see `origTexture` in the left quad and `copiedTexture` in the right
quad. You would expect that they looked the same but it is not the case
unless you do the following before calling `CopyTexture`:
1. QualitySettings.masterTextureLimit = 0; // this fixes the bug Graphics
.CopyTexture(origTexture, 0, 0, copiedTexture, 0, 0);
So to make sure you understood correctly, the following code will show you
two different images (the right quad only having 1/4th of the resolution):
1. QualitySettings.masterTextureLimit = 1; // this triggers the bug. It
is equal to using `Fastest` quality settings Graphics.CopyTexture(
origTexture, 0, 0, copiedTexture, 0, 0);
Kind regards,
Jonas
Mobile: +49 1520 8336302
Office: +49 6131 4950813