Yesterday I was trying to find a way to access render target data and use that for shader effects. Before checking reference I did a quick search thinking this is a common thing and should get at least few results and some ideas how to go about. I got nothing except a few posts about Multiple Render Targets, which is really odd. The graphic card's main purpose is to create this resource and display it. But to get another copy of it I would have to render the scene twice, which by any sane logic is far from acceptable. So the next thing I tried is creating a 2d array inside the shader code. Since I'm passing this data to the target anyway and have all the info I need (the color value and its corresponding coordinate in homogeneous clip space), might as well save it on the way (just before "return color" in pixel shader). Seemed simple enough, but the compiler doesn't let you create arrays larger than 65 thousand and something elements and on top of that - Texture2D can only be read (not modified) inside shader code. Why?!
I also tried a quick workaround test - Setting resolution to 960 x 600 and using 10 arrays , which turns out to be a big no-no because it makes the compiler just stand in awe when I press compile. I'm not kidding. I have to cancel the build to get back.
4096x4096 texture map - no problem, 960x60 (float3) array - O.o
And why wouldn't you be able to write data to Texture2D object from within? I was planing to base all of my effects on this.
Have I searched for information incorrectly or is this basically it?