屏幕分辨率为16位色时,指定透明色为清除色,glClear无法清除alpha位,alpha始终是255,即不透明。
屏幕分辨率为32位时,正常。
PIXELFORMATDESCRIPTOR pixelDesc=
{
sizeof(PIXELFORMATDESCRIPTOR), // nSize
1, // nVersion
//PFD_DRAW_TO_BITMAP|PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL, // dwFlags
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER, // dwFlags
PFD_TYPE_RGBA, // iPixelType
24, // cColorBits
0, // cRedBits
0, // cRedShift
0, // cGreenBits
0, // cGreenShift
0, // cBlueBits
0, // cBlueShift
8, // cAlphaBits
0, // cAlphsShift
0, // cAccumBits
0,0,0,0, // cAccumRedBits,cAccumGreenBits,cAccumBlueBits,cAccumAlphaBits
0, // cDepthBits
0, // cStencilBits
0, // cAuxBuffers
PFD_MAIN_PLANE, // iLayerType
0, // bReserved
0,0,0 // dwLayerMask,dwVisibleMask,dwDamageMask
}; int nGLPixelIndex = ChoosePixelFormat(hDC,&pixelDesc);...glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);另外再问个问题,在使用2维纹理时,当前颜色为什么会影响纹理图像的颜色?
比如glColor4f(0.0,0.0,0.0,0.0)后,再使用纹理填充多边形后,就看不到纹理了。万分感谢!
屏幕分辨率为32位时,正常。
PIXELFORMATDESCRIPTOR pixelDesc=
{
sizeof(PIXELFORMATDESCRIPTOR), // nSize
1, // nVersion
//PFD_DRAW_TO_BITMAP|PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL, // dwFlags
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER, // dwFlags
PFD_TYPE_RGBA, // iPixelType
24, // cColorBits
0, // cRedBits
0, // cRedShift
0, // cGreenBits
0, // cGreenShift
0, // cBlueBits
0, // cBlueShift
8, // cAlphaBits
0, // cAlphsShift
0, // cAccumBits
0,0,0,0, // cAccumRedBits,cAccumGreenBits,cAccumBlueBits,cAccumAlphaBits
0, // cDepthBits
0, // cStencilBits
0, // cAuxBuffers
PFD_MAIN_PLANE, // iLayerType
0, // bReserved
0,0,0 // dwLayerMask,dwVisibleMask,dwDamageMask
}; int nGLPixelIndex = ChoosePixelFormat(hDC,&pixelDesc);...glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);另外再问个问题,在使用2维纹理时,当前颜色为什么会影响纹理图像的颜色?
比如glColor4f(0.0,0.0,0.0,0.0)后,再使用纹理填充多边形后,就看不到纹理了。万分感谢!
解决方案 »
- 怎么向listcontrol输入 文本内容
- 关于TCP/IP模型基础知识
- 通信压缩加密算法。
- 请教,MaxThon里"遨游设置中心"界面是如何实现的啊?
- CPropertyPage 如何得到 Finish 事件?
- 线程启动后,cpu使用率始终在97%左右,为什么呢?
- 接收缓冲区设置为0后的情况
- 请教关于用程序的方法实现odbc数据源的连接
- 做为几个View的切换,我做了以下这个函数,但是却出现了一个怪问题,有空大家研究研究
- 我学计算机的,刚学完C++,看了几天VC,把MFC给的类和成员函数弄明白是不是VC的主要目的,或者是第一步?谢谢。
- 求教freetype描边问题
- 如何实现用MFC在对话框中进行opengl绘图
第二个问题,顶点坐标应用纹理的时候可以指定混合方式。如
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
我看应该换成
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
才是你需要的。
感谢jiangcaiyang123,你帮助解决了第二个问题。
对第一个问题,即使使用glDrawPixels都无法修改Alpha值,莫非16位分辩率下OpenGL的帧缓存没有Alpha位?