2
我正在编写一个简单的赛车游戏。在尝试在场景中添加阴影时,通过绘制黑色透明多边形,我发现自己陷入了一个奇怪的问题。透明多边形使底层表面透明
当在水平表面上绘制阴影时,当我从远处看它们时,我可以看到表面,就好像它们是透明的。
void PolyShadow::Draw(){
glColor4f(0,0,0,0.5f);
glEnable (GL_BLEND);
glBlendFunc (GL_DST_COLOR,GL_ONE_MINUS_SRC_ALPHA);
this->drawShadow();
glDisable (GL_BLEND);
shadow_initialized = true;
}
为了避免冲突,我分配到投射阴影不同shadow_offset任何对象,绘制阴影
glEnable(GL_POLYGON_OFFSET_FILL);
//call to object.drawShadows()
glDisable(GL_POLYGON_OFFSET_FILL);
而且
void Object::drawShadows(){
glPolygonOffset(-1.0-shadow_offset,-1.0-shadow_offset);
//Draw shadow
}
我也试图与
之前拨打这通电话glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
但没有改变。
在此先感谢
非常感谢!我会努力的 – 2010-12-05 18:21:35