I have a game where the ground is represented by a very large plane. It is a flying game so the ground is seen from far distances as well as up close. When up close the texture appears to jump/flicker alot, and i’ve read this is cause by the UV scale. This is just a simple plane in unity and wasn’t created in another program. I’m not sure how to fix this as I can’t adjust UV settings with out changing the scale.
From everything i read it seems to be from overloading UV values, if it isn’t how do i use trilinear filtering? is this a global setting, or does it have to do with the material or shader.
Also, how would i go about getting a low vert plane? would i have to make one in a 3d program?
I’d like to see some of your sources on this; I don’t believe I’ve run into the problem. I’d also like to see your problem in action (screenshot/video).
Thanks, i’ll try the trilinear setting and post I video of the problem if that doesn’t work. It will be a few days before I’m back at my computer. I’ll update then.
For my plane the tiling needs to be set to about 5000x5000, it works fine in unity, it just messes up on the device. I could post some screens but that doesn’t really show the flickering of the texture. I don’t know of a good way to video the device itself, I guess I could just use a camera.
That’s a lot. Assumedly you’ll only see a very small portion of that at once; I’d recommend breaking up a larger mesh into multiple materials, all with the same settings, but Unity iPhone still registers submeshes as draw calls, even if they are outside the visible frustum. If you try to use separate meshes, the seams will be wonky. I don’t have a good solution for you. I’ve never done anywhere near that amount of tiling.
I think i’ve got workable solution. I still need my huge plane, it acts as horizon and background, but directly under the main charater, i’m shuffling a series of planes along with him and have them just over the main surface so these 1x1 tiles display fine and hide the worst of the flickering of the large one when up close. I actually may make the larger plain a solid color, since its just a texture of green grass.
Thanks for the tip on the unity plane, i was just staring to put quite a few planes to hold some decoration graphics.
3D rasterization hardware has very specific limits for UV coordinates because deep down in the HW they can be represented by fixed point numbers or special format “floats”. You often see this when tiling textures or if you have a texture matrix that generates “large” UV coordinates (funky projections). The symptoms are much like you describe - textures that jerk, lurch or look sheared or even blocky. The actual value ranges that the vendors recommend is often in their developer documentation (see PowerVRInsider.com) but as a ballpark - assume there are <= 16 bits of UV precision. Also assume that the UV iterator can access each texel of a maximum size texture so on iPhone it’s 1024x1024 (that’s 10 bits = 2^10) so with no repeat addressing you get about 10.6 fixed point. One repeat would take 11.5 fixed point… etc. This is merely back-of the envelope, real HW is complex, but that should give you a good idea of how it acts.
Short answer - try not to repeat/tile UV coordinates more than a very few times or so IMO. Either make smaller UV coordinates in your modeling package, generate them on the fly into the verts, or use a texture matrix to generate them (but in either of those cases you must “wrap” the coordinates yourself).
we are also facing this kind of issue on IOS devise. In over case we make racing game for IOS devise and we already make many tracks for that. now when we build for devise. Texture start blurry when player cover around 1 km and when player reach to end of that track its look too much blurry. We tile our road texture in 3d software so developer do not need to add till in unity.
Is that any other solution without overlapping textures? For that we have to add more cuts in mesh. Its increase our game mesh budget.