Hi Guys.
I am trying to render directly to Pbuffer to realize dynamic texture mapping.
My code works well. But the problem is: I request is 24 bit RGB and 24 depth bit.
But the reslut seems that it only give me 256 color.
I use nividia Geforce 3. My pbuffer initialization is as follows:
iattributes[niattribs]= WGL_DRAW_TO_PBUFFER_ARB;
iattributes[++niattribs] = GL_TRUE;
iattributes[++niattribs] =
WGL_BIND_TO_TEXTURE_RGBA_ARB;
iattributes[++niattribs] = GL_TRUE;
iattributes[++niattribs] = WGL_SUPPORT_OPENGL_ARB;
iattributes[++niattribs] = GL_TRUE;
iattributes[++niattribs] = WGL_PIXEL_TYPE_ARB;
iattributes[++niattribs] = WGL_TYPE_RGBA_ARB;
iattributes[++niattribs] = WGL_COLOR_BITS_ARB;
iattributes[++niattribs] = 24;
// 24-bit color bit except Alpha plane
iattributes[++niattribs] = WGL_DEPTH_BITS_ARB;
iattributes[++niattribs] = 24;
iattributes[++niattribs] = WGL_RED_BITS_ARB;
iattributes[++niattribs] = 8;
iattributes[++niattribs] = WGL_GREEN_BITS_ARB;
iattributes[++niattribs] = 8;
iattributes[++niattribs] = WGL_BLUE_BITS_ARB;
iattributes[++niattribs] = 8;
iattributes[++niattribs] = WGL_ALPHA_BITS_ARB;
iattributes[++niattribs] = 0;
iattributes[++niattribs] = WGL_STENCIL_BITS_ARB;
iattributes[++niattribs] = 1;
if ( !wglChoosePixelFormatARB( hdc, iattributes, fattributes, MAX_PFORMATS, pformat, &nformats ) )
{
cerr <<"pbuffer creation error: wglChoosePixelFormatARB() failed.
";
WglGetLastError();
}
if ( nformats <= 0 )
cerr << "pbuffer creation error: Couldn't find a suitable pixel format.
";
format = pformat[0]; //it give me 48.