タグ

バッファとDirectXに関するedo_m18のブックマーク (3)

  • その69 インスタンシングでモデルを大量発生!

    ホーム < ゲームつくろー! < DirectX技術編 その69 インスタンシングでモデルを大量発生! 久しぶりのDirectX9技術編。2014.9時点でDirectX11な時代ではありますが、3Dの基礎はDirectX9でも十分に学べます。まだまだ現役DX9(^-^) 3Dのモデルには、例えば主人公クラスのキャラクタのように1点物モデルもありますが、パーティクルやモブキャラ(背景に適当にいるキャラクタ)のように同じ形状のモデルで且つ大量に発生する役目をするモデルもあります。STGも全く同じ弾や敵のモデルが実に沢山出ますよね。またノベルス系やRPGなどで大量に表示するフォント文字は、これ同じ板ポリゴンの形で表示位置とUV(フォントの位置)が違うだけだったりします。このように「同型もしくは似てるモデルを大量に発生する」場合、個々のモデルを1個ずつまともに描画していると大幅にパフォーマンスを

    その69 インスタンシングでモデルを大量発生!
  • その71 深度バッファの精度って?

    ホーム < ゲームつくろー! < DirectX技術編 その71 深度バッファの精度って? ポリゴンの前後関係を判断する「深度(Depth)」を格納するバッファである「深度バッファ(Depth buffer)」。このバッファは通常目にする事も触る事も出来ませんが、そこに書き込まれている深度がZテストで比較される事で3Dのモデルに「前後の関係」が与えられるため極めて重要です。 深度バッファでしばし問題になるのがその前後を判定する精度です。所詮デジタルな数値ですから無限に細かい精度で前後判定は出来ません。ポリゴンが殆ど密着しているような状態(キャラクタが着ている衣服やGUIの重ね合わせなど)の場合、当は離れているはずなのに、精度不足から双方のポリゴンの深度が「同じ」と判定され、描画が激しくちらついてしまう事があります。いわゆる「Zファイト」と呼ばれるアーティファクトです。これを避けるには、密

    その71 深度バッファの精度って?
  • DrawCall はなぜ重いのか? - acheul’s diary

    2015 - 07 - 12 DrawCall はなぜ重いのか? 「最適化を行うには、DrawCall を削減すると良い」 という事は良く聞きますが、なぜ DrawCall は重いのかという理由が良く知らなかったので調べてみました。 GPU は描画時に何をしているのか、グラフィックス API の振る舞いと、CPU のオーバーヘッドについてまとめます。 ※ OpenGL と DirectX 、あるいはデスクトップとモバイルについては、特に分けていないので留意して下さい。 ■ そもそも DrawCall とは何か GPU を使用して画面に描画する際に呼び出す命令の事 を DrawCall と呼びます。 モデル描画時に設定されるレンダーターゲット( フレームバッファ )の情報やモデルの頂点情報などはこの DrawCall 命令を一つの基準として処理されます。深度への書き込みが有効か無効か、あるい

    DrawCall はなぜ重いのか? - acheul’s diary
  • 1