Texture mapping questions

I want to render one origin texture to a new texture whose dimension is half of the origin texture.
if the origin texture is (5*5):
a1 a2 a3 a4 a5
b1 b2 b3 b4 b5
c1 c2 c3 c4 c5
d1 d2 d3 d4 d5
e1 e2 e3 e4 e5
the result texture should be (3 * 3):
a1 a3 a5
c1 c3 c5
e1 e3 e5

I have used the pbuffer to do it, as below

m_pbuffer_dest ->Activate();

glActiveTextureARB(GL_TEXTURE0_ARB);
glBindTexture(GL_TEXTURE_RECTANGLE_NV, m_tex_pbuffer_orgin);
m_pbuffer_orgin ->Bind(WGL_FRONT_LEFT_ARB);

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(0, 0);
glTexCoord2f(5 , 0); glVertex2f(3 , 0);
glTexCoord2f(5 , 5 ); glVertex2f( 3 , 3);
glTexCoord2f(0, 5); glVertex2f(0, 3);
glEnd();

m_pbuffer_orgin ->Release(WGL_FRONT_LEFT_ARB);

m_pbuffer_dest ->Deactivate();

I run it and got the result which is exactly correct.

and I change the origin texture (18 * 17) is :
a1 a2 a3 a4 a5 … a18
b1 b2 b3 b4 b5 … b18
c1 c2 c3 c4 c5 … c18
d1 d2 d3 d4 d5 … d18
e1 e2 e3 e4 e5 … e18

r1 r2 r3 r4 r5 …r18

the reulst should be (9 * 9):
a1 a3 a5 … a17
c1 c3 c5 … c17
e1 e3 e5 … e17

r1 r3 r5 …r17

but result I got is (9 * 9):
a2 a4 … a18
c2 c4 … c18
e2 e4 … e18

r2 r4 …r18

but if I changed the origin texture to 10 * 9 and the result texture(5 * 5) is correct!!

It mazed me , why ? I need your hlep.

For I’m in china , I maybe be sleeping when you read this topic because of time difference and I can not discuss with you
you can give mail me at chqiu@bbi.edu.cn

thank you.

[This message has been edited by autumn (edited 08-06-2003).]