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