|
1章.3D処理速度の向上
|
|
|
1999.12.5
|
|
3Dの描画で、G3@MESHMAKEとG3@MESHFACEを利用してモデルを構築する場合、これから説明する手順を踏まないと描画性能が極端に落ちる可能性があるので注意してください。 DirectX5の時代にLGPの3D描画機能をサポートしましたが、この当時には性能が落ちるという現象に記憶がないのですが・・ 現在のDirectX7上で動作させると性能が極端に落ちていることは確かなので対策をとる必要があるでしょう。 いろいろ試してみた結果、フレームの総数で極端に処理速度が変わる事がわかりました。例えば1つのフレームに100のフェース(もちろんフェースをメッシュに入れてからメッシュをフレームに入れます)を入れた場合と、100のフレームそれぞれに1つのフェースを入れたものでは、後者は極端に性能が落ちます。筆者の環境(ペンティアムプロ180+ミレニアム2)では、前者で秒間40フレームあったものが後者では秒間2フレームまで落ちます。 対策としては、フレームを多用しないことが望まれます。 DirectX6までは、フレームやメッシュ、フェースの関係を管理し3D座標の演算を行うのはCPUの役目であり、最後の描画だけをグラフィックボードで処理するため、頂点の演算や光源の演算にCPU資源が使われます。理由は良く分りませんが、フレームの処理は重い処理なのでしょう。 DirectX6までとバージョンを限定しましたが、DirectX7からはハードウェアで3D座標演算までを実現することが出来るようになりました。これで今までCPUに掛かっていた負荷を削減し、CPUに他のことをさせる時間を与える事が出来ます。ただし、ハードウェアが3D座標演算に対応していなければなりません。また、ソフトウェアも対応している必要が在ります。従来のハードウェアでは対応できないので、これから出てくるであろう新製品に注目しましょう。 |