- Home /
GUI.DrawTexture Artifacts
I have a simple shape created with Inkscape. The shape is then exported to PNG format in 64x64 resolution. When I open the image in Photoshop, it looks the same (black background added as a PS layer below to show that the shape does not contain artifacts). Take a look at what the shape looks like in Inkscape and in PS.
But when I draw this texture inside Unity, I get this runtime artifact:
The texture rendered has some kind of a frame border along the bottom side of the texture. The texture file itself does not contain such line. This image is zoomed to 300% to make the line more visible.
The code used to render this:
float linkSize = 40;
Rect position = new Rect(200, 25, linkSize, linkSize);
GUI.DrawTexture(position, linkTexture);
The linkTexture
is set as a public field from Inspector.
I have used 200, 25
coordinates here even though the position is actually calculated at runtime to center it in its parent, but it is simplified here for brevity. The other thing I noticed is that if I vary the linkSize, the artifact line is visible from only 35
to 45
pixels. At image scale of 34x34
or 46x46
, the line is gone. However, again after some 70
pixels of size, the line is visible again.
I am aware that scaling can mess up pixels because of aliasing, but why does this happen in a transparent area?
Is there any solution to this problem?
Answer by Graham-Dunnett · Aug 16, 2013 at 02:23 PM
Set the texture's wrap mode to `Clamp`.
Yup, this solved it. I thought this mode makes sense only when a texture is applied to the mesh. But I guess, under the hood, even GUI draws are probably drawn on a on-the-fly created meshes... Not sure, though.
Your answer
![](https://koobas.hobune.stream/wayback/20220613112335im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
GUI Texture scale and position according to the actual screen resolution.. 11 Answers
Model Cut Artifacts 0 Answers
Drawing bullets using GUITextures 1 Answer
Graphical artifacts 1 Answer
Scaling guitexture gameobject 1 Answer