Saving the correct height to a separate render target required a few solutions to different problems.
Near far sampling -
Up close, trees should show a gradient from 0 to the relative maximum value. This height value is calculated by dividing the current pixel height by the maximum pixel height, giving a height value in the [0,1] range.
This calculation quickly breaks down when trees are viewed from farther away, as the current pixel height range is smaller-
Rather than sampling from the bottom of the tree, we would want to sample from the middle as distance grows - Thus a solution to this problem is to take the average value between the relative maximum height and the current height value-
(is this really that good of a solution?? ... does not give full range??)
The maximum amount of displacement occurs when viewing trees from the side, and no displacement occurs when looking down on the trees. The height calculation is taken care of in the general height formula, but the correct height value is not saved to the forest volume layer.
When looking from the side, there should be a gradient with height values from 0 to the max height of the tree. When looking above, only the value of the maximum height should be seen.
This problem is soluved a linear interpolation between the current hight value and the relative maximum hight value based on the ViewUp dot product value-
|Height saved to displacement map|
Having correct sampling and smearing of tree height / shape is a critical step in implementing this process. So far this process looks smooth and transitions fluidly with the camera constraints-
Now with proper height or y values, we need x values to determine how to sample tree color-
|Forest Height Map with Offset values|
Rendering the offset value to the displacement map gives x and y coordinates to sample from a displacement texture-
|Displacement Map with x and y texture coordinates|
Rendering the tree color texture with the coordinates from the displacement map allows for dynamic coloring of the displacement map-
|Forest Color Texture|