Hi,

On Tue, 2005-10-11 at 13:45 +0200, Oliver Kutter wrote:
> Hi Gerrit,
> 
> that would have been to beautifully, if that would had worked completely 
> at once.
> 
> Yes, it works, but not really. At the beginning, I put my particle 
> positions (as float texture) initially to the shader and want to compute 
> their new positions. For this texture I have the following properties. 
> Target: GL_TEXTURE_2D, InternalFormat: GL_RGBA32F_ARB. In the shader, I 
> access the sampler2D texture by the texture2D command.
> 
> I use your glReadBuffer to get some kind of output for the current 
> positions stored in that texture, initially they are like this:
> 
> 45.078125 3.000000 50.000000 0.000000
> 45.234375 3.000000 50.000000 0.000000
> 45.390625 3.000000 50.000000 0.000000
> 45.546875 3.000000 50.000000 0.000000
> 45.703125 3.000000 50.000000 0.000000
> 45.859375 3.000000 50.000000 0.000000
> 46.015625 3.000000 50.000000 0.000000
> 46.171875 3.000000 50.000000 0.000000
> 46.328125 3.000000 50.000000 0.000000
> 46.484375 3.000000 50.000000 0.000000
> 
> This output is correct!
> 
> Then I write the positions back to the texture. In the next Rendering 
> pass, I want to load the output texture (GL_TEXTURE_RECTANGLE_NV, 
> GL_FLOAT_RGBA32_NV) as input texture and that does not work, because the 
> properties are not correct.
> Thus, I changed the properties of my first input texture to the 
> properties of the output texture. In the shader, I changed sampler2D to 
> sampler2DRect and the texture2D command to texture2DRect.
> 
> But now my particle positions are initially all the same (all like the 
> first position of the correct output above), like this:
> 
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 45.078125 3.000000 50.000000 0.000000
> 
> Do you have an idea, why? Do I have to do something with the texture 
> coordinates?

most likely, normal texture coordinates (minus wrapping) are between 0
and 1, for GL_TEXTURE_RECTANGLE_NV this changes to 0 - texture width and
0 - texture height. So if you switched to texture2DRect and were still
using old 0 - 1 texture coordinates you should get the result you see.
The easiest test would be to modify the fragment program from

texture2DRect(sampler, vec2(x, y)); // x,y {0 - 1}

to 

texture2DRect(sampler, vec2(x * textureWidth, y * textureHeight));

if this gives you the expected results the problems are indeed the
different texture coordinates. 


regards,
  gerrit





-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to