過去の独りごち/独りごとはこちら
過去のJavaアプレットは
こちら

 

12/13 まだまだ〜

 今日も今日とてDG-Caradです。

 TOEGGEさんのデザインも、僕の作業も進んでいます。今までの中ではかなり速いペースに入ると思うのですが、作業が進むにつれ拡張したくなって、というループが(^^;) すみません、まだドキュメント書きに着手してないです。

 TOEGGEさんデザインによる、進化したDG子デザイン、まずはご覧あれ。


Fig.1 DG子α01

 頭に矢印載ってます。表情ラフも出来ました! くぅ〜 流石! しかし、あんまりここでベタベタ褒めると皆さんは遠ざかってしまいそうなので、これ以上ここでは褒めない(^^;)

 お供ラフも上がりました。こちらはKo-Taさんの考えたアイディアラフもあり。

  
Fig.2 お供ズ

左 : TOEGGE氏 作(α1)
中 : TOEGGE氏 作 (α2)
右 : Ko-Ta氏 作

 お二人で全く違う仕上がり。 TOEGGE氏のお供は「まだ弱そう」という理由からリテイクを要求してしまいました(酷 さて、どうなるか。ともかく、お供も出来たらあとはサーフェス作ってシェルを作ろう。会話ネタはプログラミング、特にDelphiから…あれ?

 でも、すでにそういう話まであがってたり(w

 ちなみに、DG子はDG子が本名であって、DG-Caradが本名だったりしません(しつこい

 さて、今回はSXLibの拡張についてお話しましょう。 実はですね、これの拡張工事の方がDG-Carad本体の作成よりもよほど手が掛かっているんです。

 何ソレ?という人のために付け加えておきますと、SXLibとは、現行のQuadrupleDにも添付して配布されている、自家製3Dツールキットです。メッシュやフレームの管理とかをやります。ただし、QuadrupleD 2.12に付いている物は、あまりに貧弱で、実用に給するにはまだまだ力不足の感があります。 よって、QuadrupleDではあくまでサンプルという位置づけにし、最低限のリファレンスマニュアルだけをつけてこっそり同梱しているため、気が付かない人も多いのでは…という不遇のライブラリです。

 しかし、このたびの拡張工事で、SXLibはまっとうなレンダリングソリューション(造語)として生まれ変わります。 具体的に実装されるフィーチャとしては、

  • 階層構造の管理(TSXFrame)
  • メッシュの管理(TSXMesh)
  • 光源の管理(TSXLightGroup)
  • ビューポート、カメラの設定など、シーン全体に及ぶ設定の管理(TSXScene)

 まず、ここまでは従来のSXLibでも実装済みの内容ですが、これに加えて

  • キューイングによる半透明体の自動ソート
  • フレームからの相対座標で3D空間に配置できる、ビルボード
  • 画面上の座標(2D)を指定して一枚の4角形を描画する、スプライト、2Dゲームをバリバリ作る向きにも活用してください!
  • フレームのオーナードロウで、メッシュによる固定ジオメトリオブジェクトや、ビルボードによるパーティクルなどに限らず、刀の軌跡やホーミングレーザーなど、どんな物体でもレンダリングできます。ちょっと面倒いけど、我慢せい!
  • バウンディング球によるフレームの自動カリング、バウンディング球は、フレームに加えられたメッシュの情報を手がかりにした自動計算と、自前設定の両方OK! もうQuadTreeとか要りません
  • TSXMeshにFlexibleVertexFormatを導入、メッシュの頂点形式は何でもOK
  • 同じ頂点をまとめたり、VertexCacheを意識したメッシュの最適化も出来ます。ディフューズ+スペキュラで光源1個のモデル描画時に、30%ほどフレームレートが向上しました。最適化後に中をロックしてガリガリ書き換えても問題ナシ!
  • メッシュの保存もメソッド1発でできるようになりました(^^;) 最適化後のメッシュの保存も勿論OK
  • DirectX8が嫌われる理由だった、テキスト描画を引き受けてくれる、TSXTextWriterも付いてるyo!

 おーおー、約2週間でようできたなぁ。テストプログラムはまだ公開してませんけど(^^;) だって、ぐちょぐちょな上にPixelShader、VertexShaderが無いと動かないんだもん。

 さらに、既出のDGnaROKによる人体アニメーションオブジェクトなども自由に出来ます。以前発表したDGnaROKのROKLoaderにはバグがあって、一部の(多くの?)ROKファイルが読み込めなかったようですが、それも直しました。

Taku Hayase(SANDMAN)

戻る