ワイヤーフレーム遅い
2001年1月28日
OpenGL でワイヤーフレーム表示すると
普通にシェーディングするより遅いというのは前から気付いてたが,
SprayModeler の確認画面がいつの間にか裏面ワイヤーフレームになっていた.
修論にフレームレートを書こうと思って SGI 版と同じポリゴン数にしたら異様に遅いので,
去年のヤツを引っ張り出してきたらそっちは速い.
どこが違うのかさんざん調べたら
*1,なんとたったそれだけの違いだった.この時間のないときに….
しかし分からんのは,いったんワイヤーフレーム表示すると,
普通のシェーディングに戻しても遅いのだ.
どっかにまだワイヤーフレームが残ってるのかなあ.
そういえば Windows に移行したての頃,この現象をちょっと調べて分からないから
あきらめてずーっと普通にシェーディングすればいいや
という結論に達したような気がしてきた….
と思ったら解決.ワイヤーフレーム表示のために
glPolygonMode(GL_BACK, GL_LINE);
としたら,その後普通のシェーディングするときに
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
としなければ裏側はワイヤーフレームで書こうとしてるようだ.
これはたとえ
glEnable(GL_CULL_FACE); glCullFace(GL_BACK);
としてあっても関係ないみたい.
それからもうひとつはまったこととして,
ツールバーの設定をレジストリに読み書きするところ.
ここ の一番下の方「要注意!レジストリの罠」にも書かれてるが,
どうにも原因不明なときは CMainFrame::OnCreate() をステップ実行してみると
LoadBarState(“ToolBarState”); で落ちる.
いったんこれをコメントアウトすると復活した.
*1:その去年のソースに現在のをどんどん付け足していった.所要時間 約1時間半