Copyright(C) 2003 Takaharu Konno
Kgl3DViewerOnline − 3Dビューワーオンライン
自分で作った3Dシーンをネットワークを通して共有してみることができます。
独自のアバターを作成して3Dシーンの中を動作させることができます。
インターネットでは、3Dオンラインゲームのように複数ユーザでの接続とアバターによる振る舞いができます。
マルチマシン、マルチモニター環境では、描画フレームは同期しているため、複数のカメラ視点を使って広角(全方位可能)の表示ができます。
オンライン機能は、UDPプロトコルのみを使用し、その上位層に独自のP2P(PeerToPeer)プロトコルを使用しています。
同期部分は、クライアント、サーバ(SyncMaster)モデルになります。
3Dビューワーの基本構成は、クライアント(または、ピアサーバ)は、PCを2台使用して1メインビュー+1サブビューの1ユニット構成を取ります。
1ユニットの例(2マシン、MailView 1モニター、SubView 2モニター)
実例(2マシン、4モニターの構成)
3DCGシーンは、Lightwave3D v4.0/v5.x(仕様4.0) フォーマットに対応しています。
描画には OpenGL を使用しています。
メモリは、128M以上、グラフィックスは、GeForce 等を推奨します。
私のPC環境は、次のマシンで動作を確認しています。
Athron+1700 + nforce2IGP
P4 + GeForce2MX
3.1 MainView Client、MainView Server
3Dシーンを描画するクライアント、サーバのビューワー。
サーバのビューワーは、プロジェクトで作成された空間を供給し、クライアントは、それに接続する。
3.2 SubView
サブビューは、複数PCで複数モニターを構成してカメラ視覚を増やす場合に使います。
カメラは、MainView に同期して動作します。
3.3 Kgl3DProject
複数の3Dシーンは、プロジェクトで統括されます。
3.4 AvatarCC
アバターの作成は、C/C++言語に似た記述言語で定義できます。
アバターの動作は、異なるシーンの切り替えや、フレームをブロックで区切ったシーンのブロック間切り替えで行います。
シーンの切り替えは、キーに割り当てたイベントによって行うことができます。
現在の AvatarCC は、テキスト記述ですが、今後 GUI の部分も作っていきたいと思います。
それまでは、C/C++言語に似た記述言語での定義になりますが、それが多少面倒なことと思いますので、
必要な動作をいっていただければ、そのスケルトンを作ります。シーン名のみ置きかえれば、可能になるようなものを作るようにします。
OSには、最新のサービスパック、アップデートを当ててください。W2K SP4、WinXP SP1、NT4 sp6a など。
インストール先のフォルダには、接続するサーバの3Dシーン情報をダウンロードして共通なデータを持ちます。
それゆえ、複数サーバと接続したり、サーバが大量のデータをもつ場合は、インストール先には、ハードディスク容量に
余裕がある場所を設定してください。
現行のソフトは、ステップ4で、P2Pネットワーク化したものです。
Kgl3DViewerOnline は、2001年末にできましたが、間が開いてしまいました。
たぶん、まともなコンテンツが作れなかったのと、一度、飽きてしまった感じのようです。
次へのステップは、ブリッジの階層化、マップとハイパーリンクになります。
現行のP2Pソフトウェアは、1グループで256ノードを上限に持っていきたいと思いますが、
MainView と SubView のブリッジ機能を階層化に持っていくことで、グループ256ノードの場合は、
1階層で64Kの同時接続数となります(理論値)。
マップとハイパーリンク機能を組み込めば、3D表示の迷路などのコンテンツでも、サーバ間を迷路サーフィンすることも可能になります。
ステップ ソフトウェア 内容 行程 tKon GL
step 2KglSaver シングル3Dビューワー、
スクリーンセーバー2000 tKon GL
step 3KglMultiViewer マルチ3Dビューワー、
キーアクション2001 tKon GL
step 4Kgl3DViewerOnline マルチ3Dビューワー、
キーアクション2002 Next step Kgl3DViewerNext ブリッジによる階層化、
マップ、ハイパーリンク200x
tkon@ap.wakwak.com
http://park2.wakwak.com/~tkon/
Copyright(C) 2003 Takaharu Konno