Am Samstag 10 März 2007 15:02 schrieb Fabian Bieler:
This patch implements D3DFMT_V8U8 and D3DFMT_Q8W8V8U8 via NV_TEXTURE_SHADER. This fixes some renderissues in Half-Life 2 with the DirectX9 path and the DirectX8 path via GLSL.
What do those formats provide that other formats do not provide? Signedness, or something else I missed?
It' mostely signedness but also from the specification: OpenGL's pixel map, color table, convolution, color matrix, histogram, and min/max are NOT performed on the HILO components or texture offset group pixel groups. (I'm not sure wether these operations are performed when shaders are enabled, though.) Also, even GL_HILO8_NV is internally represented by 16 bits per channel (at least according to the spec).
Using GL_NV_texture shader and GL_ATI_envmap bumpmap is definitly the way to go, but I am concerned about macos, where neither of those extensions exist.
Perhaps GL_NV_texture_expand_normal can help?