• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。


Commit MetaInfo

Revision243 (tree)
Time2020-05-04 17:26:02
Authorxops-mikan

Log Message

エフェクト描画時にZバッファの処理を切り替えることで同描画処理を改善

Change Summary

Incremental Difference

--- trunk/d3dgraphics-directx.cpp (revision 242)
+++ trunk/d3dgraphics-directx.cpp (revision 243)
@@ -321,7 +321,7 @@
321321 // 完全に透明なピクセルは描画しない
322322 pd3dDevice->SetRenderState(D3DRS_ALPHAREF, (DWORD)0x00000001);
323323 pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
324- pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
324+ pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
325325 }
326326
327327 //深度バッファ比較関数
@@ -1474,6 +1474,20 @@
14741474 pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
14751475 }
14761476
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+
14771491 //! @brief 画面の明るさを設定
14781492 //! @param Width 幅
14791493 //! @param Height 高さ
--- trunk/d3dgraphics-opengl.cpp (revision 242)
+++ trunk/d3dgraphics-opengl.cpp (revision 243)
@@ -2242,6 +2242,18 @@
22422242 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
22432243 }
22442244
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+
22452257 //! @brief 画面の明るさを設定
22462258 //! @param Width 幅
22472259 //! @param Height 高さ
--- trunk/d3dgraphics.h (revision 242)
+++ trunk/d3dgraphics.h (revision 243)
@@ -298,6 +298,8 @@
298298 void CleanupMapdata();
299299 void RenderModel(int id_model, int id_texture, bool darkflag);
300300 void RenderBoard(int id_texture, float alpha);
301+ void StartEffectRender();
302+ void EndEffectRender();
301303 void ScreenBrightness(int Width, int Height, int Brightness);
302304 void RenderCenterline();
303305 void Renderline(float x1, float y1, float z1, float x2, float y2, float z2, int color);
--- trunk/objectmanager.cpp (revision 242)
+++ trunk/objectmanager.cpp (revision 243)
@@ -2959,6 +2959,7 @@
29592959 }
29602960
29612961 //エフェクト描画
2962+ d3dg->StartEffectRender();
29622963 /*
29632964 for(int i=0; i<MAX_EFFECT; i++){
29642965 EffectIndex[i].Render(d3dg);
@@ -2969,6 +2970,7 @@
29692970 for(int i=0; i<cnt; i++) {
29702971 EffectIndex[ data[i].id ].Render(d3dg);
29712972 }
2973+ d3dg->EndEffectRender();
29722974 }
29732975
29742976 //! @brief オブジェクトログの描画処理