From: Irawati Sylvia (sylvi++at++imrc.kist.re.kr)
Date: 06/13/2005 17:40:29
Hi,
I have the program that uses CUBE Map texture for environment mapping.
If I used "setMultiImage" to set the image of the texture, it's OK.
Now I want to use FrameBuffer as the source of the texture.
I initialized the texture:
tex = new pfTexture();
tex->setFormat(PFTEX_CUBE_MAP, PF_ON);
tex->setFormat(PFTEX_SUBLOAD_FORMAT, PF_ON);
tex->loadMultiFile("./models/cm_left.bmp", 0);
tex->loadMultiFile("./models/cm_right.bmp", 1);
tex->loadMultiFile("./models/cm_top.bmp", 2);
tex->loadMultiFile("./models/cm_bottom.bmp", 3);
tex->loadMultiFile("./models/cm_back.bmp", 4);
tex->loadMultiFile("./models/cm_front.bmp", 5);
tex->setLoadOrigin(0, 0, 0);
tex->setLoadOrigin(1, 0, 0);
tex->setLoadSize(IMAGE_X, IMAGE_Y);
tex->setLoadMode(PFTEX_LOAD_SOURCE, PFTEX_SOURCE_FRAMEBUFFER);
tex->setFilter(PFTEX_MINFILTER, PFTEX_BILINEAR);
tex->setFilter(PFTEX_MAGFILTER, PFTEX_BILINEAR);
In every frame I called subloadMulti:
tex->subloadMulti(PFTEX_SOURCE_FRAMEBUFFER, NULL, 0, 0, IMAGE_Y, -1, 0,
0, IMAGE_X, IMAGE_Y);
tex->subloadMulti(PFTEX_SOURCE_FRAMEBUFFER, NULL, 1, IMAGE_X * 2,
IMAGE_Y, -1, 0, 0, IMAGE_X, IMAGE_Y);
tex->subloadMulti(PFTEX_SOURCE_FRAMEBUFFER, NULL, 2, IMAGE_X, IMAGE_Y
*2, -1, 0, 0, IMAGE_X, IMAGE_Y);
tex->subloadMulti(PFTEX_SOURCE_FRAMEBUFFER, NULL, 3, IMAGE_X, 0, -1, 0,
0, IMAGE_X, IMAGE_Y);
tex->subloadMulti(PFTEX_SOURCE_FRAMEBUFFER, NULL, 4, IMAGE_X * 3,
IMAGE_Y, -1, 0, 0, IMAGE_X, IMAGE_Y);
tex->subloadMulti(PFTEX_SOURCE_FRAMEBUFFER, NULL, 5, IMAGE_X, IMAGE_Y,
-1, 0, 0, IMAGE_X, IMAGE_Y);
But when I run it, there's no texture.
I read in the manual pages of performer about PFTEX_CUBE_MAP.
It mention that:
"Other than having 6 images, the cube maps are used as any other
pfTexture.
The exception is that subloads from other sources than user specified
memory are not supported. "
Any idea on how to use cube map using frame buffer?
Thanks...
- sylvi -
This archive was generated by hypermail 2b29 : Mon Jun 13 2005 - 17:40:34 PDT