JPH06236432A - 仮想現実システムおよび仮想現実像の仮想現実世界生成方法 - Google Patents

仮想現実システムおよび仮想現実像の仮想現実世界生成方法

Info

Publication number
JPH06236432A
JPH06236432A JP4323395A JP32339592A JPH06236432A JP H06236432 A JPH06236432 A JP H06236432A JP 4323395 A JP4323395 A JP 4323395A JP 32339592 A JP32339592 A JP 32339592A JP H06236432 A JPH06236432 A JP H06236432A
Authority
JP
Japan
Prior art keywords
virtual reality
objects
database
world
helmet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4323395A
Other languages
English (en)
Inventor
Christopher A Crane
エイ.クレイン クリストファー
J Bannon Tom
ジェイ.バノン トム
Daniel M Donahue
エム.ドナヒュー ダニエル
E Heape Judd
イー.ヒープ ジャッド
K Smith Andrew
ケイ.スミス アンドリュー
M Siep Thomas
エム.シープ トーマス
W Atkins Donald
ダブリュ.アドキンズ ドナルド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH06236432A publication Critical patent/JPH06236432A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Abstract

(57)【要約】 【目的】 オペレータが仮想現実像の仮想現実世界に居
るように感じる仮想現実システムを提供する。 【構成】 ヘルメット装置28を装着したオペレータの
動作および制御信号に応答してディスプレイスクリーン
60上にイメージデータが発生される。マイクロプロセ
ッサ76のメモリ回路からイメージデータを抽出してデ
ィスプレイ回路を制御し、オペレータが仮想現実像62
の中に居てそれに関っているかのように仮想現実像62
を変化させる。仮想現実世界74内の第1、第2のオブ
ジェクトをディスプレイ60,68上にグラフィック表
示し、両オブジェクト間の分割面を決定し、それを横切
移動するオブジェクトに応答して第2の分割面を決定す
る。所定の観察点に対する相対位置に従って第1、第2
オブジェクトを選択的に不明瞭として仮想現実世界74
内のオブジェクトの移動をディスプレイ60,68上に
グラフィック表示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般的に人工環境を発生
するコンピュータサイエンスの応用に関し、特にユーザ
がコンピュータのメモリ内に存在する環境を探査するこ
とができる低コスト仮想現実システムおよび方法に関す
る。
【0002】
【従来の技術】仮想現実システムの設計および用途はコ
ンピュータサイエンスの新しい未開分野である。“仮想
現実システム”の目的はコンピュータのメモリ内のモデ
ルとしてしか存在しない環境をユーザが探査できるよう
にすることである。これらの環境は(例えば、ラスベガ
スの街路や建物内部等の)現実世界のモデルであった
り、(例えば、分子の内部や銀河系の中心等の)純粋な
想像世界もしくは人間が到達できない世界であったりす
る。
【0003】代表的な仮想現実システムはコンピュー
タ、入力装置および出力装置により構成される。コンピ
ュータは仮想世界のモデルを維持しユーザの観点からそ
の外観を計算する。出力装置はユーザの頭部に取り付け
る装置とされることが多く、ヘルメットに搭載されたデ
ィスプレイやスクリーンもしくは一対のゴーグルとする
ことができる。ヘルメットを装着することにより、ユー
ザは視覚上仮想世界へ巻き込まれる。また、ヘルメット
にはユーザの頭部位置およびユーザが眺めている方向を
コンピュータが知ることができるようにする追跡装置も
取り付けられている。代表的なシステムにおける入力装
置には簡単なジョイスティックからユーザの動作および
ゼスチュアを監視できるグローブや他の装身具が含まれ
る。
【0004】仮想現実システムに関する主な問題点は高
価であり通常代表的な個人消費者の娯楽費の範囲を越え
ることである。大概のシステムは3次元世界モデルの2
次元ビューを表現する強力なコンピュータを使用してい
る。大概のシステムには1個以上の高価なグラフィック
発生器および1組以上の高価なゴーグルが含まれてい
る。さらに利用可能な公知の装身装置も平均的な消費者
が購入できないほど高価である。公知の仮想現実システ
ムは高価であるため、それを購入できるのは会社、大学
もしくは政府機関だけのようである。したがって、今日
平均的消費者は実際上仮想現実システムを利用すること
ができない。
【0005】
【発明が解決しようとする課題】その結果、代表的な消
費者の娯楽費内の価格で製作可能な仮想現実システムに
対するニーズがある。
【0006】現在の最も安価な仮想現実システムよりも
低いコストでしかも今日の高価なシステムの大概の仮想
現実ケーパビリティを有する仮想現実システムに対する
ニーズがある。
【0007】さらに低コストとすることにより、仮想現
実システムゲームおよび教育応用プログラムを介して平
均的消費者が教育および娯楽の機会を実現することがで
きるようにする仮想現実システムに対するニーズがあ
る。
【0008】さらに、プレーヤに3次元世界を移動して
いる印象を与える方法およびシステムを提供すれば、大
きな制約が克服されて実行可能な仮想現実システムが得
られる。これには、まずプレーヤからの入力の関数とし
て3次元透視像を発生してディスプレイ上で変化させる
方法が必要である。また、それにはプレーヤが像ディス
プレイ内で“自分で移動する”方法も必要となる。発展
性のある仮想現実システムはこのような動作をリアルタ
イムで実施できなければならない。さらに、経済的な仮
想現実システムとするには、これらの動作を容易に入手
できる低コストマイクロプロセッサ部品により実施でき
なければならない。
【0009】したがって、プレーヤの動作を3次元仮想
現実世界内で実行する経済的な方法およびシステムに対
するニーズがある。
【0010】低コスト仮想現実システムに対して、プレ
ーヤの入力に従って透視像を変化させる3次元透視像を
発生する方法およびシステムに対するニーズがある。
【0011】プレーヤが低コスト仮想現実システムの3
次元像ディスプレイ内で“自分で移動”できるようにす
る方法およびシステムに対するニーズがある。
【0012】さらに、容易に入手できる低コストマイク
ロプロセッサ部品により前記目的を達成できる方法およ
びシステムに対するニーズがある。
【0013】
【課題を解決するための手段】したがって、本発明によ
り従来の仮想現実システムおよび方法に付随する欠点お
よび制約が克服もしくは低減される。
【0014】本発明の一つの特徴はオペレータがコンピ
ュータにより発生される世界の中に居るかのように感じ
る仮想現実システムである。システムイメージデータを
仮想現実像として表現するディスプレイサブシステムを
備えている。ディスプレイ回路に付随するメモリにイメ
ージデータが格納される。オペレータが装着するヘルメ
ット装置にはディスプレイサブシステムが含まれてい
る。ヘルメット装置のオペレータの動作に応答して、マ
イクロプロセッサがオペレータに表示される仮想環境内
の視野を決定する。マイクロプロセッサは仮想世界を表
わすデータをメモリから抽出し仮想現実像のディスプレ
イを制御してあたかもオペレータが仮想現実像内に居て
それと関わっているかのようにする。実施例では、仮想
現実システムはさらに所定のオペレータ制御入力セット
に応答して仮想環境を操作するイメージデータ入力回路
を備えている。
【0015】本発明のもう一つの特徴は仮想現実環境内
の物体の相対位置および運動をモデル化する方法であ
る。この方法には仮想現実環境内の第1および第2の物
体をグラフィックディスプレイ上にグラフィック表示す
るステップが含まれる。グラフィック表示は仮想現実環
境内の所定の観察点に対する第1および第2の物体の相
対位置に従って第1および第2の物体を不明瞭とする。
この方法には第1および第2の物体間の分割面を決定す
ることが含まれる。次に、分割面上を横切移動する第1
および第2の物体に応答して第1および第2の物体間の
第2の分割面が決定される。この方法では、次に仮想現
実環境における第1および第2の物体がグラフィックデ
ィスプレイ上にグラフィック表示される。これは仮想現
実環境内の所定の観察点からのこれら各物体の相対位置
に従って第1および第2の物体を選定的に不明瞭とする
ことにより行われる。これは第2の分割面に対する物体
の位置に従って行われる。
【0016】本発明の方法では、物体の数および所定の
観察点に対する相対位置に応じてさまざまな分割面を発
生することができる。本発明の方法の効果はプレーヤが
仮想現実世界内で動作できるようにすることであるが、
3次元分割データベースと移動体アルゴリズムが組み合
されている。本発明の2分割データベースにより仮想現
実システムディスプレイにいずれを表現すべきかまたい
つ表現すべきかという選択問題が解決される。
【0017】本発明の技術上の利点はユーザの娯楽やゲ
ームだけでなく他の多くの分野に応用できる、3次元仮
想現実世界でのプレーヤの移動を実現する経済的な方法
およびシステムが提供されることである。例えば、教育
に関しては、建築科の学生は本発明のシステムを使用し
て自分が設計する建物や構造体の仮想現実世界モデルへ
入ることができる。同様に、本発明を使用して医科の学
生は仮想現実システムにより脳モデルを“巡回”するこ
とができ、化学者は複雑な分子の3次元モデルを“歩き
廻ったり”“内部へ入る”ことができる。本発明により
低コスト仮想現実システムが提供されるため、従来より
も遙かに多くの個別応用が実現される。
【0018】本発明のもう一つの技術的利点は多数のオ
ペレータが一つの仮想現実環境内に共存できることであ
る。その結果、学生と先生は同じ時間に同じ仮想現実世
界内に居ることができる。同様に、例えば旅行産業で
は、潜在的な旅行者および旅行代理店はディズニーワー
ルドのモデルの案内旅行を行って休暇計画をたてること
ができる。
【0019】本発明のもう一つの重要な技術上の利点は
代表的な消費者に対して仮想現実システムケーパビリテ
ィへの道が開かれることである。公知の低廉な仮想現実
システムよりも低水準のコストで仮想現実システムを提
供することにより、本発明は平均的消費者の予算的ニー
ズに応えるものである。しかしながら、同時に本発明の
低コスト仮想現実システムはより高価な仮想現実システ
ムで利用できるのと同じ大概のケーパビリティを消費者
に提供する。例えば、本発明はフライトシュミレータア
ルゴリズム等の公知の移動体アルゴリズムと効果的に組
み合せて、仮想現実システムへのプレーヤ入力に従って
透視像を変化させる低コスト3次元像発生方法を得るこ
とができる。
【0020】
【実施例】システム概要 図1に2人のプレーヤ22、24が使用している仮想現
実システム20の実施例を示す。各プレーヤはそれぞれ
ヘルメットもしくはゴーグル26、28を装着してお
り、かつ入力装置を使用している。例えば、プレーヤ2
2は仮想現実世界における自分の動作をジョイスティッ
ク30を介して制御し、プレーヤ24は自分の動作をパ
ワーハンドアタッチメント32を介して制御する。ゴー
グル26およびジョイスティック30はケーブル34を
介してヘルメットカード36に接続されている。同様
に、ゴーグル28およびパワーハンドアタッチメント3
2はケーブル38を介してヘルメットカード40に接続
されている。ヘルメットカード36、40はそれぞれス
ロット42、44においてシャーシ58に嵌合され、付
加ユーザに対する付加カード46、48を所望によりス
ロット50、52へ嵌合することができる。
【0021】図1の例では、カートリッジ54がシャー
シ58のスロット56に装填されてプレーヤ22、24
が興じるゲームが提供される。実施例では、カートリッ
ジ54はプレーヤが任意数のゲームを選定できるものと
することができる。例えば、図19および図20には実
施例により使用できる“グレース”と呼ばれるゲームが
記述されている。図1の実施例では、プレーヤ22はゴ
ーグル26を介して環境62を含むディスプレイ60を
観察する。環境62内で、代理プレーヤ64はプレーヤ
22がジョイスティック30を介して送出する指令に従
って動作を行う。例えば、環境62内で、プレーヤ22
は代理プレーヤ64に迷路防壁66を通り抜けるよう指
示する。
【0022】同時にプレーヤ22はゴーグル26のディ
スプレイ60上の環境62を観察し、プレーヤ24はゴ
ーグル28内のディスプレイ68を観察する。プレーヤ
24はプレーヤ22が観察するのと同じ環境62を観察
する。しかしながら、プレーヤ24は例えば代理プレー
ヤ66を追跡して防壁72を通り抜ける代理プレーヤ7
0を制御する。プレーヤ24はパワーハンドアタッチメ
ント32およびゴーグル28の移動により代理プレーヤ
70を制御する指令を送出する。その結果プレーヤ2
2、24は実施例の仮想現実システム20が生成する仮
想現実世界74内で行動することになる。
【0023】システムハードウェア 図2に実施例の仮想現実システムの全体アーキテクチュ
アの概念ブロック図を示す。図2に従って、実施例はバ
ス78を介してメモリ回路80と連絡されバス82を介
してROMカードリーダ84と連絡されるプロセッサ7
6を備えている。メモリ回路80はバス86を介してR
OMカードリーダ84とも連絡されている。ヘルメット
ボード36、38はそれぞれヘルメット1回路88およ
びヘルメット2回路90に接続されている。例えば、ヘ
ルメット1回路は図1のゴーグル26およびジョイステ
ィック30用回路からなり、ヘルメット2回路90はゴ
ーグル28およびパワーハンドアタッチメント32を含
むことができる。実施例のアーキテクチュアはスロット
42、44、50、52内のヘルメットカード36、3
8等の4枚のヘルメットカードに対処する。
【0024】システムアーキテクチュアに従って、プレ
ーヤは例えばスロット56を介してROMカードリーダ
84内へゲームカートリッジ54を挿入することにより
仮想現実システムを使用する。プロセッサ76はROM
カードリーダを指令して自動的にゲームカートリッジ5
4を読み取りゲームソフトウェアおよび仮想世界表現を
システムメモリ80へダウンロードする。次にプロセッ
サ76はヘルメットボードスロット42、44、50、
52を調べて何人のプレーヤがゲームに参加しているか
を決定する。実施例では、各ヘルメットは1人のプレー
ヤだけが使用する。ゲームプログラムが進行すると、プ
ロセッサ76は例えばヘルメットボード36、38から
の入力を読み取る。入力はプレーヤの頭部位置および
(ジョイスティック30やパワーハンドアタッチメント
32等の)付属入力装置からのデータを含むプレーヤの
現在状態を記述するものである。プロセッサ76は入力
を分析してゲームの状態を適切に更新する。これには仮
想現実世界74のモデルを表わすデータベースの状態を
更新することも含まれる。読取り/更新プロセス中に、
ヘルメットボード36、38は世界データベースの読取
りを禁止される。データベースの更新後、プロセッサ7
6は各プレーヤの視点から見た仮想現実世界74を描画
開始するよう指示する。
【0025】ヘルメットボード36、38はゲームの各
プレーヤに対して1枚ずつ主シャーシ58内へ挿入され
る。図3は並列バス85を介して主ボード59のメモリ
80から仮想世界データベースを読み取るヘルメットボ
ードプロセッサ92からなるヘルメットボード36を示
す。主ボード59は図1のシャーシ58内にファイルさ
れている。ヘルメットボードプロセッサ92はビデオ接
続点94を介してプレーヤの立場からの仮想世界図をプ
レーヤのヘルメットディスプレイに表示する。バス85
によりプロセッサ76はヘルメットボード36にも接続
される。ヘルメットボード36を主ボード59のプロセ
ッサ76に接続することによりヘルメットボード36は
ヘルメットもしくはゴーグル26およびジョイスティッ
ク30もしくはもう一つの入力装置からの入力データを
シリアルI/O96を介して直接主ボードメモリ80へ
送出することができる。ヘルメットやゴーグル26は簡
単なデータストリップ接続を介してヘルメットボード3
6に取り付けられる。ヘルメットボードプロセッサ92
は表現された光景をヘルメット26内のビデオディスプ
レイ60へ出力する。ヘルメットボードプロセッサ92
はプレーヤのヘルメットやゴーグル26に搭載すること
のできるスピーカやイヤホーンへ送ることができるオー
ディオ信号も発生する。実施例では、ヘルメットボード
プロセッサ92はプロセッサ76が指示する場合だけ接
続点94を介して光景を表示する。
【0026】図3にはゲームカートリッジ54を受け入
れて読み取るROMカードリーダ84も示されている。
ゲームカートリッジ54はゲーム機構、ヘルメットボー
ド36、38出力解釈、およびデータベース形状の一つ
以上の仮想現実世界を含むことができる。
【0027】図4に実施例の回路の略ブロック図を示
す。パワーグローブ32から開始して、シリアルI/O
接続点96は配線98へ行きバス100を介して主ボー
ドバス85へ入力信号が送られる。主ボード入力バス8
5はI/Oラッチ102を介してバス104へ入力デー
タを送る。バス104は入力信号を主プロセッサ76へ
送る。入力バス85はデジタルもしくはアナログ入力を
与えるデジタルもしくはアナログバスとすることができ
る。アナログ入力を使用する場合には、I/Oラッチ1
02はシリアルポート用マルチプレクサ(MUX)もし
くは主プロセッサ76へデジタル入力を与える8ビット
バッファラッチとすることができる。同様に、入力バス
104はシリアルデータを使用する場合には1ビットと
しパラレル入力を使用する場合には8ビットバスとする
ことができる。さらに、アナログデータ入力を使用する
場合には、バス106は内部マルチプレクサ用入力バス
として使用することができる。主プロセッサ76はシス
テムマルチプレクサコントローラ108へ入力を与え、
アドレスバス110を介してシステムROMカード54
へ16ビットアドレス入力を与え、かつ入力データバス
112を介して18ビットデータを与える。データバス
112はバス114を介してスイッチ116およびメモ
リ80へデータ入力を与える。スイッチ116はバス7
8からの制御信号に基いて主プロセッサ76により制御
されバス114からのデータをバス118を介してメモ
リ80へ送る。
【0028】また、主プロセッサ76はGSPリード/
ライトコントローラ120へリード/ライトコントロー
ル信号を送る。GSPリード/ライトコントローラ12
0は各バス122、124、126、128を介してヘ
ルメットカード36、38、46、48へコントロール
入力を与える。さらに、GSPリード/ライトコントロ
ーラ120からのバス130を介してメモリ80へ入力
が与えられる。接続点132において、メモリ80はバ
ス130を介したコントロール信号およびスイッチ11
6からのプロセッサコントロール入力バス118を介し
たデータ入力を受信する。
【0029】メモリ80はプロセッサ134およびDR
AM136を含んでいる。実施例では、プロセッサ13
4はテキサスインスツルメンツTMS34010プロセ
ッサにより構成される。また、メモリ80はバス138
を介してヘルメットカード36、38、46、48と主
データベース信号の通信を行う。
【0030】各ヘルメットカード36、38、46、4
8は接続点140において実施例の回路に接続されDR
AM144へデータ信号を送るプロセッサ142を含ん
でいる。DRAM144はRAM(VRAM)146へ
データ入力を与えそれはパレット148へ送られる。パ
レット148は出力バス98を介して配線へカラーパレ
ットデータを送りそれはビデオ接続点94を介してヘル
メット28へも送られる。
【0031】各ヘルメットカード36、38、46、4
8はGSPリード/ライトコントローラ120により制
御され、バス119からのリード/ライトコントロール
信号に応答して関連するヘルメット28へ表示データが
送られる。バス119上の信号は主プロセッサ76から
到来して個別の各ヘルメットカード36、38、46、
48を制御する。例えば、ヘルメットカード36のプロ
セッサ142からの出力はビデオRAM(“VRA
M”)146へ出力を与えるDRAM144に一時記憶
される。VRAM146は光景が表示されるRAMであ
りパレット148がヘルメット28内のディスプレイへ
ビデオ像を表示することができるデータを与える。
【0032】実施例では、電源150により配線98に
接続された入力および出力装置だけでなく全システム回
路へ調整された電力が供給される。さらに、別の実施例
ではジョイスティック30等のアナログもしくはデジタ
ル制御装置を含むことができる。また、ヘルメット28
はヘルメットの方位を示す入力を仮想現実システムへ与
えることができる。例えば、ヘルメット28は超音波も
しくは他の公知の方法によりヘルメットのプレーヤ動作
を追跡する追跡装置を提供することができる。ヘルメッ
ト28が実施例の仮想現実システムと通信を行うデータ
は、プレーヤの頭部位置に関する方位情報であってもヘ
ルメット28のディスプレイ回路への単なる表示データ
であっても、全てシリアル入出力データとして処理され
る。
【0033】実施例では、4人のプレーヤが各ヘルメッ
トカード36、38、46、48への入力を各配線98
に接続することにより仮想現実システムを使用すること
ができる。このような場合、配線98およびバス85を
介して、主プロセッサ76は1〜4人のプレーヤからの
入力を読み取りメモリ80の主データベースに関してど
んなニーズを行うべきかを決定する。主プロセッサ76
からの信号に応答して、メモリ80のマイクロプロセッ
サ134は物体を移動させるのに必要な任意の変化を行
うかあるいはプレーヤからの指令に応答する。主プロセ
ッサ76からの入力に従ってデータベースが変化される
と、信号がヘルメットカード36、38、46、48へ
送られ一つの配線98に接続することができる各ヘルメ
ット28において終局的に表示される。したがって、例
えばパワーグローブ32やジョイスティック30からの
入力に応答して、システム内に無限ループが確立されそ
れは接続されたヘルメットに継続的に表示されてヘルメ
ット28のディスプレイの可視情報を更新する。
【0034】図5、図6、図7は市販されている部品を
使用した実施例を示す詳細回路図である。
【0035】システムソフトウェア A.全体制御フロー 図8は実施例の主プロセッサ76
の基本ソフトウェアフロー図を示す。ON POWER
UPステップ152で始って、仮想現実システムはR
OMカートリッジ54から主プロセッサコードおよびヘ
ルメット26プロセッサコードをダウンロードする。次
に、ステップ152において主プロセッサはカートリッ
ジ54から3次元(3−D)光景データベースをダウン
ロードする。これらのステップの目的はメモリ80内へ
ゲーム機構を読み込み、共有メモリ内へ世界データベー
スを読み込み、仮想世界パラメータを初期化することで
ある。
【0036】これらの初期化ステップが開始されると、
実施例はステップ156においてループを開始する。ル
ープは各アクティブヘルメット28に対して開始され
る。すなわち、例えばスロット42においてヘルメット
カード36が接続される各ヘルメットに対して各アクテ
ィブヘルメットステップ158は入力を読み取る。ヘル
メットが検出されれば、プログラムはそのヘルメットの
表示ビットを偽に設定する。初めてヘルメットが検出さ
れると、実施例の基本ソフトウェアによりプレーヤはゲ
ームへ引き入れられる。そうでない場合には、ソフトウ
ェアは例えばヘルメットカード36からの最新出力を得
る。ループにおいてヘルメットが検出されない場合に
は、ヘルメットカードが挿入される筈のスロットがスキ
ップされる。ステップ160で読み取られる各入力に対
して、実施例は観察パラメータを更新してビューア位置
およびデータベースを更新する。本質的に、このステッ
プによりヘルメットからの全入力が解釈されそれに従っ
てメモリ80内の主データベースが更新される。
【0037】次に、ステップ162において主プロセッ
サ76の基本ソフトウェアによりデータベース内の独自
のオブジェクトの位置が更新される。次に、ステップ1
64において、コントロールプログラムによりデータベ
ースが全てのアイドルヘルメットバッファへコピーされ
各ヘルメット26へ情報が送られる。本質的に、これは
ヘルメットボード36の表示プロセッサ92内の表示ビ
ットを設定してヘルメット28ディスプレイ上に新しい
像を表示するステップからなっている。
【0038】図9は実施例のヘルメットプロセッサ92
の基本ソフトウェアフロー図を示す。主ボード59のプ
ロセッサ76と同様に、例えばヘルメットボード36の
プロセッサ92はON POWER UPステップ16
6で開示されその時点でプロセッサ142は主プロセッ
サ76からコードを受信する。ステップ168におい
て、このコードによりヘルメットプロセッサ142は実
施例の特定応用に対するグラフィック環境を初期化す
る。次に、ステップ170において、ループによりアク
ティブデータベースバッファがヘルメット28ディスプ
レイへ表示開始される。次に質問172が開始されスイ
ッチ信号(すなわち、予め識別されたレンダービット)
が主プロセッサ76から受信されているかどうか決定さ
れる。ビットが“真”に設定されておれば、ステップ1
74においてヘルメットボード136は現在の光景を描
写する。次に、ループはステップ170へ戻ってアクテ
ィブデータベースバッファを描写する。主プロセッサ7
6によりビットが真に設定されていなければ、次にステ
ップ172においてループはステップ170へ戻りアク
ティブデータベースバッファを描写する。このプロセス
は一般的に“ダブルバッファリング”として知られてい
る。
【0039】B.データ構造 詳細説明のこの章ではオ
ブジェクトがデータベース中を移動できるようにする拡
張を強調して、BSPデータベース構造の詳細説明を行
う。
【0040】1.BSP.移動体拡張概説 本発明が使
用してプレーヤが仮想現実世界内で操作できるようにす
る方法は3次元分割データベースを移動体アルゴリズム
と組合せたものである。3次元2分割データベースによ
りいつ何をヘルメット28ディスプレイに描写するかを
選定する問題が解決される。移動体アルゴリズムには3
次元仮想現実環境内での物体の移動をシミュレートする
ための既存のフライトシミュレータアルゴリズムを適用
することが含まれる。3次元2分割データベースを移動
体アルゴリズムと組合せることにより主データベースが
生成されそこから全てのプレーヤがプレーを行う仮想現
実環境の情報を受信することができる。
【0041】3次元2分割データベースおよび移動体ア
ルゴリズムについて概説する。次に、各々について詳細
説明を行う。移動体アルゴリズムは1960年の終りに
フライトシミュレータに対して開発されたアルゴリズム
を修正したものであり、その主要な利点は高価なZ−バ
ッファハードウェアを必要とせずに隠面問題をリアルタ
イムで解決できることである。プロトタイプ移動体アル
ゴリズムはテキサスインスツルメンツTMS34010
もしくはTMS34020グラフィックプロセッサで作
動するリアルタイム3次元応用の一例である。3次元2
分割データベースは設計者の物体配置に対する従来の知
識に基いて構成される。小さな静止世界に対しては満足
できるものではあるが、互いに移動する多数の物体があ
る仮想現実環境に対しては簡単には拡張できない。
【0042】移動体アルゴリズムの記述において、大部
分の努力は適当に複雑な3次元光景が与えられた時にリ
アルタイムアニメーションを達成することに向けられ
る。グラフィック信号プロセッサ(GSP)120が大
概の計算および全ての描画を行う。GPS120の時間
の大部分はデータベースを解釈し、座標を変換し、ポリ
ゴンを描く3次元パイプラインのハンドチェーンアセン
ブリコードを実行するのに費やされる。(現在およそ7
kバイトである)3次元データベースがGSP120へ
ダウンロードされGPS120はGPS120のホスト
インターフェイスレジスタを介してデータベースへアク
セスするオーバヘッドが招かないようにされる。新しい
各フレームはPCホストプロセッサ76とGSP120
との間で僅かな情報が交換されるだけでよい。ホストに
よりシミュレートされたプレーヤの現在の位置および方
位がGPS120へ与えられる。GPS120はプレー
ヤが3次元光景内のいずれかの物体へ達したかどうかを
ホストへ告げて応答する。
【0043】各プレーヤの動作特性がホストプロセッサ
76上でシミュレートされる。現在のモデルは初心者が
容易に制御できるようにされており、ユーザが自由に3
次元光景を探査できるようにされている。アクセスを容
易にするために、移動体アルゴリズムの挙動モデルはC
で書かれており、移動体アルゴリズムのプロセッサ常駐
部に格納されている。ソフトウェアはモデルをソースフ
ァイル“interp.c.”に格納された一つのモジ
ュール、“cmd−interpret”機能へ改良す
るのに必要な変更を大部分分離するように構成されてい
る。GPS120がほとんど全てのワークを行う場合、
ホストプロセッサ上の移動体挙動モデルはリアルタイム
性能が不振となる前に拡張される余裕がある。
【0044】後で詳細説明を行う3次元2分割データベ
ースは2分木として構成される。ツリー内の各終点(す
なわちリーフ)節は一つのオブジェクトを表わし、中間
点(すなわちノンリーフ)節はオブジェクト群を表わ
す。開発およびテストフェーズ中に、各端節(リーフノ
ード)を順次根元節(ルートノード)として定義して移
動体アルゴリズムにより表示することができる。これに
より一つの節におけるデータはデータベース内の他の場
所のエラーから分離され、データベース内の個別の3次
元オブジェクトが容易に整然とテストされる。いくつか
の節を検証する場合、後のテストのために小さなサブツ
リーへ連結される。
【0045】本実施例は1,4および8ビット/ピクセ
ルでテストされた。4および8ビットのピクセルデプス
では、色選定は16へ制限される。モノクロディスプレ
イの場合には、16色の各々に対して4×8ディザーパ
ターンが代用される。利用できる色数が制限されるため
3次元光景データベース内のオブジェクトの色選定およ
び配置は慎重を要する。
【0046】2.BSP中を移動する物体のグラフィッ
ク記述 図10にデータベース表現202と並べてグラフィック
表現200を示し、それらは実施例の3次元2分割デー
タベースの作用を概念的に示す。グラフィック表現20
0において、分割面204、206はオブジェクト20
8、210、212の後で処理するのにデータベースが
使用されることを示している。グラフィック表現200
は204、206を有する平胆な面上に位置する3つの
オブジェクト208、210、212のオーバーヘッド
図と考えることができる。分割面204、206は平胆
面上のオブジェクトに対する相対位置に従って確立され
る。分割面204は+側および−側を有し分割面206
は+側および−側を有している。分割面204、206
によりグラフィック表現200内に現われるオブジェク
トの相対位置が確立される。実施例では、オブジェクト
208は分割面204の+側にある。オブジェクト21
0、212は分割面204の−側にある。オブジェクト
210は分割面206の+側にありオブジェクト212
は分割面206の−側にある。
【0047】データベース表現202は実施例の3次元
分割データベースに従ってグラフィック表現200がど
のように見えるかを示す。節204aで開始して、デー
タベースはオブジェクト208が節204aの+側にあ
りオブジェクト210、212が節204aの−側にあ
るように分割木を構成する。さらに、節206aの+側
では、オブジェクト2が現れ節206aの−側ではオブ
ジェクト3が現れる。データベース表現202におい
て、節204a、204bは実施例のデータベースが使
用する3次元データベースの分割面に関する中間点節と
考えられる。節208a、210a、212aによりヘ
ルメット28ディスプレイに描写されるグラフィックオ
ブジェクト情報が提供される。
【0048】図11〜図13は本発明の3次元2分割デ
ータベースにより、実施例の移動体アルゴリズムの演算
の結果生じるオブジェクトの相対位置および不明瞭化が
どのように処理されるかを示す。グラフィック表現20
0に示すように、オブジェクト210は位置216から
位置218を経て最終位置220へ移動する。この移動
中にオブジェクト208はその最初の位置へとどまる。
この移動中に分割面204はオブジェクト210をオブ
ジェクト208から分離し続ける。その結果、オブジェ
クト210が最終的に位置220へ移動するとオブジェ
クト210重心に対するグラフィック表現のオフセット
は変化することがあるが、3次元2分割データベースは
修正する必要がない。オブジェクト210は面204を
通過しないため、オブジェクト位置208a,210a
を有し+および−側のあるデータベース節204により
オブジェクト208、210の相対位置は移動前後で同
じとなるように連続的に記述することができる。これは
図12が記述する移動の場合にはあてはまらない。
【0049】図12において、オブジェクト210は位
置216から位置218を経て最終的に位置222へ移
動する。オブジェクト208は元の位置にとどまる。オ
ブジェクト210は位置218、222を通過すると、
分割面204と交差する。オブジェクト210が分割面
204と交差したら、分割面206を確立する必要があ
る。分割面206は+側および−側を有しオブジェクト
208に対するオブジェクト210の相対位置を維持す
る。実施例の3次元2分割データベースは図12のデー
タベース表現202に示す節206aを確立することに
よりこの結果を達成する。節206a+側および−側は
節208aオブジェクト208が識別される所に存在す
る。実施例の2分割データベースにより非占有すなわち
空分割の場合にオブジェクト210が分割面204と交
差して生じる問題が解決される。例えば、図12のグラ
フィック表現200において、オブジェクト210は非
占有分割面224内で位置218を経て位置222へ移
動する。既に分割面224が確立されているため、デー
タベース表現202内には既存の空の節224aが存在
する。オブジェクト210が位置222へ移動すると、
データベース210内では単に節210aから224a
へ移動するだけである。この種の移動では、オブジェク
トは分割面内へ移動しその内で移動することができる。
しかしながら、占有分割面へ入ることはできない。した
がって、オブジェクトが分割面内へ移動するのを禁止す
る壁その他の構造が仮想世界内に存在する場合には、ソ
フトウェアにより分割面内へのオブジェクトの移動が禁
止される。こうして得られるグラフィック表面200で
はオブジェクトは単に停止するか禁止構造によりゆがめ
られる。
【0050】図13は分割面内へ移動するためのスペー
スが存在する別のオブジェクトにより占有された既存の
分割面内へオブジェクトが移動する時に何が起るかを示
している。グラフィック表現200は既存の分割面が無
いスペース222へオブジェクト210が移動する場合
を示す。この移動に応答して、実施例の3次元分割デー
タベースは+側および−側を有する分割面206を生成
する。データベース表現202は最初にオブジェクト2
08が節208aにより表現されオブジェクト210が
節210aにより表現されることを示している。しかし
ながら、分割面206が構成されると、データベース表
現は分割面を有する節206aがオブジェクト節208
a,222aを有するように構成されることを示す。オ
ブジェクト208にはオブジェクト節208aが付随し
オブジェクト210には節222aが付随するようにな
る。その結果、オブジェクト208、210に対して
は、実施例の2分割データベースによりオブジェクトや
障害の無い所ならばどこへでも移動できるようにされ
る。このようにして、3次元分割データベースは所望に
より新しい分割面を生成する。
【0051】3次元分割データベースの他に、実施例で
は装置の使用を説明するのに移動体アルゴリズムを使用
している。付属資料として示される付録Aは実施例の移
動体アルゴリズムと関連した3次元2分割データベース
用ソースコードおよび移動体アルゴリズムのリストであ
る。以下の説明にあるソースリスト及び機能は付属資料
付録A内に開示されている。
【0052】移動体アルゴリズムは2つの主モジュール
に分割され、一方はホストプロセッサ76で実行され他
方はGSP120で実行される。
【0053】3.座標系 3次元移動体アルゴリズムで
はいくつかの座標系が使用される。これらの座標系はオ
ブジェクト空間、仮想世界空間、プレーヤの観察空間お
よび視点面における位置の記述に使用される。
【0054】オブジェクト座標系はグラフィックオブジ
ェクトを記述する3次元座標系である。使用する変換は
オブジェクト座標系内のx,y,z軸が仮想世界座標系
(後記)内の対応する軸と平行である。オブジェクト空
間から(後記する)世界空間への変換は平行移動だけで
回転やスケーリングを必要としないため、ソフトウェア
が実施する計算が簡単になる。一般的な3次元系では回
転やスケーリングも支援されるが余分な計算を伴う。
【0055】仮想世界座標系は3次元座標系でありグラ
フィックオブジェクトは互いに相対的に表現される。そ
れはシミュレートされた世界の座標系である。xyz原
点は0の高さにあり、xおよびy軸は主コンパス方向と
一致している。+x方向は東であり+y方向は北であ
る。+z方向は上である。
【0056】プレーヤの観察座標系ではプレーヤに対し
て3次元座標系である。視点(プレーヤの目の仮定点)
はxyz原点である。+x方向は右向き、+y方向は下
向き、+z方向は(プレーヤから離れる)スクリーン進
入方向となる。移動体アルゴリズムではz軸は視点中心
を通るものとされている。観察空間で見られる物体は視
点(プレーヤの目)からビューポートの4つのコーナを
通る4本の線で頂点が形成される観察ピラミット内に含
まれるものである。ピラミットは視点表面に平行な
“近”(すなわち“こちら側”)クリップ面により截断
されている。
【0057】ビューポート座標空間はビューポートに対
する2次元座標系である。ビューポートはスクリーン上
の矩形観察面である。移動アルゴリズムではxy原点は
ビューポート中心に位置されている。+x方向は右、+
y方向は下である。観察面内で見られるオブジェクトは
ビューポート上への透視図である。
【0058】前記したように、オブジェクト空間から世
界空間へのグラフィックオブジェクトの変換は平行移動
だけである。世界空間から観察面への変換では平行移動
の後に回転が続く。変換プロセスの最終段階では2次元
ビューポート面への観察空間内の3次元オブジェクトの
透視投影が計算される。
【0059】オブジェクト、世界および観察面は全て右
手座標系で記述される。
【0060】4.BSPデータ構造の詳細説明 隠面問
題の解決法は通常ペインターアルゴリズムと呼ばれる。
図10〜図13は実施例の3次元区画すなわち分割デー
タベースを使用して描写を行う前にオブジェクトを予め
ソートする様子を示す。プリソートを行えば、3次元分
割データベースによりヘルメットカードは最初にプレー
ヤから遠いオブジェクトを描写し次にプレーヤに近いオ
ブジェクトを描くことができる。その結果プレーヤに近
いオブジェクトは遠いオブジェクトを不明瞭にするよう
に見える。図10は実施例の3次元分割データベースに
よりこれを達成する方法を示す。2進区画面(BSP)
は2つの息子(son)を有する各中間点節の左右の息
子間に定義される。視点座標をBPS式に挿入して視点
がBPPのどちら側にあるかを決定する。
【0061】移動体アルゴリズムの光景は段層3次元デ
ータベースに記憶される。データベースは2分木形式に
構成される。データベースの根元節へのポインターは3
次元データベースインタプリタ機構dbinterpへ
の引数として通される。
【0062】ツリー内の各終点(すなわち葉点)は数個
のポリゴンで構成される(代表的には凸ポリゴンであ
る)オブジェクトを定義する。このオブジェクト内のポ
リゴンはリストされた順序で描くことができ、背面消去
だけで隠面消去を行うことができる。正確に描くには、
ポリゴンは平面もしくは凸面とし頂点は時計廻りにリス
トしなければならない。
【0063】各中間点(すなわち葉ではない)節は一つ
もしくは2つの息子(子孫)を有している。通常、節に
一つの息子しかない場合それは左息子である。
【0064】中間点節に2つの息子がある場合、視点か
ら遠い息子のオブジェクトが最初に描かれ、次に息子に
近いオブジェクトが描かれる。結果の符号は2つの息子
を描く順序を決定するのに使用される。
【0065】データベース内の各節(終点もしくは中間
点)に対して節内の全オブジェクトを包囲する外接球面
が定義される。この球面はビューポート内で全く見るこ
とのできない節を除くのに使用される。移動体アルゴリ
ズムのリアルタイム更新速度は変換時に多くのワークを
調べる前に計算の初期段階でいくつかのオブジェクトを
除去する能力に依存する。外接球面が完全に“近”(す
なわち“こちら側”)クリップ面の前にあれば、球面内
の全オブジェクトを見えないものとして除去できる。球
面が完全にビューポートの上、下、右もしくは左にある
場合にもオブジェクトを除去することができる。球面が
視点から遠すぎてスクリーン上で1個のピクセルに近い
ものとなれば、それを1ドットとして表わすことができ
る。ピクセルよりも小さい球面は見えないものとして除
去される。ソフトウェアを効率的に実行するために、節
に対して定義される外接球面は節内の全オブジェクトを
包囲するのに必要な大きさよりも大きくしてはならな
い。
【0066】各節は世界座標系から変換されたそれ自体
の座標系を有している。節内のオブジェクトの位置は節
の座標原点に対して記述される。節の外接球面もこの原
点を中心としている。各中間点節によりその左右の息子
の原点位置はそれ自体の原点からのx,y,z変位とし
て定義される。データベース内のこれらの変位を変える
ことにより、左右の息子自体を記述するデータベース部
分を変えることなく左右の息子を節に対する一つの位置
から別の位置へ移動させることができる。
【0067】ハウスやツリー等のオブジェクトを表わす
終点節は2つ以上の中間点節により指示することがで
き、その場合にはオブジェクトの同じコピーが3次元光
景内の2つ以上の点に現れる。根元節の原点は世界座標
系の原点となる。
【0068】データベースには根元節の位置、データベ
ースの全サイズ、プレーヤの最初の位置、およびカラー
パレット等のキーパラメータを含むヘッダーが先行す
る。現在パレットは16色しかサポートしない。1ビッ
ト/ピクセルディスプレイの場合には、カラーパレット
の替りに16のディザーパターンが使用される。データ
ベースヘッダーの構造は次のようである。
【表1】
【0069】dbsizeフィールドにはデータベース
のバイト長が含まれる。この情報はGSP120メモリ
内のデータベースにどれだけの記憶装置を割付けるべき
かを知るのに必要である。
【0070】rootnodeフィールドは2分木の根
元節に対してオフセットされたビットアドレスであり、
オフセットは、rootnodeフィールドのメモリア
ドレスから定義される。rootnodeフィールドが
GSPアドレスAで開始されかつrootnodeフィ
ールドのオフセット値がVである場合には、根元節のア
ドレスは(A+V)と計算される。
【0071】startフィールドには開始x,y,z
座標、すなわち世界座標内のプレーヤの初期位置が含ま
れる。各座標値は8ビットの小数を有する32ビット固
定小数点数として表現される。(現在、開始方向は固定
されており、世界座標内の "北" すなわち+y方向を向
いている。)
【0072】paletフィールドにはTIGAカラー
パレットフォーマットに従って定義された16色パレッ
トが含まれる。bwpathフィールドは1ビット/ピ
クセルディスプレイ内で色の替りとして使用させる16
の4×8パターンを定義する。
【0073】3次元2分割データベースに対する2分木
内の中間点(すなわち葉ではない)節の構造は次のよう
である。
【表2】 構造は全体で176ビットすなわち22バイト長であ
る。節構造内の最初の16ビットには8ビット無符号外
接球面半径R、5ビットlog2(スケールファクタ
ー)F、3ビット節型識別子Nが含まれる。中間点節は
N=0により識別される。外接球面の半径はr=R<<
Fとして計算され、ここに "<<”は左シフト演算子で
ある。
【0074】第2の16ビットにより遠すぎてスクリー
ン上の1ピクセル(ドット)しか占有できない場合の節
の色が指定される。
【0075】オフセットLSONおよびRSONには節
のそれぞれ左および右の息子に対するビットオフセット
が含まれる。オフセットはGSPメモリ内のLSONお
よびRSONのビットアドレスから定義される。例え
ば、LSONフィールドがメモリアドレスAに記憶され
オフセット値Vを含む場合には、左の息子のアドレスは
(A+V)として計算される。
【0076】2つの子孫節のビットアドレスオフセット
LSONおよびRSONと共に、現在の節の中心(すな
わち原点)からのこれらの節の中心(すなわち原点)の
xyz変位が定義される。これらの変位は8ビット符号
付X,Y,Zフィールドとして記憶され、それにはX,
Y,Zのスケールファクターを定義する8ビットFフィ
ールドが続く。これら4個の8ビット値は1個の32ビ
ット長語とされる。現在の節の中心座標が(Xc,Y
c,Zc)であれば、子孫の中心座標(Xc′,Y
c′,Zc′)は次のように算出される。
【数1】 構造内の最後の語には、2分割面係数A,B,C,Dが
含まれる。各係数は4ビットである。左右の息子により
表わされるオブジェクトや複合オブジェクトは
【数2】 式で表わされる面により分離され、ここにx,y,zは
視点に対する世界空間内の親節の中心座標である。平面
式を評価してペインターのアルゴリズムに基いて左右の
息子を描くための適切な順序が決定される。f(x,
y,z)<0であれば、視点は分割面の左の息子側にあ
り、最初に右の息子が描かれ次に左の息子が描かれる。
そうでなけれは、左の息子が最初に描かれる。平面式係
数は4ビットA,B,C,Dフィールドを含む16ビッ
ト語内に記憶され、その各々により−8〜+7の範囲の
値が定義される。図14に適切な16ビット語を示す。
平面式は節中心(すなわち、原点)に対して定義され
る。平面が節中心と交差すればD=0である。
【0077】例えば、右の息子の中心がxyz変位(1
00,0,0)であれば、左の息子は(−100,0,
0)であり、分割面の式はX=0となる。BPP係数は
A=1,B=C=D=0に選定することができる。X>
0であれば、最初に左の息子が描かれ次に右の息子が描
かれ、X<=0であれば右の息子が最初に描かれる。
【0078】2分木データベース内の終点(葉)節は次
のようである。
【表3】 データ構造の最初の32ビットは、3ビット節型フィー
ルドNが0ではなく(終点節を示す)1に設定されるこ
とを除けば、中間点節に対するものと同じである。
【0079】節構造からのオフセット32ビットは(記
述される)外接ボックス情報に対する語オフセットを定
義する16ビットフィールドである。節構造が記号アド
レスNODEで始まりかつ外接ボックス仕様がアドレス
BBOXで始まるものとすると、語オフセットは(BB
OX−NODE−32)/16と定義される。外接ボッ
クス情報はオプションであり所望により省くことができ
る。外接ボックスが定義されない場合には、オフセット
の値は0である。
【0080】節構造のベースからのオフセット48ビッ
トは記述される3次元オブジェクトモデルの最初であ
り、数々の凸ポリゴンで構成されたオブジェクトの記述
である。外接ボックス情報はオブジェクトモデルに従
う。
【0081】各終点(葉)節は3次元オブジェクトの記
述を含む。3次元オブジェクトモデル情報は2つの部分
へ分割される。第1の部分はオブジェクト内の全ての3
次元点のリストである。第2の部分は第1の部分に与え
られる3次元点により定義されるオブジェクト内の全ポ
リゴンのリストである。オブジェクトモデルデータの一
般的なフォーマットは次のようである。
【表4】 第1の部分に表記されている。3次元点はオブジェクト
中心に対するそのx,y,z座標により定義される。リ
スト内の各3次元点は図15に示すように8ビットXフ
ィールド、8ビットYフィールド、8ビットZフィール
ドおよび8ビットF(スケールファクタ)を含む32ビ
ット値として表現される。オブジェクト中心に対する3
次元点のx,y,z座標はこれら4つのフィールドから
次のように算出される。
【数3】 X,Y,Zフィールドは−128〜+127の範囲の整
数である。フィールドFは0〜7の範囲の値に限定され
る。
【0082】3次元点リストの後にオブジェクト面リス
トが続く。各面は一連の頂点として定義される凸ポリゴ
ンである。面リストは16ビット0値で終る。リスト内
の個別の各面は次のフォーマットに従って定義される。
【表5】 上記各頂点V〔.〕はオブジェクトモデルデータベース
の第1の部分内に定義された3次元点リストへの指標と
して定義される16ビット値である。n個の3次元点が
与えられると、頂点は0〜n−1の範囲内の指標として
定義される。頂点は時計廻りに表記しなければならな
い、すなわち頂点はオブジェクト空間内の前向きポリゴ
ンの境界が時計廻りに横切される時に現れるnの順序で
与えられる。
【0083】特定移動体と光景内の静止物体との衝突を
検出する必要のある3次元応用もある。この移動体アル
ゴリズムでは、移動体は視点を包囲すると考えられる
"プレーヤ" である。現在実施されているように、衝突
検出は世界空間内の外接ボックスに基いている。
【0084】newinbbox機能により世界空間内
のそのxyz座標により定義される点がデータベース内
に定義されたいずれかの外接ボックスと衝突したかどう
かが決定される。衝突しておれば、newinbbox
によりデータベース内に割当てられた特定状態が侵害さ
れた外接ボックスへ戻される(状態値にはおそらく応用
内で何らかの意味が割当てられる)。衝突が検出されな
ければ、0値が戻される。
【0085】ツリー内の各終点節に対して一つ以上の外
接ボックスがオプションとして定義される。外接ボック
ス情報は終点節構造内のオブジェクトモデルデータに従
う。終点節構造へのオフセット32ビットは外接ボック
ス情報の開始に対する語オフセットである。オフセット
に対して0値が与えられると、節に対して外接ボックス
情報は定義されない。
【0086】外接ボックス限界との比較を容易にするた
めに、ボックス縁は強制的に世界空間内のx,y,z軸
に平行とされる。各外接ボックスのディメンジョンは6
つの座標より定義され、それは最小x,y,z座標、x
min、ymin、zmin、および最大x,y,z座
標xmax、ymax、zmaxである。これらの座標
は外接ボックスを含む中心に対して定義される。
【0087】一つ以上の外接ボックスのリストが0値で
終止される。リスト内の各外接ボックスは次のフォーマ
ットに従って定義される。
【表6】 外接ボックス型コードBにより実施すべき外接ボックス
テストの特性が定義される。これらの衝突テストモード
はB値により定義することができる。すなわち、3次元
空間内の特定点が(1)外接ボックスの内側、(2)ボ
ックスの外側、もしくは(3)ボックスの内側か外側
(条件付)である場合に衝突が検出される。
【0088】衝突が検出されると、(データベース著者
により意味が割当てられる)16ビット状態値Sが戻さ
れる。表記されたどの外接ボックスでも衝突が検出され
ない場合には、0値が戻される。
【0089】外接ボックス型コードBはまた外接ボック
スを "パッド”して厚くするか(正パッディング)ある
いは薄くするか(負パッディング)をも定義する。パッ
ディングを使用すると、パッディングの厚さは自動的に
視点と "近" (すなわち "こちら側”)クリップ面の距
離よりも大きいものとされる。このパッディング値は外
接ボックスの一辺と一致するポリゴンを視点が "貫通"
しないよう防止するのに有用である。パッディングを行
わない場合、ポリゴンを近zクリップ面で截断すること
により視点はポリゴンの他の辺を突き抜けることができ
る。次にポリゴンによりさえぎるべきオブジェクトが見
えるようになり、ソリッド3次元オブジェクトの錯覚が
損われる。視点が強制的に外接ボックスの外側とされる
か内側とされるかによって、パッディングは正もしくは
負として定義することができる。正のパッディングは
(外接ボックステストに対して中心座標が定義されてい
る)移動体が外接ボックスの外側のあるクリティカル距
離以内に接近する時点を検出するのに有用である。負の
パッディングは移動体が外接ボックスの内壁のある距離
以内に接近する時点を検出するのに使用することができ
る。所望により、ゼロパッディングを定義することもで
きる。
【0090】外接ボックス型コードBのフォーマットは
図16に定義されている。図16に示すように、状態の
14〜15ビット内のTMフィールドによりテストモー
ドが定義され、12〜13ビット内のPMフィールドに
よりパッドモードが選定される。
【0091】外接ボックス内の最小および最大xyz座
標は共に32ビット値として表現される。各値は4つの
8ビットフィールドで定義される3次元オブジェクト空
間内の点であり、それらは8ビットXフィールド、8ビ
ットYフィールド、8ビットZフィールド、および8ビ
ットF(スケールファクター)フィールドである。3次
元点に対する32ビット表現を図17に示す。オブジェ
クト中心に対する3次元点のx,y,z座標はこれら4
つのフィールドから次のように算出される。
【数4】 X,Y,Zフィールドは−128〜+127の範囲内の
整数である。Fフィールドは0〜7の範囲の値に制限さ
れる。
【0092】C. 実施例のレンダリングプロセス 1. ペインターのアルゴリズムを含むレンダリングシ
ステムの概要 BSPデータベース構造により、レンダリングプロセス
はペインターのアルゴリズムを使用して隠面を消去す
る。次に、実施例のレンダリングプロセスについて説明
する。
【0093】移動体アルゴリズムソフトウェアによりス
クリーン上で見える3次元光景が3段階で組立てられ
る。それは次の3段階である。 (1) 光景データベースの解釈 (2) 3次元変換 (3) スクリーンへのポリゴンのレンダリング これらのタスクは3つのソフトウェアモジュールにより
実施される。本章では3次元データベースおよび視点情
報をスクリーン上のリアルタイム像へ変換する際の各モ
ジュールの役割りについて説明する。
【0094】dbinterp機能はデータベースイン
タープリターである。それは入力として3次元光景記
述、視点位置および方位を含むデータベースを受け取
る。インタープリターの主要なタスクは不要な変換ワー
クを回避するためにできるだけ多くの見えないオブジェ
クト(スクリーン上で見えないオブジェクト)の自明の
拒絶を行うことである。また、インタープリターはオブ
ジェクトを描く順番を決定し、近いオブジェクトは遠い
オブジェクトの上に描く、これがペインターのアルゴリ
ズムである。データベースインタープリターの出力は、
3次元観察空間における位置と共に、変換すべきオブジ
ェクトのリストである。
【0095】xfmlist機能は3次元トランスフォ
ーマである。それはdbinterp機能から変換すべ
きオブジェクトのリストを入力として受け取る。トラン
スフォーマはオブジェクトを回転および平行移動させ、
所望によりクリップし、ビューポート上へ投影する。こ
の工程において、各3次元オブジェクトはその構成素ポ
リゴンへ分割され、描くべきポリゴンのリストが3次元
トランスフォーマから出力される。
【0096】displist(すなわち、displ
ist−colorもしくはdisplist−mon
o)機能はポリゴンドロア(polygon draw
er)である。それは3次元トランスフォーマ機能xf
rmlistが発生するポリゴンのリストを解釈し、リ
ストに現れる順序でスクリーンに描く。各ポリゴンはそ
の色および頂点リストにより定義される。最上頂点が常
にリストの最初に定義される。
【0097】dbinterp,xfrmlistおよ
びdisplist機能はリアルタイム性能を達成する
ための重要な役割りにより付録Aに示すアセンブリコー
ドで書かれる。displistモジュールは充分小さ
くその主ループ全体をTMS34010の256バイト
命令キャッシュ内に常駐できる。(TMS34020キ
ャッシュは2倍の大きさである)。dbinterpお
よびxfrmlistモジュールの主ループは大き過ぎ
てキャッシュに完全に嵌め込むことはできないが、これ
らの機能のコードは実行される命令がループごとにキャ
ッシュに常駐されたままとされる可能性を改善するよう
に慎重に配置される。
【0098】2. 座標系間の変換 世界空間から観
察空間への変換はその世界内におけるプレーヤの想定位
置および方位に基いている。移動体アルゴリズムは、4
×33次元変換マトリクスの12の係数に対応する、合
計12個の世界空間におけるプレーヤの位置および方位
を表わすパラメータを使用する。これらのパラメータは
世界空間におけるプレーヤのx,y,z座標および世界
に対するプレーヤの方位を記述する3個の直交単位ベク
トルu,v,wのx,y,z成分である。uベクトルは
プレーヤの右を指し、vベクトルはプレーヤに対して下
方を指し、wベクトルはプレーヤの前方方向を指す。す
なわち、u,v,wベクトルは観察座標系のx,y,z
軸と一致している。
【0099】厳密に言えば、プレーヤの方位を完全に定
義するのに2個の単位ベクトルしか必要とせず、第3の
単位ベクトルは常に6つの乗算を行って最初の2つの外
積として算出される。後記するように、3個の単位ベク
トルを全部維持することにより、グラフィックオブジェ
クトを世界空間から観察空間へ変換するのに使用する回
転の計算が幾分簡便となる。
【0100】世界座標(x,y,z)から観察空間座標
(x′,y′,z′)への変換には回転の続く変換が伴
う。
【0101】2ステップ変換プロセスを思い浮かべるた
めに、x,y,z座標軸がそれぞれ東、北および上を指
す世界を考える。最初にプレーヤは世界座標の原点に居
て、上を向き、右側が東向きとされているものとする。
すなわち、世界および観察座標系のx,y,z軸は一致
している。また、u,v,wベクトルは世界空間の座標
(xt,yt,zt)の点から世界空間の次のx,y,
z成分で表わされる任意の方位に発散するものとする。
【数5】 目標はu,v,wベクトルを変換して観察座標系のx,
y,z軸と一致させることである。この変換は3次元オ
ブジェクトを世界から観察座標へ変換するのに使用する
ものと同じである。
【0102】最初のステップは(3個の単位ベクトルを
含む)世界空間内の全オブジェクトを(−xt,−y
t,−zt)により変換することである。この変換によ
りu,v,wベクトルは観察座標原点とされる。(この
ステップの後では、世界原点は観察原点と一致しなくな
る。)
【0103】全オブジェクトを変換したら、次のステッ
プはそれらを回転させることである。回転はu,v,w
ベクトルを観察座標系のx,y,z軸と一致させたまま
行われる。回転マトリクスは下記変換の右側にあり、前
節で述べた変換座標に適用されたものである。
【数6】 前記9つの回転マトリクス係数は単位ベクトルu,v,
wの世界座標空間におけるx,y,z成分に過ぎない。
これが実際に作用することを証明しよう。これが実際に
正しい回転マトリクスであれば、u,v,wベクトルは
観察座標系のx,y,z軸と一致したままでなければな
らない。これは次のように表わすことができる。
【数7】 右側のマトリクスの各1は単位ベクトル自体のドット積
をとる結果であり、各0は2つの直交ベクトルのドット
積をとる結果である。
【0104】観察空間内の点のビューポート面上への各
投影は相似三角形の部分に基いており、フォーリーとバ
ンダム(the Foley & van Dam)お
よびニューマンとスプロール(the Newman
& Sproull)のテキストに記述されている。プ
レーヤ(目)が光景からdの距離にあり、観察座標
(x,y,z)の点が与えられているものとすると、こ
の点はビューポート面上の座標(x′,y′)に投影さ
れ、ここにx′=x*d/z,y′=y*d/zとな
る。(ここで*はかけ算を表す)
【0105】世界座標系に対するプレーヤの方位は3個
の直交単位ベクトルu,v,wを回転されることにより
変化する。
【0106】移動体アルゴリズムはソースファイル "f
lysim.C”に格納された "rotvec”機能を
呼び出して視点廻りに回転させる。回転は世界座標に対
するものか(例えば、大地と同じ高さの面内での回転)
もしくは観察座標に対するもの(ヨー(yaw)、ピッ
チ(pitch)、ロール(roll)とすることがで
きる。
【0107】プレーヤは世界z軸に平行なピボットベク
トル周りに3つの直交単位ベクトルを回転させかつプレ
ーヤの位置を通過させることにより光景をパン(pa
n)させることができる。(すなわち、大地と平行な面
内で回転が行われる。)世界座標系に対するプレーヤの
方位が最初に3個の単位ベクトルu=(Ux,Uy,U
z)、v=(Vx,Vy,Vz)およびw=(Wx,W
y,Wz)で表わされるものとする。パンは次のマトリ
クス計算により行われる。
【数8】 前記正の角度tは左へパンすることに対応する。単位ベ
クトルのx,y成分だけが影響を受けることをお判り願
いたい。Z成分は回転により変化することはない。移動
体アルゴリズムはuvturn機能すなわちライブラリ
機能を呼び出してこの種の回転を行う。
【0108】もう一種の回転によりプレーヤは、世界座
標に対してどのような方位にあるかに関わらず、自分の
基準フレームに対してヨー、ピッチもしくはロールする
ことができる。この種の回転中に、3個の単位ベクトル
(u,v,w)の中の一つは世界空間内で固定されたま
まであり、その周りを他の2つの単位ベクトルが回転す
るピボットベクトルとして作用する。次の6つの回転が
可能である。 1) 左へヨー:uをwに向ってピボットベクトルv周
りに回転する。 2) 右へヨー:wをuに向ってピボットベクトルv周
りに回転する。 3) 上方ピッチ:vをwに向ってピボットベクトルu
周りに回転する。 4) 下方ピッチ:wをvに向ってピボットベクトルu
周りに回転する。 5) 左へロール:uをvに向ってピボットベクトルw
周りに回転する。 6) 右ヘロール:vをuに向ってピボットベクトルw
周りに回転する。 例えば、次のマトリクス計算はuベクトルをwベクトル
に向って角度tだけ回転することによりヨーを実施す
る。
【数9】 この種の回転はuvturn機能を呼出して行われる。
回転する前に2つのベクトルが直交しておれば、その後
も直交したままである。回転角度が負であれば、プレー
ヤは左ではなく右へヨーする。他の5人のプレーヤに関
する回転は前記したものと同じである。
【0109】移動体アルゴリズムはここではプレーヤの
動作について極端に簡単なモデルを使用しているが、こ
のモデルは将来改善することができる。より正確なモデ
ルは肉体的力に基いてヨー、ピッチおよびロール動作を
計算するプレーヤの動作特性や空気力学に基づくことが
できる。ヨー、ピッチおよびロール角度が決定される
と、ヨー、ピッチ、ロールの順で3回rotvec機能
を呼出すことによりu,v,wベクトルを回転させるこ
とができる。
【0110】水平位置の計算およびプレーヤ位置感知や
フライト計器の設定に使用するヨー、ピッチおよびロー
角度が世界座標系に関して定義される。ヨー、ピッチお
よびロールの正弦および余弦は世界空間におけるx,
y,z投影で表わされるu,v,w単位ベクトルにより
計算することができる。正弦値および余弦値しか必要と
しないため、ヨー、ピッチおよびロール角度自体は計算
する必要がなくなる。
【0111】ヨー(すなわち、ヘッディング)角は世界
X軸に関して定義され、プレーヤが+X方向を指してお
ればそのヨー角度は0度である。シミュレータでは正の
ヨー角がuをwに向って(右翼を鼻部に向けて)回転さ
せることに対応している。単位ベクトルwの世界xy面
上への投影をrで表わすと、次式のようになる。
【数10】 (sqrt(A)は√Aを表す。*はかけ算を表す。)
ヨー角の正弦はWx/rとして算出され、余弦はWy/
rとして算出される。
【0112】ピッチ角は単位ベクトルwと世界xy面間
の角度である。シミュレータでは正のピッチ角はvをw
に向って(鼻部を引き上げる)回転させることに対応し
ている。ピッチの正弦はWzであり、余弦はrである。
【0113】ロール(すなわち、バンク(bank))
角は単位ベクトルuと世xy面間の角度である。シミュ
レータでは正のロール角はuをvに向って回転させる
(右へバンクする)ことに対応している。Sが量S=s
qrt(Uz*Uz+Vz*Vz)を表わすものとすれ
ば、ロール角の正弦は−Uz/Sとして算出され、余弦
は−Vz/Sとして算出される。
【0114】3. 水平線の描画 プレーヤが大地の
表面のかなり近くに居るものとすると、水平線は無限遠
にあるものとして満足にモデル化することができる。す
なわち、大地は平坦で無限遠と考えられる。水平線の特
徴がどの方向でも同じであれば、モデルはプレーヤの向
きを考慮する必要はない。水平線を適切に位置決めする
のにプレーヤのピッチおよびロールを考慮するだけでよ
い。ピッチ角は大地に対する鼻部の方位を表わし、プレ
ーヤがこの方位を維持しながらロールすることができれ
ば影響を受けることはない。
【0115】プレーヤの方位が上下にピッチすれば、そ
れにつれて水平線は動いて見えなければならない。動作
に対してロールが無いものとすると、コックピット窓を
通して見える水平線のレベル(スクリーン上の高さ)は
ピッチのみに依存する。プレーヤの高さすなわち高度は
ゼロと考えられる。水平線は無限遠であるため、プレー
ヤの任意の無限遠高度は無視することができる。
【0116】ロール角の影響を考慮するために、最初に
観察座標系のz軸上の無限遠点について考える。この点
は常にスクリーン上の同じ位置、ビューポート中心、に
あるものとする。基準点としてのビューポート中心に関
して、正のピッチ角(鼻部アップ)により基準点は水平
線よりも上となり(青空の中)、負のピッチ角により水
平線よりも下となる(地中)。
【0117】次に、水平線から基準点へ向う正規ベクト
ルを考える。このベクトルの水平線との交差は水平点と
呼ばれる点で生じる。ロール角は変化できるため、水平
点は基準点周りを回転するように見える。
【0118】ロール角の変化中にピッチを一定に保て
ば、水平点は基準点周りに円を描く。水平線とプレーヤ
の水平線との角度は世界に対するプレーヤのロール角の
負量である。円の半径はピッチ角だけの関数となる。プ
レーヤの光景からの想定距離をdとし、ピッチ角をaと
すると、円の半径rはr=d*tan(a)として算出
される。(負のrは基準点が "青空" ではなく "地中”
にあることを意味する。)
【0119】要約すれば、水平線を構成するためのステ
ップは次のようである。 (1) ピッチ角aおよび光景からのプレーヤの距離d
から水平点(水平線上の最も近い点)までの基準点(ビ
ューポート中心)の距離rを計算する。 (2) ロール角の負量だけ水平点を基準点周りに回転
させる。 (3) 水平線は水平点を通り、基準点から水平点への
線に直角である。 基準点がビューポートの中心にあり、水平点がビューポ
ートを包囲する円の外側にあれば、水平線は見えない。
【0120】4. データベースの解釈 dbint
erp機能は世界空間の3次元光景を含む階層データベ
ースを解釈する。データベースは終点(すなわち、葉)
節が描画すべき個々のオブジェクトである2分木として
構成される。dbinterp機能の出力は変換され、
クリップされ、スクリーン上へ投影されるポリゴンおよ
びドットのリストである。この機能はスクリーン上で見
えない3次元オブジェクトの自明拒絶を行うように設計
される。このため、機能は外接球に基いてクリッピング
を行い、遠いオブジェクトから不要な詳細を消去する。
【0121】2つの引数はポインターrootnode
およびqである。引数rootnodeは階層3次元デ
ータベースの根元節を指示する。引数qは出力アレイを
指示し、その中に機能は変換し、投影し、スクリーンへ
描画する必要のある3次元空間のオブジェクトリストを
記憶している。出力リストに現れるオブジェクトのシー
ケンスにより描画される順序が決定される。
【0122】dbinterpルーチン内の主ループが
2分木内の一つの節が根元節から始まるとみなせば反復
が行われる。各節は(終点節である場合の)アトミック
オブジェクトもしくは(中間点節である場合の)合成オ
ブジェクトを表わす。合成オブジェクトはいくつかのア
トミックオブジェクトにより構成される。アトミックオ
ブジェクトは終点節構造内に表記された順序で描くこと
ができる(代表的に多面体を構成する)数個のポリゴン
により構成される。(ペインターのアルゴリズムに従っ
て)オブジェクトを構成するポリゴンを正確なシーケン
スで描くのに必要なのは背面消去だけである。オブジェ
クト内の各頂点の3次元座標は節の中心に対して定義さ
れる。これにより、節に含まれるオブジェクトの記述に
影響を及ぼすことなく節を3次元仮想世界空間へ変換す
ることができる。
【0123】本移動体アルゴリズムはデータベース内の
各節に対して外接球を定義する必要がある。(終点およ
び中間点の)各節に対してデータベース構造には節内の
全オブジェクトを包囲する外接球の半径が含まれてい
る。球の中心は節の中心座標と一致するものとする。
【0124】中間点節の左右の息子はその節を構成する
オブジェクト群を2つの小群へ分割することを表わす。
中間点節の子孫が一つだけであれば、その子孫は左の息
子であり、右の息子のポインターは空(0)ポインター
であるものとする。
【0125】中間点節に2つの息子がある場合には、よ
り遠い息子(すなわち、息子に含まれるオブジェクト)
が最初に描かれ、その後で近い息子を描くことができ
る。各息子はやはり2つの息子を持つことができる節で
ありそれらは裏から表の順で描かれる。
【0126】2つの息子を有する節は2つの息子(した
がって、それに含まれるオブジェクト)をきれいに分割
する2分割面(BPP)の記述を含んでいる。BPPは
ペインターのアルゴリズム(the Painter’
s Algorithm)に従って2つの息子を描く順
序を決定するのに使用される。視点がBPPの左の息子
側にあれば、右の息子が最初に描かれ、次に左の息子が
描かれ、そうでなければ左の息子が最初に描かれる。B
PPはその平面式のA,B,C,D係数により定義さ
れ、
【数11】 ここに、視点はこの節の中心に対して座標(x,y,
z)に位置している。
【0127】dbinterp機能によりポリゴンはそ
の出力リストで2つのカテゴリーに分割され、それは
"近”および "遠" ポリゴンである。近および遠ポリゴ
ンへの分割は実際上距離ではなくサイズに基いて行われ
る。終点節に対する外接球のスクリーン上の投影がある
閾値サイズを越えると、オブジェクトを構成する全ポリ
ゴンが近ポリゴンとして処理され、そうでなければ遠ポ
リゴンとして処理される。
【0128】近ポリゴンはポリクリップされる、すなわ
ちビューポート限界へクリップされた後で描かれる。一
方、遠ポリゴンはポストクリップされる、すなわち描き
ながら1線ごとにクリップされる。ポリゴンを遠近型へ
分割するのは計算の効率を上げるためである。
【0129】ポストクリップは遠(小)ポリゴンに対し
て使用される。ポリクリップポリゴンは計算上のオーバ
ヘッドを幾分伴うため、小さいポリゴンをポストクリッ
プすればこのオーバヘッドは回避され、34×0の組込
みクリップハードウェアにより各水平塗り潰し線(フィ
ル線)を描画時に自動的にクリップすることができる。
【0130】しかしながら、近(大)ポリゴンは描画相
中に相当な時間を消費してしまうビューポート外側の各
ポリゴン部分を切り落すプリクリップにより一層効率的
に処理される。
【0131】オブジェクトの第3のカテゴリーは出力リ
スト内に定義することができる。節が遠すぎてスクリー
ン上のその外接球の投影がピクセルサイズに近ずく場合
には、出力リストでは1個のドットとして表わすことが
できる。前記いずれかのテストにより節が拒絶されれ
ば、それ以上の処理は必要ない。処理できるもう一つの
節があれば、その節はdbinterp機能の主ループ
の次の反復中に処理される。そうでなければ、出力リス
トが終止して機能が完了する。
【0132】前記5つのテストにより節が拒絶されなけ
れば、終点節であるか中間点節であるかを決定するチェ
ックが行われる。
【0133】中間点節である場合には、節の息子が一つ
であるか2つであるかを決定するチェックが行われる。
節の息子が一つである場合には、その息子はdbint
erp機能の主ループの次の反復中に処理される。節の
息子が2つである場合には、近い息子がスタック上へ押
し出されて後に処理され、遠い息子は主ループの次の反
復中に処理される。中間点節のデータ構造はその左右の
息子に対するポインターおよびその中心からその息子の
中心までのx,y,z変位を含んでいる。近い息子を表
わすためにスタック上へ押し出される4個のパラメータ
は息子の節データ構造に対するポインターおよび息子の
中心のx,y,z座標である。
【0134】5. 変換オブジェクト xfrmli
st機能は3次元オブジェクトのリストを観察空間へ変
換し、必要に応じクリップし、スクリーン上へ透視投影
する。このプロセスにおいて、オブジェクトはその構成
素ポリゴンへ分解される。スクリーン上の投影がピクセ
ルサイズに近ずくオブジェクトは単なるドットとして表
わすことができる。
【0135】2つの引数p.qはそれぞれ入出力リスト
開始のポインターである。入力リスト(すなわち、変換
リスト)により変換すべき3次元オブジェクトの数が定
義される。出力リスト(すなわち、ディスプレイリス
ト)によりスクリーン上へ描く準備のできた数個のポリ
ゴンおよびドット数が定義される。
【0136】xfrmlist機能の主ループを反復す
ることにより、 "近" オブジェクト、 "遠" オブジェク
トもしくは入力リストからのドットが処理される。db
interp機能の記述で説明したように、ポリゴンに
より構成されるオブジェクトはスクリーン上に現れる際
の近似サイズに基いて "近" もしくは "遠" として分類
される。
【0137】近もしくは遠オブジェクトの入力リストへ
の各エントリーは観察空間内のオブジェクト中心のxy
z座標値および3次元オブジェクトモデルに対するポイ
ンターを含んでいる。オブジェクトモデル内で、オブジ
ェクトのxyz座標がオブジェクト空間内のオブジェク
ト中心に対して定義される。xfrmlist機能は最
初に中心周りに回転させ、次に観察空間内の特定中心座
標(xc,yc,zc)へ変換することにより、オブジ
ェクト空間からのオブジェクトを観察空間へ変換する。
【0138】xfrmlist機能は近ポリゴンが要求
するものよりも小さい。遠ポリゴンを処理するxfrm
listルーチン部分は34010のキャッシュ内へ嵌
め込めるほど小さい。(TMS34020のキャッシュ
は2倍の大きさである。)統計上、遠ポリゴンは近ポリ
ゴンよりも著しく数が多く、遠ポリゴンコードはインタ
ラクションごとにキャッシュ内にとどまる可能性が高
い。
【0139】ポリゴンクリッパー機能、clippgo
n、を呼出す前に、xfrmlist機能により各近ポ
リゴンは正規化された観察ビラミッドへ変換される(フ
ォリーとバンダムはそのテキストでこれを "標準(ca
nonical)クリッピングボリューム" と呼んでい
る。)
【0140】clip.object機能は最初に背面
テストを行ってこれ以上処理することなくポリゴンを拒
絶できるかどうかを決定する。ポリゴンが前向きであれ
ば、この機能によりポリゴンは観察ピラミッドの境界
(クリップ面)と比較され、ピラミッドの外側のポリゴ
ン部分は切り落され、見えなくなる。
【0141】最悪の場合、ポリゴンは5つのクリップ面
全部を侵害することがある。この場合、ポリゴンは頂点
**リストを通る3本のパス内でクリップされる。最初の
パスではclip.object機能によりポリゴンは
"近" クリップ面へクリップされる。第2のパスではポ
リゴンは左右の面へクリップされ、第3のパスでは頂点
面及び底面へクリップされる。
【0142】スクリーン上へのclippgonに対し
て頂点リストを通る最終経路が必要である。こうして得
られるポリゴンは出力リスト(すなわち、ディスプレイ
リスト)へ出力される。
【0143】6. 光景のディスプレイ displ
ist機能(実際上は、2つの類似機能、displi
st color−colorおよびdisplist
−mono)によりディスプレイリストに現われるシー
ケンスでスクリーンに一連のポリゴンおよびドットが描
かれる。
【0144】ディスプレイリスト内の各ポリゴンは凸で
なければならず、ポリゴンの頂点を表わすxy座標対リ
ストとして定義される。リスト内の第1対のxy座標は
ポリゴン内の最上頂点、すなわち最小y値を有する頂
点、の位置を表わす。頂点は時計廻りに表記され、スク
リーン上のx座標は左から右へ増加し、y座標は頂部か
ら底部へ増加する。
【0145】"ドット" が1個のピクセルとしてスクリ
ーンに描かれる。変換リストはdbinterp機能か
ら出力されxfrmlist機能へ入力されるリストで
ある。それにより変換され透視投影される3次元オブジ
ェクトが定義されスクリーンへ描かれる。
【0146】変換リスト内の各ポリゴンおよびドットの
定義はメモリ内の均一な32ビット境界上で開始され、
各定義の第1項はグラフィックプリミティブの型を示す
16ビット機能コードである。
【0147】近および遠ポリゴンはそれぞれ1および2
の機能コードにより変換リスト内に指定される。ポリゴ
ンに対する変換リストの定義を下記に示す。
【表7】
【0148】パラメータxc,yc,zcは観察空間に
おけるオブジェクトの中心座標である。各座標は8ビッ
トの小数を有する32ビット固定小数点数として表わさ
れる。(これをFI×8フォーマットと呼ぶ)。最後の
パラメータは3次元オブジェクトモデルへのポインター
である。オブジェクトモデルによりオブジェクトを構成
する全ポリゴンの頂点が定義される。頂点のxyz座標
はオブジェクト空間内でオブジェクト中心に対して定義
される。
【0149】"ドット" は1個のピクセルであり、1の
機能コードにより変換リスト内に指定される。ドットを
定義する変換リストフォーマットを次に示す。
【表8】
【0150】定義の第2項はドットカラーを定義する1
6ビット値である。最後の2項は16ビット整数として
定義されるドットのx,y座標である。これらはスクリ
ーン上のドットのx,y座標であり、変換されスクリー
ン上へ投影された後で変換リストへ記載される。これら
の座標は変化されることなく変換リストからディスプレ
イリストへxfrmlist機能によりコピーされる。
【0151】変換リストは−1の機能コードにより終止
する。ディスプレイリストはxfrmlist機能によ
り出力されるリストであり、ディスプレイ機能へ入力さ
れる。それにより、スクリーンへ描かれるポリゴンおよ
びドットが定義される。
【0152】ディスプレイリスト内の各ポリゴンおよび
ドットの定義はメモリ内の均一な32ビット境界で開始
され、各定義の最初の項は描かれるグラフィックプリミ
ティブの型を示す8ビット機能コードである。
【0153】ポリゴンの機能コードは0である。ポリゴ
ンのディスプレイリストフォーマットを次に示す。
【表9】
【0154】定義内の第2の項は凸ポリゴン内の頂点の
数である。第3の項はポリゴンの色である。定義の残り
はスクリーン上の頂点の位置を表わすx,y座標対アレ
イである。最初のxy座標対によりポリゴンの最上頂
点、すなわち最小y値を有する頂点、の位置が定義され
る。スクリーン上のx座標は左から右へ増大し、y座標
は頂部から底部へ増大するものとして、頂点は時計廻り
に表記される。座標は2ビットの小数を有する固定小数
点値として定義される(これをFI×2フォーマットを
呼ぶ)。
【0155】"ドット" は1個のピクセルとして描か
れ、ディスプレイリストでは1の機能コードとして定義
される。ドットを定義するディスプレイフォーマットを
次に示す。
【表10】 定義の第2項は0を含むバイトである。第3項はドット
カラーである。最後の2つの項はドットのxy座標であ
る。座標は整数として定義される。
【0156】ディスプレイリストは−1の機能コードで
終止する。前記したように、隠面問題を解決するのに使
用される方法では3次元データベースが2分木として構
成される。ツリー内の中間点節が2つの子孫節へ分岐す
る場合は常に、2つの子孫を分離する2分面(BPP)
が定義される。データベースインタープリタはBPP式
を評価して視点がBPPのどちら側にあるかを決定す
る。これにより、ペインターのアルゴリズムを正確に実
施するのにどういう順序で2つの子孫を描くかが決定さ
れる。
【0157】実施例の応用例 A. フライトシミュレータ応用 次の検討は実施例
の移動体アルゴリズムおよび3次元分割データベースの
実行について記述するものである。付属資料にある付録
Aにソースコードを示す次のファイルはDS5000マ
イクロコントローラと共にTMS34010グラフィッ
クプロセッサからなるプロトタイプハードウェアを実行
するこれらのコンセプトのデモンストレーションを実施
する。ここに記載するコードはグラフィックプロセッサ
により実行される。
【0158】コードはmakefileファイルを使用
してコンパイルされる。Ic.cmdファイルはコンパ
イルされたコードを連結して実行可能なモジュールをP
CからTMS34010プロセッサへダウンロードす
る。プログラムのトップレベルのコントロールはfli
p.c.ファイルで実施される。このプログラムはwo
rld.asm.で表現された世界データベースを使用
して、後記する迷路ゲーム部を実現する。
【0159】ファイルは迷路ゲームシミュレーションを
実行するコードの主要部分を含んでいる。 flip.C. − トップレベルコントロール、初
期化 interp.C.− ユーザからの解釈入力コマンド move.C. − 世界データベース内の移動体の
更新 render.C.− 光景をディスプレーへ描写する 元のコードへの主要な拡張は主として次のファイルで行
われる。 flip.C − トップレベルコントロール、初
期化 move.C − 移動体拡張 scene.C − 移動体拡張 scene 0.C− 移動体拡張 scene 1.C− 移動体拡張 bbox.C − 外接ボックス衝突検出 bullet.C − 移動体拡張
【0160】B. "グレース" 、迷路ゲーム 図19
および図20に本実施例の仮想現実システムを使用でき
る多プレーヤゲーム応用例を示す。ゲームは "グレー
ス" と呼ばれ図19に示す迷路230を最初にうまく抜
け出ようとして別のプレーヤと競争するオブジェクトが
ある。迷路230には移動オベリスク232、マッシャ
ー234および回転ドア236等の落し穴が充満してい
る。オベリスク232は迷路230中を任意に移動しプ
レーヤを轢き一人のプレーヤの "生命" を奪う。実施例
では、プレーヤは9人の生命を有している。マッシャー
234は静止しているが、迷路230の経路内で上下に
跳動する。プレーヤは押し潰されることなくマッシャ2
34の下を通過しなければならない。プレーヤを押し潰
すと一人の生命が失われる。回転ドア236は静止して
いるが、軸周りに回転する。一方側は安全である。安全
側を通れば何も起きない。他方側は闇である。闇側を通
るとドアによりプレーヤは迷路230の任意の場所へ移
送される。
【0161】各プレーヤはある数のポイントすなわち生
命、例えば実施例では9人、で開始する。オベリスク2
32がプレーヤを轢き倒すか、マッシャー234がプレ
ーヤを捕えるか、もしくはこの容易に拡張できるゲーム
に対して考えついた任意他の落し穴をプレーヤが通り抜
けに失敗するたびにプレーヤは1ポイントを失う。迷路
230のある部分に天井が無い場合、プレーヤは空中に
ジャンプして迷路の頂部を一見することができる。プレ
ーヤはまた迷路に沿って "電子パンくず" を落すことが
できる。しかしながら、他のプレーヤは任意のプレーヤ
のマーカーを移動させて敵の努力をくつがえすことがで
きる。
【0162】図20にプレーヤがヘルメット28を介し
て見ることのできる迷路230の3次元図を示す。いく
つかの迷路を1個のROMカードに格納して、プレーヤ
は好きな迷路を選定するかもしくはゲーム機構や組込機
能に任意に選択させることができる。多レベル迷路によ
りゲームは(空間的および困難度の)ディメンジョンが
高くなる。図20では2人のプレーヤに対し迷路230
の通路244内に左マーク目標物240,242が示さ
れている。通路244には壁246,248,250お
よび天井252がある。通路244の床254上をプレ
ーヤが通りコーナを曲って迷路を進み続ける。迷路を進
み続けると、迷路230の光景が変ってゲームのデータ
ベースに従ったプレーヤの位置が反映される。
【0163】グレースゲームは実施例の一つの簡単な応
用にすぎない。娯楽/ゲーム応用の他に、実施例の仮想
現実システムは他のさまざまな分野に使用される。例え
ば、教育上では、建築科の学生は自分が設計したビルの
仮想世界モデルへ入ることができる。同様に、医科の学
生は脳のモデルを巡回することができ化学者は複雑な分
子の3次元モデルの内側およびその周りを歩くことがで
きる。実施例の多プレーヤ仮想現実システムにより、学
生と先生が同時に同じ仮想現実世界内に居ることができ
る。例えば、旅行代理店は潜在顧客に例えばディズニー
ワールド等のリゾート地のモデルの案内旅行を提供して
顧客の休暇計画を支援することができる。実施例の低コ
スト仮想現実システムを使用した他の応用も沢山ある。
これらの応用も明らかに本発明の範囲に入る。
【0164】実施例の特徴 実施例のさまざまな重要な特徴について要約する。
【0165】オペレータが仮想現実像の仮想現実世界に
居るかのように感じる仮想現実システムはイメージデー
タを仮想現実像として表示するディスプレイ回路と、イ
メージデータを格納するメモリと、オペレータが装着す
るヘルメットデバイスを含みヘルメットデバイスはディ
スプレイスクリーンを含みヘルメット装置のオペレータ
の動作に応答してディスプレイスクリーン上にイメージ
データを発生するようにされており、かつメモリを付随
するマイクロプロセッサが含まれていてメモリからイメ
ージデータを抽出しイメージデータからディスプレイを
制御してあたかもオペレータが仮想現実像の中でそれと
関っているかのように仮想現実像を変化させる。ディス
プレイ回路にはディスプレイスクリーンが含まれる。こ
のようなシステムにはさらにメモリ、マイクロプロセッ
サ、およびディスプレイ回路の所定部分を収容するシャ
ーシを含むことができる。また、仮想現実世界を構成す
るアプリケーションプログラムおよびデータをディスプ
レイ回路、メモリおよびマイクロプロセッサと関連ずけ
る回路を含むゲームカートリッジを含むことができる。
さらに、シャーシはゲームカートリッジをシャーシへ挿
入してメモリ、マイクロプロセッサおよびディスプレイ
回路の所定部分へ接続するように構成することができ
る。
【0166】オペレータが仮想現実世界に居ると感じ
る、仮想現実システムを使用して仮想現実像の仮想現実
世界を生成する方法はイメージデータを仮想現実像とし
てディスプレイ回路を付随するディスプレイスクリーン
上に表示し、イメージデータをメモリ内に格納し、ディ
スプレイスクリーンを含むヘルメット装置をオペレータ
に装着し、ヘルメット装置のオペレータの動作に応答し
てディスプレイスクリーン上にイメージデータを発生
し、メモリからイメージデータを抽出し、ディスプレイ
回路を制御してあたかもオペレータが仮想現実像の中に
居てそれと関っているかのように仮想現実像を変化させ
るステップからなっている。このような方法には、パワ
ーハンド組立体やジョイスティック装置を使用してイメ
ージデータ入力回路へ制御信号を挿入するステップを含
めることもできる。さらに、本方法にはメモリ、マイク
ロプロセッサ、およびディスプレイ回路の所定部分をシ
ステムシャーシ内に収容するステップを含めることがで
きる。本方法にはさらに仮想現実世界を構成するアプリ
ケーションプログラムおよびデータをゲームカートリッ
ジ回路へ格納してディスプレイ回路、メモリおよびマイ
クロプロセッサと関連ずけるステップを含めることがで
きる。本方法はさらにこのようなゲームカートリッジを
シャーシ内の所定の開口へ挿入してゲームカートリッジ
回路をメモリ、マイクロプロセッサおよびディスプレイ
回路の所定部分へ接続するステップを含めることができ
る。
【0167】仮想現実環境におけるオブジェクトの相対
位置および運動をモデル化する方法が示され、それは仮
想現実環境内の第1および第2のオブジェクトをグラフ
ィックディスプレイ上にグラフィック表示し、第1およ
び第2のオブジェクト間の第1の分割面を決定し、第1
の分割面を横切移動する第1もしくは第2のオブジェク
トに応答して第1および第2オブジェクト間の第2の分
割面を決定し、所定の観察点に対する仮想現実環境の第
1および第2のオブジェクトの相対位置に従って第1お
よび第2のオブジェクトを選択的に不明瞭とすることに
より仮想現実環境における第1および第2のオブジェク
トの移動をグラフィックディスプレイ上にグラフィック
表示するステップを含んでいる。このような方法には所
定セットの観察座標からオブジェクトの相対移動を決定
するステップを含めることもできる。この場合、オブジ
ェクトの相対移動を決定するこのようなステップは移動
体のヨー、ピッチおよび/もしくはロールを測定するの
に使用することができる。
【0168】仮想現実環境におけるオブジェクトの相対
位置および移動をモデル化するシステムが示され、それ
は仮想現実環境内の第1および第2のオブジェクトをグ
ラフィック表示するグラフィックディスプレイを含み、
表示は仮想現実環境内の所定の観察点に対する第1およ
び第2のオブジェクトの相対位置に従って第1および第
2のオブジェクトが選択的に不明瞭とされており、さら
に第1および第2のオブジェクト間の第1の分割面を決
定する回路と、第1の分割面を横切する第1もしくは第
2のオブジェクトに応答して第1および第2のオブジェ
クト間の第2の分割面を決定する回路を含んでいる。こ
のようなシステムはさらに複数人の観察者が仮想現実環
境に居ると感じることができかつ環境内部から仮想現実
環境における互いの相対位置および移動を観察すること
ができるようにする回路を含むことができる。本システ
ムはまた仮想現実環境を記述するデータを含む一つのマ
スターデータベースおよびオブジェクトの相対移動を記
述するデータによりマスターデータベースを更新する回
路を含むことができる。複数人の観察者が参加できる回
路を含むシステムに関して、各オブジェクトに関連する
終点節、第2の分割面に関連する中間点節、および第1
の分割面に関連する根元節を発生する回路を含むことも
できる。このような場合、終点節および中間点節発生回
路は第1の分割面と交差する少くとも一つのオブジェク
トに応答して中間点節を形成し中間点節を第2の分割面
と関連ずける回路を含むことができる。さらに、本シス
テムは一つの面内の回転視点からオブジェクトの相対移
動を決定する回路、もしくは所定セットの観察座標から
オブジェクトの相対移動を決定する回路を含むことがで
きる。後者の場合、システムは移動体の相対移動を決定
して移動体のヨー、ピッチおよび/もしくはロールを測
定する回路を含むこともできる。本システムはまた隠面
消去効果、オブジェクト間の相対移動を決定する回路お
よび/もしくはオブジェクト間の相対移動中に遠いオブ
ジェクトに基いてクリッピングを決定する回路を含むこ
ともできる。さらに、この回路には遠オブジェクト消去
を決定して透視近似を行う回路を含めることもできる。
【0169】特定実施例について本発明を説明してきた
が、これは制約的な意味合いを有するものではない。同
業者ならば前記説明を読めば本発明の別の実施例だけで
なく、開示した実施例のさまざまな変更が自明であると
思われる。発明の真の範囲内に入るこのような修正は特
許請求の範囲に入るものとする。
【0170】以上の説明に関して更に以下の項を開示す
る。 (1) オペレータが仮想現実像の仮想現実世界に居る
ように感じる仮想現実システムにおいて、該システム
は、ディスプレイスクリーンを含み仮想現実像としてイ
メージデータを表示するディスプレイ回路と、前記イメ
ージデータを格納するメモリと、前記ディスプレイスク
リーンを含みオペレータが装着するヘルメット装置のオ
ペレータの動作に応答して前記ディスプレイスクリーン
上にイメージデータを発生するヘルメット装置と、前記
イメージデータを前記メモリから抽出し前記イメージデ
ータにより前記ディスプレイ回路を制御してオペレータ
があたかも前記仮想現実世界内に居てそれに関わってい
るかのように前記仮想現実像を変化させる前記メモリに
関連するマイクロプロセッサにより構成される仮想現実
システム。
【0171】(2) 第1項記載の装置において、さら
に所定のオペレータ制御入力集合に応答して前記データ
スクリーン上にイメージデータを発生し前記イメージデ
ータを前記メモリ回路へ送出するイメージデータ入力回
路を具備する仮想現実システム。
【0172】(3) 第2項記載の装置において、前記
イメージデータ入力回路はパワーハンド組立体により構
成される仮想現実システム。
【0173】(4) 第2項記載の装置において、前記
イメージデータ入力回路はジョイスティック装置により
構成される仮想現実システム。
【0174】(5) 第1項記載の装置において、前記
ディスプレイ回路は前記ヘルメット装置に付随するヘル
メットカードにより構成され、前記ヘルメットカードは
ディスプレイ信号を発生して前記ディスプレイスクリー
ンへ送る回路により構成される仮想現実システム。
【0175】(6) 第5項記載の装置において、前記
ヘルメットカードは前記ディスプレイ回路の他の部分へ
選択的に接続することができる仮想現実システム。
【0176】(7) 第5項記載の装置において、前記
ディスプレイ回路は前記ディスプレイスクリーン用の前
記ディスプレイ信号を発生するのに使用する前記ヘルメ
ットカード用のグラフィック信号を発生するグラフィッ
ク信号プロセッサにより構成される、仮想現実システ
ム。
【0177】(8) 第5項記載の装置において、前記
メモリは複数枚のヘルメットカードが前記ディスプレイ
スクリーン用のディスプレイ信号を発生するためのデー
タを取得する主仮想世界データベースにより構成され
る、仮想現実システム。
【0178】(9) 第1項記載の装置において、さら
に前記メモリ、前記マイクロプロセッサ、および前記デ
ィスプレイ回路の所定部分を収容するためのシャーシを
具備する、仮想現実システム。
【0179】(10) オペレータが仮想現実世界に居
るかのように感じる仮想現実システムを使用して仮想現
実像の仮想現実世界を生成する方法において、該方法
は、ディスプレイ回路を付随するディスプレイスクリー
ン上に仮想現実像としてのイメージデータを表示し、前
記イメージデータをメモリ内に格納し、前記ディスプレ
イスクリーンを含むヘルメット装置をオペレータへ装着
し、前記ヘルメット装置のオペレータの動作に応答して
前記ディスプレイスクリーン上にイメージデータを発生
し、前記メモリから前記イメージデータを抽出し、前記
ディスプレイ回路を制御してあたかもオペレータが前記
仮想現実像内に居てそれに関わっているかのように前記
仮想現実像を変化させる、ステップを含む仮想現実世界
生成方法。
【0180】(11) 第10項記載の方法において、
さらに所定のオペレータ制御入力セットに応答して前記
データスクリーン上にイメージデータを発生し前記イメ
ージデータを前記メモリへ送出するステップを含む、仮
想現実世界生成方法。
【0181】(12) 第10項記載の方法において、
さらにヘルメットカード回路を使用してディスプレイ信
号を発生し前記ディスプレイスクリーンへ送るステップ
を含む、仮想現実世界生成方法。
【0182】(13) 第12項記載の方法において、
さらに複数枚の前記ヘルメットカードを前記ディスプレ
イ回路の他の部分と選択的に接続するステップを含む、
仮想現実世界生成方法。
【0183】(14) 第12項記載の方法において、
さらにグラフィック信号プロセッサを使用して前記ディ
スプレイスクリーン用の前記ディスプレイ信号を発生す
るのに使用する前記ヘルメットカード用のグラフィック
信号を発生するステップを含む、仮想現実世界生成方
法。
【0184】(15) 第12項記載の方法において、
さらに複数枚のヘルメットカードがデータを取得できる
主仮想世界データベースを前記メモリ内に記憶させ、前
記主仮想世界データベースの前記データに応答して前記
複数のディスプレイスクリーンに対するディスプレイ信
号を発生するステップを含む、仮想現実世界生成方法。
【0185】(16) 仮想現実環境における物体の相
対位置および運動をモデル化する方法において、該方法
は、仮想現実環境における第1および第2の物体をグラ
フィックディスプレイ上にグラフィック表示し、前記第
1および第2の物体間の第1の分割面を決定し、前記第
1の分割面を横切移動する前記第1もしくは第2の物体
のいずれかに応答して前記第1および第2の物体間の第
2の分割面を決定し、前記仮想現実環境における前記第
1および第2の物体の所定の観察点に対する相対位置に
従って前記第1および第2の物体を選択的に不明瞭とす
ることにより前記仮想現実環境内の前記第1および第2
の物体の運動を前記グラフィックディスプレイ上にグラ
フィック表示する、ステップを含むモデル化方法。
【0186】(17) 第16項記載の方法において、
さらに複数ビューアが前記仮想現実環境内に居るように
感じることができかつ前記仮想現実環境内における互い
の相対位置および運動を環境内部から観察できるように
するステップを含む、モデル化方法。
【0187】(18) 第17項記載の方法において、
さらに仮想現実環境を記述するデータを主データベース
に格納し前記物体の相対運動を記述するデータにより前
記主データベースを更新するステップを含む、モデル化
方法。
【0188】(19) 第17項記載の方法において、
さらに前記各物体に関する終点節と、前記第2の分割面
に関する中間点節と、前記第1の分割面に関する根元点
節(ルートノード)を発生するステップを含む、モデル
化方法。
【0189】(20) 第19項記載の方法において、
前記終点節および中間点節発生ステップはさらに前記第
1の分割面と交差する少くとも一つの前記物体に応答し
て中間点節を形成し、かつ前記中間点節を前記第2の分
割面と関連ずけるステップを含む、モデル化方法。
【0190】(21) 第16項記載の方法において、
さらに面内の回転視点から物体の相対運動を決定するス
テップを含む、モデル化方法。
【0191】(22) 第16項記載の方法において、
さらに所定の観察座標セットから物体の相対運動を決定
するステップを含む、モデル化方法。
【0192】(23) 第16項記載の方法において、
さらに物体間の相対運動の隠面消去効果を決定するステ
ップを含む、モデル化方法。
【0193】(24) 第16項記載の方法において、
さらに物体間の相対運動中に遠方物体に基いてクリッピ
ングを決定するステップを含む、モデル化方法。
【0194】(25) 第16項記載の方法において、
さらに透視近似を行うための遠方物体の消去を決定する
ステップを含む、モデル化方法。
【0195】(26) オペレータが仮想現実像62の
仮想現実世界74内に居るように感じる仮想現実システ
ム20はイメージデータを仮想現実像62として表示す
るディスプレイスクリーン60を含んでいる。メモリ回
路はイメージデータを格納している。ヘルメット装置2
8がオペレータに装着されオペレータの動作および制御
信号に応答してディスプレイスクリーン60上にイメー
ジデータを発生するディスプレイスクリーン60を含ん
でいる。マイクロプロセッサ76にはメモリ回路が付随
されメモリ回路からイメージデータを抽出してディスプ
レイ回路36を制御しオペレータがあたかも仮想現実像
の中に居てそれに関っているかのように仮想現実像62
を変化させる。仮想現実システム20によりさまざまな
仮想現実技術を使用する低コストシステムが提供され
る。仮想現実世界74内のオブジェクトの相対位置およ
び移動をモデル化するシステムおよび方法は仮想現実世
界74内の第1および第2のオブジェクトをグラフィッ
クディスプレイ(60および68)上にグラフィック表
示し、第1および第2のオブジェクト間の分割面を決定
し、第1の分割面を横切移動する前記第1もしくは第2
のオブジェクトに応答して第1および第2のオブジェク
ト間の第2の分割面を決定することを含んでいる。次
に、本方法およびシステムにより所定の観察点に対する
相対位置に従って第1および第2のオブジェクトを選択
的に不明瞭とすることにより仮想現実世界74内の第1
および第2のオブジェクトの移動がグラフィックディス
プレイ(60および68)上にグラフィック表示され
る。
【図面の簡単な説明】
【図1】本発明の実施例を使用した2人のプレーヤの概
念図。
【図2】実施例の仮想現実システムの全体アーキテクチ
ュアの略ブロック図。
【図3】実施例のヘルメットボードアーキテクチュアの
略ブロック図。
【図4】実施例の仮想現実システムの略ブロック図。
【図5】実施例の詳細回路図。
【図6】実施例の詳細回路図。
【図7】実施例の詳細回路図
【図8】実施例の主プロセッサの基本ソフトウェアフロ
ー図。
【図9】実施例のヘルメットプロセッサの基本ソフトウ
ェアフロー図。
【図10】実施例の移動体およびオブジェクトデータベ
ースを示す図。
【図11】実施例の移動体およびオブジェクトデータベ
ースを示す図。
【図12】実施例の移動体およびオブジェクトデータベ
ースを示す図。
【図13】実施例の移動体およびオブジェクトデータベ
ースを示す図。
【図14】実施例において移動体アルゴリズムおよび3
次元2分割データベースを実現するのに使用する倍長語
のフィールドを示す図。
【図15】実施例において移動体アルゴリズムおよび3
次元2分割データベースを実現するのに使用する倍長語
のフィールドを示す図。
【図16】実施例において移動体アルゴリズムおよび3
次元2分割データベースを実現するのに使用する倍長語
のフィールドを示す図。
【図17】実施例において移動体アルゴリズムおよび3
次元2分割データベースを実現するのに使用する倍長語
のフィールドを示す図。
【図18】実施例において移動体アルゴリズムおよび3
次元2分割データベースを実現するのに使用する倍長語
のフィールドを示す図。
【図19】実施例のシステムおよび方法を使用した応用
例を示す図。
【図20】実施例のシステムおよび方法を使用した応用
例を示す図。
【符号の説明】
20 仮想現実システム 28 ヘルメット装置 36 ディスプレイ回路 60 グラフィックディスプレイ 62 仮想現実像 68 グラフィックディスプレイ 74 仮想現実世界 76 マイクロプロセッサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダニエル エム.ドナヒュー アメリカ合衆国テキサス州ダラス,ラ コ サ 7705 (72)発明者 ジャッド イー.ヒープ アメリカ合衆国テキサス州ダラス,スプリ ング メドウ 5330 (72)発明者 アンドリュー ケイ.スミス アメリカ合衆国マサチューセッツ州ボスト ン,マウント バーノン ストリート 62 (72)発明者 トーマス エム.シープ アメリカ合衆国テキサス州ガーランド,デ ンマーク ドライブ 2406 (72)発明者 ドナルド ダブリュ.アドキンズ アメリカ合衆国テキサス州オーク リー フ,ロァリング クリーク ドライブ 603

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 オペレータが仮想現実像の仮想現実世界
    に居るように感じる仮想現実システムにおいて、該シス
    テムは、 ディスプレイスクリーンを含み仮想現実像としてイメー
    ジデータを表示するディスプレイ回路と;前記イメージ
    データを格納するメモリと;前記ディスプレイスクリー
    ンを含みオペレータが装着するヘルメット装置であっ
    て、オペレータの動作に応答して前記ディスプレイスク
    リーン上にイメージデータを発生するヘルメット装置
    と;前記イメージデータを前記メモリから抽出し前記イ
    メージデータにより前記ディスプレイ回路を制御してオ
    ペレータがあたかも前記仮想現実世界内に居てそれに関
    わっているかのように前記仮想現実像を変化させる前記
    メモリに関連するマイクロプロセッサ;を含む仮想現実
    システム。
  2. 【請求項2】 オペレータが仮想現実世界に居るかのよ
    うに感じる仮想現実システムを使用して仮想現実像の仮
    想現実世界を生成する方法において、該方法は、 該ディスプレイ回路に付随するディスプレイスクリーン
    上に仮想現実像としてのイメージデータを表示し;前記
    イメージデータをメモリ内に格納し;前記ディスプレイ
    スクリーンを含むヘルメット装置をオペレータに装着
    し;前記ヘルメット装置のオペレータの動作に応答して
    前記ディスプレイスクリーン上にイメージデータを発生
    し;前記メモリから前記イメージデータを抽出し;前記
    ディスプレイ回路を制御してあたかもオペレータが前記
    仮想現実像内に居てそれに関わっているかのように前記
    仮想現実像を変化させる;ステップを含む仮想現実世界
    生成方法。
JP4323395A 1991-12-02 1992-12-02 仮想現実システムおよび仮想現実像の仮想現実世界生成方法 Pending JPH06236432A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US80133291A 1991-12-02 1991-12-02
US80114491A 1991-12-02 1991-12-02
US801144 1991-12-02
US801332 1991-12-02

Publications (1)

Publication Number Publication Date
JPH06236432A true JPH06236432A (ja) 1994-08-23

Family

ID=27122298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4323395A Pending JPH06236432A (ja) 1991-12-02 1992-12-02 仮想現実システムおよび仮想現実像の仮想現実世界生成方法

Country Status (2)

Country Link
EP (2) EP0545684A2 (ja)
JP (1) JPH06236432A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244619A (ja) * 1994-01-14 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 仮想空間表示システム
JP2000112886A (ja) * 1998-10-02 2000-04-21 Nekusutekku:Kk ネットワークシステム
JP2017199238A (ja) * 2016-04-28 2017-11-02 株式会社カプコン 仮想空間表示システム
KR20190066592A (ko) 2017-12-05 2019-06-13 신에쓰 가가꾸 고교 가부시끼가이샤 반사 방지 적층막, 반사 방지 적층막의 형성 방법, 및 안경형 디스플레이
KR20190072472A (ko) 2017-12-15 2019-06-25 신에쓰 가가꾸 고교 가부시끼가이샤 반사 방지막, 반사 방지막의 제조 방법, 및 안경형 디스플레이
KR20190075837A (ko) 2017-12-21 2019-07-01 신에쓰 가가꾸 고교 가부시끼가이샤 반사 방지막, 반사 방지막의 제조 방법, 및 안경형 디스플레이

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2301216A (en) * 1995-05-25 1996-11-27 Philips Electronics Uk Ltd Display headset
GB9525047D0 (en) 1995-12-07 1996-02-07 Philips Electronics Nv Virtual body control device
CN112604283B (zh) * 2020-12-29 2023-07-21 珠海金山数字网络科技有限公司 数据渲染方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244619A (ja) * 1994-01-14 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 仮想空間表示システム
JP2000112886A (ja) * 1998-10-02 2000-04-21 Nekusutekku:Kk ネットワークシステム
JP2017199238A (ja) * 2016-04-28 2017-11-02 株式会社カプコン 仮想空間表示システム
KR20190066592A (ko) 2017-12-05 2019-06-13 신에쓰 가가꾸 고교 가부시끼가이샤 반사 방지 적층막, 반사 방지 적층막의 형성 방법, 및 안경형 디스플레이
US10901120B2 (en) 2017-12-05 2021-01-26 Shin-Etsu Chemical Co., Ltd. Transparent antireflective lamination film, method of forming antireflective lamination film, and eyeglass type display
KR20190072472A (ko) 2017-12-15 2019-06-25 신에쓰 가가꾸 고교 가부시끼가이샤 반사 방지막, 반사 방지막의 제조 방법, 및 안경형 디스플레이
US11762127B2 (en) 2017-12-15 2023-09-19 Shin-Etsu Chemical Co., Ltd. Antireflective film including a photoresist material containing a polymer compound having an aromatic group, method of producing antireflective film, and eyeglass type display
KR20190075837A (ko) 2017-12-21 2019-07-01 신에쓰 가가꾸 고교 가부시끼가이샤 반사 방지막, 반사 방지막의 제조 방법, 및 안경형 디스플레이
US10996378B2 (en) 2017-12-21 2021-05-04 Shin-Etsu Chemical Co., Ltd. Antireflective film, method of producing antireflective film, and eyeglass type display

Also Published As

Publication number Publication date
EP0545684A3 (ja) 1994-01-19
EP0545684A2 (en) 1993-06-09
EP0961233A3 (en) 2000-03-15
EP0961233A2 (en) 1999-12-01

Similar Documents

Publication Publication Date Title
US6054991A (en) Method of modeling player position and movement in a virtual reality system
US10672172B2 (en) Time-dependent client inactivity indicia in a multi-user animation environment
Vince Virtual reality systems
Vince Introduction to virtual reality
US7497779B2 (en) Video game including time dilation effect and a storage medium storing software for the video game
JP3461980B2 (ja) 高速描画方法および装置
Ware Designing with a 2½D attitude
House et al. Foundations of physically based modeling and animation
Montero et al. Designing and implementing interactive and realistic augmented reality experiences
Pratt et al. A software architecture for the construction and management of real-time virtual worlds
JPH06236432A (ja) 仮想現実システムおよび仮想現実像の仮想現実世界生成方法
Fröhlich The virtual oceanarium
Thorn Learn unity for 2d game development
Harrison Introduction to 3D Game Engine Design Using DirectX 9 and C
Thalmann et al. Crowd and group animation
Kiourt et al. Realistic simulation of cultural heritage
WO2002005215A1 (en) 3d virtual landscape database
Kessler Virtual environment models
Christou et al. Using realistic virtual environments in the study of spatial encoding
Wu et al. Quantifiable fine-grain occlusion removal assistance for efficient vr exploration
CN109716395A (zh) 在虚拟现实中保持对象稳定性
Montero Montes et al. Designing and implementing interactive and realistic augmented reality experiences
Christiansen The use of Imposters in Interactive 3D Graphics Systems
HARRISON 3D Game Engine Design Using DirectX 9 and C
Aliaga Virtual and real object collisions in a merged environment