To make a realistic river we 2 things beside the actual river:
1. Riverbanks in the basic terrain to make the river look like it's deeper than the surrounding terrain.
2. A riverbed texture that shows through as sandbanks beside the river.
As a starting point we have a “Terrain” layer with our basic terrain texture. Then we create a new layer called “Basic” on top of the basic terrain and fill it with the color you want for the riverbed and the sandbanks. I chose R:178; G:161; B:84 for a sandy or muddy riverbed. Now that we have a filled layer we add a layermask to it and fill the layermask with black so that the whole layer is invisible and we see out basic terrain again.
To draw the shape of the river we choose a custom paintbrush tip (click on the displayed tip beside the arrow where you can select predefined tips) with following settings:
Diameter: ca 20px
For the color we choose pure white, select the layermask of our “Basic” layer and draw the river onto the terrain. Make sure that the points where your river enters the tile and the one where it exits again are at the same height so that the tile remains tilable. The best thing to adjust this is to apply the offset filter and fix the by drawing either black (erase) or white (draw) to the layermask of our “Basic” layer.
The next step is to create the basic riverbanks. We do this by making our terrain texture beside our river darker so that it looks like it descends towards the river.
First thing is to get the shape of our river, so we need to make a selection of our newly drawn layermask. To do this, we right click the layermask and select “Set Selection to Layermask”.
As an alternative you can switch from the layer toolbox to the channels toolbox. There our layermask is listed as “Basic Mask”. Select this “Basic Mask” layer and hit the “Load channel as selection” icon at the bottom left of the channels toolbox to create a selection from our layermask.
Now we have the selection we expand it to make the area that becomes our riverbanks wider. Therefor choose “Select→Modify→Expand…” from the main menu, enter an amount of 5 pixel there and hit “OK”. To smooth the transition choose “Select→Feather…” from the main menu and enter again 5 pixel. Now our whole river and a bit of the terrain on both sides of the river is covered by the selection. To make the terrain below our selection darker we select our “Terrain” layer and create a new adjustment layer on top of it by clicking the “Create new fill or adjustment layer” icon at the bottom of our layer toolbox (the black and white circle). Choose “Brightness/Contrast” from the opening menu and enter a brightness value of something between -50 and -20 depending on how steep you want your riverbanks.
The reason why we create an adjustment layer is that we can always tweak the steepness of our riverbanks through adjusting the brightness of the adjustment layer. Since we had an active selection when we created the adjustment layer, a layermask was added so that the layer applies only to the selected area. To find this layer again easily we rename it to “Riverbanks” (right click the adjustment layer and choose “Layer Properties”).
Our riverbanks still look a bit regular so we need to apply some filters to the layermask of our “Riverbanks” adjustment layer. There are two different filters depending on how fuzzy you want the transition from the riverbanks to your basic terrain and the border of your river. You also choose different filters for riverbanks and riverbed.
Copy the “Riverbanks” adjustmentlayer by dragging it to the “Create a new layer” icon (the one left beside the dustbin) at the bottom right of your layer toolbox. Hide the original “Riverbanks” layer by clicking on the eye on the left side.
Rename the new layer to “Smooth Riverbanks” and select its layermask. Choose “Filter→Distort→Ripple…”, set the size to “Large” and select an amount between 10 and 50% depending how rippled you want transition from your basic terrain to the riverbanks. A good value to start is 20 or 25%.
Now that we have some smooth rippled riverbanks we need to create the riverbed texture.
Therefor we make a copy of the “Basic” layer, rename the new layer to “Smooth Riverbed” and place it on top of the “Smooth Riverbanks” layer. Apply the “Ripple” filter with the same settings (you can try different values but the suggested are a good start) to the layermask of our “Smooth Riverbed” layer.
The procedures are the same than the ones for the smooth river but we apply the “Ocean Ripple” filter instead of the simple “Ripple”. Good values for the “Ocean Ripple” filter are a “Ripple Size” of 1 and a “Ripple Magnitude” of 2.
Finally we need a river layer, so we create a new layer on top of our riverbank and riverbed layers, rename it to “River” and fill it with the color you want to have for your river. I took R:29; G:45; B:74 for a dark blueish river. To get the shape of the river we right click on the layermask of our “Basic” layer and select “Set Selection To Layermask”. Now we have a selection with the shape of our river. To make the river blend nicely to our Riverbed we need to do some further tricks. First we expand the selection by choosing “Select→Modify→Expand…” from the main menu and enter a value of 1 pixel. Then we apply the selection to our river layer we select it and click the “Add a mask” icon to get a layermask with the shape of the selection. Now the river is this one pixel too wide so we apply a “Gaussian Blur” filter to the layermask of the “River” layer with a radius of 2,0.
To add the river tile some further eye candy we can tweak the riverbanks. Right now our riverbank has the same height all along the river. We can lower it by applying some smooth black brush strokes to the riverbank layermask. I took the Paintbrush tool with the smooth 27 pixel wide tip and an Opacity of 20%. Take pure black for the color and paint the areas of the “River” layermask where you want to lower the riverbank.
With a smaller (also soft) tip and the same Opacity you can draw a few sandy areas around some corners of the river or anywhere you like them by painting with black on the layermask of the “River” layer.
You can also readjust the steepness of the riverbanks by tweaking the brightness value of the Riverbank adjustment layer.
When you are not satisfied with the color of your river of the riverbed then simply make a selection from the layermask of the layer you want to tweak and create a new adjustment layer with Hue/Saturation settings. This way you have easy control of the complete color settings of your layer.