FAQ

エンジンについて

MacotCapsuleエンジンの仕様やプログラミングなどの技術的な問題に関するFAQです。



オブジェクトの一部が欠けて表示されます

MascotCapsule : V3 / V4(V3互換) / V4
Platform : ALL

クリッピング面の設定が不適切な場合、モデルがクリッピングされてしまうことによって想定していた描画と異なる結果になることがあります。
ニアクリッピング面より視点に近い位置のモデルはクリッピングされてしまい、描画されません。また、ファークリッピング面より遠い位置のモデルも描画されません。つまり、モデルを描画するためにはそのモデルがニアクリッピング面とファークリッピング面の間にあることが必要になります。

[ニアクリッピングでオブジェクトが消える例]
ニアクリッピングでオブジェクトが消える例

上の例ではオブジェクトのひとつが完全に消えていますが、ニアクリッピング面とオブジェクトの位置関係によっては、オブジェクトの一部が表示されることもあります。しかし、その場合でも通常見えるべき面の多くがクリップされてしまうため、想定とは大きく異なってしまいます。

[中途半端にクリップされた例]
中途半端にクリップされた例

このような場合はニアクリッピング面を視点に近づけることでクリップされることを回避できます。

[ファークリッピングでオブジェクトが消える例]
ファークリッピングでオブジェクトが消える例

それではニアクリッピング面を視点にきわめて近い位置に、ファークリッピング面を視点からきわめて遠い位置に設定すればよいかというと、今度は両クリッピング面間の奥行き方向の精度が問題になってくることがあります。


戻る

設定したライトが適用されません

MascotCapsule : V3 / V4(V3互換) / V4
Platform : ALL

ライトの設定が適切でない場合、想定していた描画と異なる結果になることがあります。
点光源やスポットライトは光源からの距離で明るさが変わるため、モデルが光源から離れているため暗くなってしまう、などの現象が起こります。また、光源が視点からみてモデルの向こう側にあると、かげになって暗い部分がこちら側になるので暗くなってしまいます。

[光源の位置関係でオブジェクトが暗くなる例]
光源の位置関係でオブジェクトが暗くなる例

上の例は光源がオブジェクトの向こう側にあったり、遠くにあってオブジェクトに届く光の強度が弱かったりする例です。この例では背景を白くしているためはっきりわかりますが、暗い背景だと表示されているかどうかがわからない場合もあります。

さらにスポットライトでは距離だけでなく方向や照射する角度も問題になってくるため、注意が必要です。
いくら距離が近くてもライトがオブジェクトの方向を向いていなかったり、照射角を狭く設定したためにオブジェクトが光の当たる範囲の外にあったりすると暗くなってしまいます。

[スポットライトの方向や照射角でオブジェクトが暗くなる例]
スポットライトの方向や照射角でオブジェクトが暗くなる例

この他に表示されないという現象とは少し違いますが、環境光の設定も問題になることがあります。たとえば環境光が強すぎると立体的にみえるシェーディングがうまくいかないことがあります。

[環境光の設定でシェーディングがうまくいかない例]
環境光の設定でシェーディングがうまくいかない例


戻る

テクスチャの色が端末やエミュレータによって違う

MascotCapsule : ALL
Platform : ALL

環境によってピクセル深度の違いやライティング計算の違いなどがあります。
極端な例をあげると、昔のパソコンのようにRGBそれぞれ1bitづつの深度しかない場合、 (白や黒を含めた)8色しか表現できません。多階調を表現できる端末とはあきらかに表示が異なることになります。また、ピクセル深度がおなじ場合でも、ライティング計算のアルゴリズムや計算精度の違いで結果が違っていれば、多少違った色になることもあります。


戻る

意図しないオブジェクトが手前に表示されます。なぜでしょう?

MascotCapsule : V3 / V4(V3互換) / V4
Platform : ALL

MascotCapsule V4ではフレームバッファへの描画にZバッファ法を採用しています。これに対しMascotCapsule V4以前のバージョンではZソート法を採用していました。
Zバッファ法では1ピクセルごとに奥行き判定をおこない、もっとも視点に近いオブジェクトが表示されます。しかしZソート法ではポリゴン単位でZの値でソートして描画するため、ピクセル単位でみると必ずしも視点に一番近いオブジェクトが表示されるとは限りません。
このため、MascotCapsule V4で描画した画像とMascotCapsule V4以前のバージョンで描画した画像とが違っていることがあります。とくにポリゴン同士が交差しているような場合、Zソート法では正しく描画することができませんが、Zバッファ法ではピクセル単位で奥行き判定をおこなうため正しい描画が可能になります。

[ポリゴンが交差しているモデルをレンダリングした場合の差異の例]
ポリゴンが交差しているモデルをレンダリングした場合の差異の例


戻る