Long shot, but I know in photoshop when you scale an image that is in a layer anti aliasing can mess around with the border pixels, so make sure you scale the original tiling texture in a flattened document, then copy and paste it in the main file.
Other than that might be snapping your UVs to the pixels.
Hmm, there is no such thing has parts of pixels, so no.
Is this piece the one with your tile covering the entire uv shell? If it tiles perfectly in photoshop then it is your uv island that is causing the issue.
Not sure why this hasn't been mentioned yet, but I don't see any reason to have a seamlessly tiling texture paired with a non-seamless texture (unless it's a trim piece). Why don't you just make it a separate texture altogether? That will eliminate your problem and time wasted trying to get it to look perfect. You can put other parts of your scene's UVs in its place with no problems, and it'll probably take less time trying to get it to look right.
Now if your wrapping image is part of another image, the pixels around the wrapping section become really important. If your wrapping section is black, this is what the source image might look like:
056760
and when you zoom in, instead of wrapping mid-pixels from 5 to 6 again, you get a dark line:
(The problem here is two 6.0 in a row -- here it's much less obvious than with the black, but with a 2D texture the seam would be more obvious.)
Because here, the edge pixel is padded with the same value, so when it wraps it uses the same values as the edge for half-pixels.
So the solution is to use a padded section, where padding uses the wrapped image. Here's an example:
Note that the padding is bigger than 1 pixel. If you just have a one pixel padding, when you zoom out your mipmaps will blur with the black edges and you'll have basically the same issue as when you zoom in.
Replies
Other than that might be snapping your UVs to the pixels.
Is this piece the one with your tile covering the entire uv shell? If it tiles perfectly in photoshop then it is your uv island that is causing the issue.
The reason you need to do this is linear interpolation.
Imagine a horizontal row of pixels in a seamless, tiled image:
5 6 7 6
When they wrap, the edge pixels look nice and wrap consistently:
5 6 7 6 5 6 7 6 5 6 7 6
When you zoom in on the pixels, the extra pixels get filled with blended values in between the raw pixel colours:
5.0 5.5 6.0 6.5 7.0 6.5 6.0 5.5 5.0 5.5 6.0 6.5 7.0 6.5 6.0 5.5 5.0 5.5
Now if your wrapping image is part of another image, the pixels around the wrapping section become really important. If your wrapping section is black, this is what the source image might look like:
0 5 6 7 6 0
and when you zoom in, instead of wrapping mid-pixels from 5 to 6 again, you get a dark line:
5.0 5.5 6.0 6.5 7.0 6.5 6.0 3.0 5.0 5.5 6.0 6.5 7.0 6.5 6.0
because the pixel after 6 is 0, the half-pixel is 3.0!
If you add edge padding, the edge padding can't just be the edge pixels repeated because then you get a discontinuity (seam):
5.0 5.5 6.0 6.5 7.0 6.5 6.0 6.0 5.0 5.5 6.0 6.5 7.0 6.5 6.0
(The problem here is two 6.0 in a row -- here it's much less obvious than with the black, but with a 2D texture the seam would be more obvious.)
Because here, the edge pixel is padded with the same value, so when it wraps it uses the same values as the edge for half-pixels.
So the solution is to use a padded section, where padding uses the wrapped image. Here's an example:
Note that the padding is bigger than 1 pixel. If you just have a one pixel padding, when you zoom out your mipmaps will blur with the black edges and you'll have basically the same issue as when you zoom in.