X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 243 (tree) |
|---|---|
| Time | 2020-05-04 17:26:02 |
| Author | |
エフェクト描画時にZバッファの処理を切り替えることで同描画処理を改善
| @@ -321,7 +321,7 @@ | ||
| 321 | 321 | // 完全に透明なピクセルは描画しない |
| 322 | 322 | pd3dDevice->SetRenderState(D3DRS_ALPHAREF, (DWORD)0x00000001); |
| 323 | 323 | pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); |
| 324 | - pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL); | |
| 324 | + pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER); | |
| 325 | 325 | } |
| 326 | 326 | |
| 327 | 327 | //深度バッファ比較関数 |
| @@ -1474,6 +1474,20 @@ | ||
| 1474 | 1474 | pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); |
| 1475 | 1475 | } |
| 1476 | 1476 | |
| 1477 | +//! @brief エフェクト描画用設定 | |
| 1478 | +void D3DGraphics::StartEffectRender() | |
| 1479 | +{ | |
| 1480 | + //深度バッファ比較関数 無効化 | |
| 1481 | + pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, FALSE); | |
| 1482 | +} | |
| 1483 | + | |
| 1484 | +//! @brief エフェクト描画用設定を解除 | |
| 1485 | +void D3DGraphics::EndEffectRender() | |
| 1486 | +{ | |
| 1487 | + //深度バッファ比較関数 有効化 | |
| 1488 | + pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, TRUE); | |
| 1489 | +} | |
| 1490 | + | |
| 1477 | 1491 | //! @brief 画面の明るさを設定 |
| 1478 | 1492 | //! @param Width 幅 |
| 1479 | 1493 | //! @param Height 高さ |
| @@ -2242,6 +2242,18 @@ | ||
| 2242 | 2242 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
| 2243 | 2243 | } |
| 2244 | 2244 | |
| 2245 | +//! @brief エフェクト描画用設定 | |
| 2246 | +void D3DGraphics::StartEffectRender() | |
| 2247 | +{ | |
| 2248 | + glDisable(GL_DEPTH_TEST); | |
| 2249 | +} | |
| 2250 | + | |
| 2251 | +//! @brief エフェクト描画用設定を解除 | |
| 2252 | +void D3DGraphics::EndEffectRender() | |
| 2253 | +{ | |
| 2254 | + glEnable(GL_DEPTH_TEST); | |
| 2255 | +} | |
| 2256 | + | |
| 2245 | 2257 | //! @brief 画面の明るさを設定 |
| 2246 | 2258 | //! @param Width 幅 |
| 2247 | 2259 | //! @param Height 高さ |
| @@ -298,6 +298,8 @@ | ||
| 298 | 298 | void CleanupMapdata(); |
| 299 | 299 | void RenderModel(int id_model, int id_texture, bool darkflag); |
| 300 | 300 | void RenderBoard(int id_texture, float alpha); |
| 301 | + void StartEffectRender(); | |
| 302 | + void EndEffectRender(); | |
| 301 | 303 | void ScreenBrightness(int Width, int Height, int Brightness); |
| 302 | 304 | void RenderCenterline(); |
| 303 | 305 | void Renderline(float x1, float y1, float z1, float x2, float y2, float z2, int color); |
| @@ -2959,6 +2959,7 @@ | ||
| 2959 | 2959 | } |
| 2960 | 2960 | |
| 2961 | 2961 | //エフェクト描画 |
| 2962 | + d3dg->StartEffectRender(); | |
| 2962 | 2963 | /* |
| 2963 | 2964 | for(int i=0; i<MAX_EFFECT; i++){ |
| 2964 | 2965 | EffectIndex[i].Render(d3dg); |
| @@ -2969,6 +2970,7 @@ | ||
| 2969 | 2970 | for(int i=0; i<cnt; i++) { |
| 2970 | 2971 | EffectIndex[ data[i].id ].Render(d3dg); |
| 2971 | 2972 | } |
| 2973 | + d3dg->EndEffectRender(); | |
| 2972 | 2974 | } |
| 2973 | 2975 | |
| 2974 | 2976 | //! @brief オブジェクトログの描画処理 |