The texture resyntheiser plugin may be useful: (
tutorial link ,
dl win ,
dl linux).
These are in menu->filters->map or enhance.
The enhance->'heal transparency' tool can fill in holes by analysing the surrounding texture for buildings or trees. I used it a bit when making mockup textures for a shader building facade idea. It can even copy-in small features.
The 'heal transparency' is likely not good enough to make textures visually continuous by putting copies of textures side by side and 'healing' the border region after making it transparent.
The map->uncrop tool seemingly can create and fill-in a border. That is, select a box leaving a x% border large enough to be a field, crop image to selection, and then uncrop enlarging by x%. Not used it before.
The map->resynthesise tool will /recreate/ the entire image preserving larger scale features! Maybe useful to create several variant textures with their own vegetation masks - by using different aerial images of the same land class, or maybe by applying several times if quality isn't degraded too much. That should further reduce the same-ness.
AIUI the perceived sameness needs a texture large enough so a large scale 'unit' repeats. The unit could be fields of similar quality, combinations of different types of fields with contrasting colours, or combinations of fields and woodlands. Some large scale features like a large part of the texture being dry/parched can ruin the illusion, as can singular features. AIUI Such large scale or singular features can be done shader-side with noise or textures.
This is a resynthesiser reconstruction of a existing fgdata texture with different settings:
album. It does a reasonable job, and is tileable.
Edit: After playing around with it, for our purposes the best results are with minimum sensitivity to outliers to preserve detail density. I get /excellent/ results with the test texture.
Original:
https://i.imgur.com/lEhqlIZ.jpgSensitivity: 0.01, neighborhood size: 100 (max), search thoroughness: 500 (max):
https://i.imgur.com/rAk7tXJ.jpgApplying again on previous output to get a 2nd texture for variety (reasonable results):
https://i.imgur.com/Hts5Ulv.jpgIt does take a few minutes for a 2048 by 2048 texture. Can be left to run in background. Using a smaller part of a texture to test will be faster.
A possible manual version(?) for comparison or to fix problem areas: select and delete fields on all borders by using 'intelligent scissors' selection tool and/or the free select tool (slow). Manually tile the texture in a big image. Copy/paste from a collection of individual fields (slow to make) into deleted border areas with rotations. Spaces in-between fields can be filled with whatever lies in-between like dirt/trees/bushes. Only two borders need to be done: the filled-in areas from adjacent textures can be moved to fill the other side.
I'm not a digital artist, so there might be better or more elegant ways of using tools in this plugin to solve this.
The issue is there is 1 mask for 1 vegetation type (AIUI?). Agriculture has at least 2 types: crops & wind barrier trees lining fields. Also striking features that occur less often need to be deleted to keep small textures tileable.
A GPU side procedural agriculture effect with lots of variety & detail might(?) be able to randomly segment & rotate both the texture /and/ the vegetation mask. Each crop field would have a ID mask with a number from 0-255. The ID mask could be easily used as a PRNG seed giving random crop orientation, different crop & agriculture types, crop cycles/rotation, and bare fields. This would preserve crop fields, field boundaries, and windbreak trees. But it would need lots of vegetation to be created at the highest density needed for windbreaks/woodlands/crops. The tree vertex shader could snap to a grid, change from crops to trees, or discard based on the same re-mixing of the mask texture. Every way seems to have unavoidable drawbacks.
Kind regards