美好的一天,我親愛的社區。動態2d陰影 - 混合問題
我正在爲一款遊戲開發動態陰影,但是由於它經常發生,我會帶給你一個問題,希望(我確信)有人會提供幫助。
這就是我現在:
注意紅色正方形,我希望它逐漸淡出作爲光源移出視線。我確實檢查多邊形的一個點是否在圓的半徑內,但這當然不能解決它;正如我所說的,我希望它逐漸消退,直到它完全熄滅。如果光線太遠。
我的想法有一個想法,但我希望有一個更好的想法。我不會談論它,因爲它確實是最後的選擇,我覺得它是一種「蠻力」技術。
這是我如何渲染我的光:
glBegin(GL_TRIANGLE_FAN);
{
Graphics::Instance()->SetColor(r_,g_,b_,intensity_);
glVertex2f(posX_,posY_);
glColor4f(0.f, 0.f, 0.f, 0.0f);
for (angle_=0.0; angle_<=3.14159265*2; angle_+=((3.14159265*2)/64.0f))
{
glVertex2f(range_*(float)cos(angle_) + posX_,
range_*(float)sin(angle_) + posY_);
}
glVertex2f(posX_+range_, posY_);
}
這就是我如何融入它:
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
l0->Render();
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
l0->ProjectShadow(*mmm);
l0->ProjectShadow(*bb);
這是所有。如果我沒有說清楚,或者如果我錯過了發佈相關代碼,請儘量說,不要低估。
如果你想堅持固定功能流水線,那麼使用光衰參數怎麼樣? (請參閱glLightf手冊)。 – datenwolf 2011-05-11 12:28:41