pbuffers + RGBA16

hi there,

i want to render sth to a pbuffer and need 16bits for each r/g/b/a channel. unfortunately, wglChoosePixelFormat(…) returns 0 available pixel formats.
are available pixel-formats hardware specific / would 4x16bpp be available on other graphics hardware (i’m using a geforce fx 5200) or is there nay other way to get the pixel format i need?

thanks,
demonoid

hi, the 5200 should deliver you your needed pixelformat. but you must use the WGL_NV_float_buffer and GL_NV_half_float Extensions to get it. look into this extensions and it should be working.

HTH )

consider searching the forum before posting a question.

These are things you need:

to get a pixelformat that allows you to render 16bit use:
wglChoosePixelFormatARB

You’ll likely also want to use pbuffers (search nvidia for pbuffer & pixelformat)

These are the pertinent extensions:

WGL_RED_BITS_ARB,16
WGL_GREEN_BITS_ARB,16
WGL_BLUE_BITS_ARB,16
WGL_ALPHA_BITS_ARB,16

on ATI:
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_FLOAT_ATI

on NVidia
WGL_FLOAT_COMPONENTS_NV, TRUE

if you want to bind to a 16bit pbuffer

on ATI:
WGL_BIND_TO_TEXTURE_RGBA_ARB, TRUE

on Nvidia
WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV, TRUE

and remember you can only use float buffers to get 16bit percision

On ATI R3XX based cards, you can get a 16bit/channel integer PBuffer.

Infact, here’s a complete pixel format list for my 9800 Pro:
http://www.area3d.net/nitrogl/results.html.gz

And the program I made to generate that:
http://www.area3d.net/nitrogl/PixelFormat.exe