D
dcsdcs
Unregistered / Unconfirmed
GUEST, unregistred user!
关于opengl的黑色表示透明问题,为什么在VC和delphi6当中差别很大.
在VC当中启用下面的程序可以达到效果:
1 glEnable(GL_BLEND);
2 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
3 glEnable(GL_ALPHA_TEST);
4 glAlphaFunc(GL_GREATER, 0);
……………………贴图
5 glDisable(GL_ALPHA);
6 glDisable(GL_BLEND);
但是在delphi当中:2句产生的是不透明效果,修改成其他参数可以透明。
两个透明的差别:
delphi会和背景产生融合,
而vc不会与背景产生融合,
比如你在红色地毯上面放一片绿色叶子(采用矩形贴图),
黑色都已经去掉。在delphi当中叶子是黄色,而vc是绿色,
不要告诉我采用像素操作。
在VC当中启用下面的程序可以达到效果:
1 glEnable(GL_BLEND);
2 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
3 glEnable(GL_ALPHA_TEST);
4 glAlphaFunc(GL_GREATER, 0);
……………………贴图
5 glDisable(GL_ALPHA);
6 glDisable(GL_BLEND);
但是在delphi当中:2句产生的是不透明效果,修改成其他参数可以透明。
两个透明的差别:
delphi会和背景产生融合,
而vc不会与背景产生融合,
比如你在红色地毯上面放一片绿色叶子(采用矩形贴图),
黑色都已经去掉。在delphi当中叶子是黄色,而vc是绿色,
不要告诉我采用像素操作。