(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023087680
(43)【公開日】2023-06-23
(54)【発明の名称】マルチレンダリングユーザーインターフェース
(51)【国際特許分類】
G06T 15/00 20110101AFI20230616BHJP
G06F 3/04845 20220101ALI20230616BHJP
【FI】
G06T15/00 501
G06F3/04845
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022198451
(22)【出願日】2022-12-13
(31)【優先権主張番号】21306753.1
(32)【優先日】2021-12-13
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】クリストフ デルフィーノ
【テーマコード(参考)】
5B080
5E555
【Fターム(参考)】
5B080AA19
5B080BA02
5B080BA04
5B080CA01
5B080CA04
5B080DA06
5B080FA02
5B080GA00
5E555AA27
5E555BA02
5E555BA70
5E555BB02
5E555BC08
5E555DB04
5E555DB18
5E555DB41
5E555DC11
5E555DC19
5E555DC43
5E555FA00
(57)【要約】
【課題】本開示は、特に少なくとも2つの3Dモデルの視覚化モードをレンダリングするコンピューター実装方法に関連する。
【解決手段】方法は第1の視覚化モードに従ってメインビューに3Dモデルをレンダリングするステップ(S10)を備える。方法はメインビューを少なくとも2つのスプリットビューに分割するステップ(S20)を更に備える。スプリットビュー(100)のそれぞれは複数の視覚化モードのうちの1つの視覚化モードに対応する。方法はスプリットビューのそれぞれに対して現在のスプリットビューに関連した3Dモデルのレンダリング領域を決定するステップ(S30)を更に備える。方法はその対応する視覚化モード及び決定されたレンダリング領域に従ってスプリットビューのそれぞれの3Dモデルをレンダリングするステップ(S40)を更に備える。これは3Dモデルの様々な視覚化モードを同時にレンダリングするための改良された方法を構成する。
【選択図】
図7A
【特許請求の範囲】
【請求項1】
少なくとも2つの3Dモデルの視覚化モードをレンダリングするためのコンピューター実装方法であって、
第1の視覚化モードに従って、メインビュー(200)に前記3Dモデルをレンダリングするステップ(S10)と、
前記メインビュー(200)を少なくとも2つのスプリットビュー(100)に分割するステップ(S20)であって、スプリットビュー(100)のそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する、分割するステップと、
スプリットビューのそれぞれに対して、現在の前記スプリットビューに関連した前記3Dモデルのレンダリング領域を決定するステップ(S30)と、
スプリットビューのそれぞれに対応する視覚化モードおよび決定されたレンダリング領域に従って、スプリットビュー(100)のそれぞれにおける前記3Dモデルをレンダリングするステップ(S40)と
を特徴とする方法。
【請求項2】
前記複数の視覚化モードのうちの1つの選択を受信するステップ(S50)と、
少なくとも前記2つのスプリットビュー(100)を除去するステップ(S60)と、
前記メインビュー(200)における選択された前記視覚化モードに従って、前記3Dモデルをレンダリングするステップ(S70)と
をさらに備えることを特徴とする請求項1に記載のコンピューター実装方法。
【請求項3】
前記受信するステップ(S50)は、選択された前記視覚化モードに対応する1つのスプリットビュー(100)に関してユーザーインタラクションを備えることを特徴とする請求項2に記載のコンピューター実装方法。
【請求項4】
スプリットビュー(100)のそれぞれは、2Dインターフェース(140)を備え、前記2Dインターフェースは、1つのアイコンおよび/またはテキストを備えることを特徴とする請求項1から3のいずれかに記載のコンピューター実装方法。
【請求項5】
前記スプリットビュー(100)は、共有された円中心(160)を有した同じ中心角および半径の長さを持つ円セクタであることを特徴とする請求項1から4のいずれかに記載のコンピューター実装方法。
【請求項6】
前記スプリットビュー(100)は、共有された円中心(160)を有した同じ中心角および同じ半径の長さを持つ円セクタであり、および前記2Dインターフェースは、前記スプリットビュー(100)の共有された前記中心(160)と、前記スプリットビュー(100)との間に表示されることを特徴とする請求項4に記載のコンピューター実装方法。
【請求項7】
前記スプリットビュー(100)のうち1つを選択し、および前記スプリットビューの中心角を増大させることによって、および/または前記スプリットビューの半径の長さを増加させることによって、前記スプリットビューを拡大するステップ(S80)をさらに備えることを特徴とする請求項5または6に記載のコンピューター実装方法。
【請求項8】
ユーザーからの入力の受信時に、前記スプリットビュー(100)のうちの1つを、共有された前記円中心(160)の周囲で回転する、および/または前記スプリットビュー(100)のうちの1つを拡大するステップ(S90)であって、前記入力は、前記スプリットビュー(100)のうちの1つに関してインタラクションを備える、拡大するステップをさらに備えることを特徴とする請求項6または7に記載のコンピューター実装方法。
【請求項9】
前記スプリットビュー(100)の共有された前記中心(160)は、前記メインビュー(200)の内側に位置し、および共有された前記中心(160)をユーザーからの入力によって移動させるステップ(S100)をさらに備えることを特徴とする請求項6から8のいずれかに記載のコンピューター実装方法。
【請求項10】
前記スプリットビュー(100)の共有された前記中心(160)は、前記メインビューアーの外側に位置することを特徴とする請求項6から8のいずれか一項に記載のコンピューター実装方法。
【請求項11】
スプリットビュー(100)のそれぞれは、半径の線(110)によって、または角度間隔によって、前記スプリットビューのそれぞれに隣接するスプリットビューから区切られることを特徴とする請求項1から10のいずれかに記載のコンピューター実装方法。
【請求項12】
請求項1から11のいずれかに記載の方法を実行する命令を備えるコンピュータープログラム。
【請求項13】
請求項12に記載のコンピュータープログラムを記録したコンピューター可読記憶媒体。
【請求項14】
請求項1から11のいずれかに記載の方法を実行するように適合されたコンピューター。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータープログラムおよびシステムの分野に関連し、およびより具体的には、3Dモデルの視覚化モードをレンダリングするための方法、システムおよびプログラムに関連する。
【背景技術】
【0002】
今日、ユーザーインターフェースは広範囲のアプリケーションで使用されている。実際、ユーザーインターフェースによって、様々な画角に応じてユーザーが3Dオブジェクトとインタラクトすることが可能となる。ユーザーインターフェースは、広範囲のコンテキストに対応可能である。例えば、3Dモデリングおよび/またはレンダリングは、ユーザーとインタラクトするコンピューターによってその場所で実行され得る、またはサーバでリモートにおいて実行され得、ユーザーは、サーバによって送信される画像とインタラクトする。後者の場合、ユーザーインターフェースおよび対応するツールは、SaaS(サービス型ソフトウェア)によって提供され得る。
【0003】
インターフェースによって可能となるアプリケーションの1つとしてCAD(コンピューター支援設計)が挙げられ、それはコンピューターを使用して3Dで製品を設計することで構成される。オブジェクトの設計、エンジニアリング、および製造のために、多数のシステムおよびプログラムが市場で提供されている。CAEは、コンピューター援用エンジニアリング(Computer-Aided Engineering)の頭字語であり、例えば、それは将来の製品の物理的動作をシミュレーションするためのソフトウェアソリューションに関連する。CAMは、コンピューター支援製造(Computer-Aided Manufacturing)の頭字語であり、例えば、それは製造プロセスと操作とを明確にするためのソフトウェアソリューションに関連する。このようなコンピューター支援設計システムでは、グラフィカルユーザーインターフェースが技術の効率性に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理(PLM)システム内に組み込まれ得る。PLMは、企業が製品データを共有し、共通プロセスを適用し、および拡大企業の概念にわたって、構想からそれらの寿命の終わりまで製品の開発のために企業知識を活用する手助けとなる事業戦略について言及する。
【0004】
ダッソーシステムズによって(CATIA、ENOVIA、およびDELMIAの商標の下で)提供されるPLMソリューションは、製品エンジニアリングの知識を体系化するエンジニアリングハブ、製造エンジニアリングの知識を管理する製造ハブ、および企業統合とエンジニアリングハブおよび製造ハブの双方への接続とを可能にするエンタープライズハブを提供する。このシステムは全体として、製品、プロセス、リソースをリンクさせるオープンオブジェクトモデルを提供して、ダイナミックな知識ベースの製品製作および最適化された製品定義、製造準備、生産、およびサービスを推進する意思決定支援を可能にする。
【0005】
CADソリューションおよびオーサリングプログラムでは、ユーザーは様々なレンダー(renders)を見ることができる必要があり、レンダーのそれぞれは3Dモデルの特定の視覚化モードに対応する。様々なレンダーの3Dモデルの視覚化モードを選択するとき、または様々なレンダーの3Dシーン全体の視覚化モードを選択するときでさえ、それは利用できる様々な視覚化モードをユーザーがレンダリングする手助けとなる。3Dモデルの視覚化モードの変更、または3Dシーンの視覚化モードの変更は、3Dモデルまたは3Dシーン全体に基づいて、本物そっくりのレンダリング画像/動画または3Dインタラクティブ体験のようなマーケティングの成果物を製造するために用いられ得る。3Dモデルの視覚化モードを変更すること、または3Dシーンの視覚化モードを変更することはまた、3Dモデルの設計中に有益な場合がある。視覚化モードは、3Dモデルのレンダリングを構成するパラメーターのセットを備える。これらのパラメーターは、3Dモデルをレンダリングするためのインプットとして使用される。これらのパラメーターは、例えば中央処理装置(CPU)および/またはグラフィック処理装置(GPU)リソースなどのコンピューターリソースに向けられた機能データであるため、ユーザーは、これらのパラメーターから3Dモデルについての視覚化モードのレンダーを直接推測することはできない。
【0006】
一例として、CADソリューションは、3Dモデルの様々な視覚化モードをレンダリングするための異なるユーザーインターフェースを提供する。レンダリングという用語の一般的な定義は、コンピュータープログラムによって3Dモデルから写実的画像、または非写実的画像を生成するプロセスである。結果として生じる画像は、レンダーと言及される。レンダーはまた、一般にレンダリングとも呼ばれる。レンダリングは、コンピューターリソースの観点から見ると非常に要求の厳しいプロセスである。レンダリングは、CPU内および/または例えばGPUなどのレンダリングデバイス内のグラフィックスパイプラインによって処理される。それ故に、リアルタイムのレンダリングは、位相エンティティの数が多いCAD3Dモデルに対して特に難易度が高い。
【0007】
3Dモデルの様々な視覚化モードをレンダリングするための公知の方法の第1のグループによっては、3Dモデル全体および/または3Dシーンの時に、1つのレンダリングのみが可能になるにすぎない。例として、コマンドのリストが提供され、コマンドのそれぞれは、3Dモデルの1つの視覚化モードのレンダリングを開始する。したがって、ユーザーはツールバーからコマンドのリストを開き、およびこのリスト内のレンダリングの1つを選択して3Dモデルに適用することができる。
図3は、コマンドのそれぞれがアイコンおよびテキストによって実現されるコマンドのリストの一例を示す。
図4Aおよび
図4Bに示される別の実施例からは、画面を彼の指でスワイプすることによって、またはボタンとインタラクトすることによって、ユーザーがレンダリング間を切り替えることができることが分かる。
【0008】
この第1のグループの方法にはいくつかの欠点がある。まず、視覚化モードを選択する前では、ユーザーはレンダーがどのように見えるか分からない。したがって、どのレンダーがユーザーのニーズに最適であるかを知る前に、様々な視覚化モード、および時にはすべての視覚化モードに対応するレンダーを彼は理解しなくてはならない。例えば、ユーザーが結果に満足していない場合、彼はリストを再度開き、別のレンダーを選択し、および同じプロセスを再開させなくてはならない。さらに、利用可能な視覚化モードのそれぞれに対して1つのコマンドが存在する。結果として、たくさんのコマンドが存在し、およびユーザーは使用すべき適切なコマンドを探すことに多くの時間を失う。その結果として、これらの欠点はマウスマイル(mouse miles)およびクリック数を増加させる。2つ目の問題は、視覚化モードの1つのレンダーのみが一度に表示されるにすぎないことである:ユーザーは、1または複数のレンダーを記憶して、現在表示されているレンダーとそれとを比較しなければならない。
【0009】
3Dモデルの様々な視覚化モードをレンダリングするための公知の方法の第2のグループによって、3Dモデル全体および/または3Dシーンの様々なレンダリングの視覚化が可能となる。
図5に示されるように、画面は様々なビューアーに分割され、および1つの視覚化モードに対応するレンダーがビューアーのそれぞれにおいて表示される。
【0010】
この2番目のグループの方法にもまた、多くの不都合がある。第1に、それは、CPUおよび/またはGPUリソースの観点からコストがかかる。レンダーを生成するために使用されるマテリアルの仕様次第では、リアルタイムでいくつかのレンダーを生成することは必ずしも可能ではないため、ビューアーが遅れて現れる場合がある。さらに、ユーザーが様々なビューアーの現在の視点を変更したい場合、視点の変更箇所それぞれに対してレンダーが計算される必要があるため、ユーザーインタラクションの後で遅延が生じ得る。第2に、画面をさまざまなビューアーに分割すると、レンダーのそれぞれが小さくなるため、レンダーのそれぞれにおいて3Dモデルの詳細を正しく視覚化することが困難となる。
【0011】
このコンテキストの中で、3Dモデルの様々な視覚化モードをレンダリングするための改善された方法に対する必要性が依然として存在する。好ましいことに、この方法は、これらのレンダリングを生成するコストを削減しながら、同時に様々なレンダーの視覚化を可能にする。
【発明の概要】
【0012】
それゆえ、少なくとも2つの3Dモデルの視覚化モードをレンダリングするためのコンピューター実装方法が提供される。方法は、第1の視覚化モードに従って、メインビューに3DモデルをレンダリングするステップS10を備える。方法は、メインビューを少なくとも2つのスプリットビューに分割するステップS20をさらに備える。スプリットビューのそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する。方法は、スプリットビューのそれぞれに対して、現在のスプリットビューに関連した3Dモデルのレンダリング領域を決定するステップS30をさらに備える。方法は、その対応する視覚化モードおよび決定されたレンダリング領域に従って、スプリットビューのそれぞれにおける3DモデルをレンダリングするステップS40をさらに備える。
【0013】
そのような方法は、3Dモデルの様々な視覚化モードを同時にレンダリングするための改良された方法を構成する。
【0014】
方法は、以下のうちの1または複数を備え得る:
【0015】
-複数の視覚化モードのうちの1つの選択を受信するステップS50と、
-少なくとも2つのスプリットビューを除去するステップS60と、
-メインビューにおける選択された視覚化モードに従って、3DモデルをレンダリングするステップS70とを方法はさらに備える。
【0016】
-受信するステップS50は、選択された視覚化モードに対応する1つのスプリットビューに関してユーザーインタラクションを備える。
【0017】
-スプリットビューのそれぞれは2Dインターフェースを備え、2Dインターフェースは、1つのアイコンおよび/またはテキストを備える。
【0018】
-スプリットビューは、共有された円中心を有した同じ中心角および半径の長さを持つ円セクタである。
【0019】
-スプリットビューは、共有された円中心を有した同じ中心角および同じ半径の長さを持つ円セクタであり、および2Dインターフェースは、スプリットビューの共有された中心と、スプリットビューとの間に表示される。
【0020】
-方法は、スプリットビューのうち1つを選択し、およびその中心角を増大させること、および/またはその半径の長さを増加させることによって、それを拡大するステップS80をさらに備える。
【0021】
-方法は、ユーザーからの入力の受信時に、スプリットビューのうちの1つを、共有された円中心の周囲で回転する、および/またはスプリットビューのうちの1つを拡大するステップS90をさらに備え、入力は、スプリットビューのうちの1つに関してインタラクションを備える。
【0022】
-スプリットビューの共有された中心は、メインビューの内側に位置し、および方法は、共有された中心をユーザーからの入力によって可動的に移動させるステップS100をさらに備える。
【0023】
-スプリットビューの共有された中心は、メインビューアーの外側に位置する。
【0024】
-スプリットビューのそれぞれは、半径の線によって、または角度間隔によって、その隣接するスプリットビューから区切られる。
【0025】
方法を実行する命令を備えるコンピュータープログラムが、さらに提供される。
【0026】
コンピュータープログラムを記録したコンピューター可読記憶媒体が、さらに提供される。
【0027】
方法を実行するように適合されたコンピューターがさらに提供される。
【0028】
メモリに結合されたプロセッサを備えるシステムがさらに提供され、メモリはコンピュータープログラムを記録している。
【図面の簡単な説明】
【0029】
限定されない例示が、添付の図面を参照してここで説明される。
【0030】
【
図2】方法に準拠したさらなるステップの実施例のフローチャートを示す。
【
図3】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図4A】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図4B】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図5】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図6】本発明の第1の実施例を図示するスクリーンショットである。
【
図7A】本発明の第2の実施例を図示するスクリーンショットである。
【
図7B】本発明の第2の実施例を図示するスクリーンショットである。
【
図8A】本発明の第2の実施例のユーザーインタラクションの実施例を図示するスクリーンショットである。
【
図8B】本発明の第2の実施例のユーザーインタラクションの実施例を図示するスクリーンショットである。
【
図9】本発明の第3の実施例を図示するスクリーンショットである。
【
図10】本発明の第3の実施例のユーザーインタラクションの実施例を図示するスクリーンショットである。
【
図11】本発明の様々な実施例に関する単純化された説明である。
【
図12】本発明の様々な実施例に関する単純化された説明である。
【
図13】本発明の様々な実施例に関する単純化された説明である。
【
図14】本発明の様々な実施例に関する単純化された説明である。
【
図15】本発明の様々な実施例に関する単純化された説明である。
【
図16】本発明の様々な実施例に関する単純化された説明である。
【
図17】本発明の様々な実施例に関する単純化された説明である。
【
図18】本発明の様々な実施例に関する単純化された説明である。
【
図19】本発明の第4の実施例を図示するスクリーンショットである。
【
図20】本発明の第5の実施例を図示するスクリーンショットである。
【
図21】タッチセンサー式ディスプレイで使用される本発明の第1の実施例を図示するスクリーンショットである。
【
図22】本発明を実行するためのシステムの実施例を示す。
【発明を実施するための形態】
【0031】
図1のフローチャートを参照して、少なくとも2つの3Dモデルの視覚化モードをレンダリングするためのコンピューター実装方法が提案される。
【0032】
3Dモデルは、第1の視覚化モードに従って、メインビュー200でレンダリングされるS10。次に、メインビュー200は、少なくとも2つのスプリットビュー100に分割されるS20。スプリットビュー100のそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する。次に、スプリットビューのそれぞれに対して、現在のスプリットビュー100に関連した3Dモデルのレンダリング領域が決定されるS30。最後に、3Dモデルは、その対応する視覚化モードおよび決定されたレンダリング領域に従って、スプリットビュー100のそれぞれにおいてレンダリングされるS40。
【0033】
これは、3Dモデルの少なくとも2つの視覚化モードをレンダリングするための改良された方法を構成する。実際に、この方法は、スプリットビューのそれぞれで3Dモデルの一部のみをレンダリングすることによってパフォーマンスへの影響を制限しながら、3Dモデルのさまざまな視覚化モードを同時にレンダリングする。したがって、2つの異なるスプリットビュー100で同時にレンダリングされている3Dモデルの部分は存在しない。別の言い方をすれば、一度に複数回レンダリングされる3Dモデルの部分がないため、3Dモデルのさまざまな視覚化モードをレンダリングするコストが限定される。
【0034】
この方法はまた、3Dモデルのさまざまなレンダーを隣同士で表示する。したがって、ユーザーインタラクションをさらに必要とされることなく、ユーザーは隣同士の様々なレンダーを見ることができるので、この方法は、3Dモデルの様々なレンダー間での比較を容易にする。レンダーを見ることができることは、さまざまな視覚化モードを比較するために特に重要であり、そして視覚化モードは、3Dモデルのレンダリングを構成するパラメーターを含む。実際に、視覚化モードのパラメーターは、例えばCPUおよび/またはGPUリソースなどのコンピューターリソースに向けられた機能データであるため、ユーザーはこれらのパラメーターに基づいて様々な視覚化モードを比較することができない。言い換えれば、ユーザーが様々なレンダーを比較することができるようになることによって、この方法は、視覚化モードを比較するために必要なユーザーインタラクションの数を確実に減少させる。さらに、この方法は、視点の変更中および/または3Dモデルの位置および/または向きの変更中にレンダーが迅速に更新されることを可能にする。一例として、3Dモデルのレンダーをスプリットビューのそれぞれで更新するために、決定するステップS30、およびレンダリングするステップS40が変更のそれぞれに対して実行され得る。
【0035】
視覚化とは、メッセージを伝えるために画像、図、および/またはアニメーションを作成するためのあらゆる技術を言う。視覚化モードは、特定の技術に基づく、および/または画像、図および/またはアニメーションを生成するための特定のパラメーターのセットに基づく。言い換えれば、2つの視覚化モードは、2つの異なる技術または1つの単一の技術に基づき得るが、2つの異なるパラメーターのセットを有しても良い。視覚化モードは、例えば科学的視覚化、データ視覚化、教育的視覚化、知識視覚化、製品視覚化、視覚コミュニケーション、および視覚分析などのさまざまなアプリケーションに対して使用される。視覚化もまた、インタラクティブであり得る。
【0036】
一例として、科学的視覚化、知識視覚化、製品視覚化、および視覚的なコミュニケーションが、たびたびCADで使用される。フローの視覚化、制約の視覚化、および/または温度の視覚化は、科学的視覚化に対して使用されるいくつかの視覚化モードである。エッジの視覚化を有するシェーディング、マテリアルの視覚化を有するシェーディング、ワイヤーフレームの視覚化、および/またはイラストレーションの視覚化は、製品の視覚化のために使用されるいくつかの視覚化モードである。注釈付きの視覚化(annotated visualization)は、知識視覚化の一例である。「視覚化モードをレンダリングする」ことによって、視覚化モードに含まれる技術およびパラメーターのセットに基づき、例えばCPU/GPUリソースなどのコンピューターリソースを使用することで、レンダーを生成することが意味される。
【0037】
3Dモデルは、3Dオブジェクトの任意の3Dデータ表現である。一例として、3Dモデルは、3Dメッシュまたは3Dポイントクラウドであっても良い。それはまた、テクスチャおよび/または2D/3Dノート(2D/3D notes)を備えてもよい。CADアプリケーションによって、正確な3Dモデルを作成できる。3Dモデルが対応する実際の3Dオブジェクトを忠実に再現するときに、その3Dモデルは正確であると見なされる。1つの基準は、3Dモデルのエンベロープと実際のオブジェクトのエンベロープとの間の差を最小限にすることである。したがって、CADアプリケーションで作成された3Dモデルは、従来、3Dオブジェクトのでこぼこの多い粗い部分に対して多くの小さな位相要素を含む。例として、CADアプリケーションでは、3Dメッシュは、106を超える面または更に109をも超える面を含む場合がある。これらの3Dモデルをレンダリングすることは、リソースの消費となる。したがって、多数の位相エンティティを持つ3Dモデルをリアルタイムでレンダリングすることは困難である。
【0038】
まず、方法は、第1の視覚化モードに従って、メインビュー200に3DモデルをレンダリングするS10。ビューは画面上の領域を占有し、および3Dモデルを2次元(2D)のサーフェスに表示する。3Dビューとも呼ばれるビューは、2Dサーフェス上の視点からの3Dモデルの表示であり、その視点は、3Dの位置および3Dの方向を備える。3Dモデルは、3Dシーンに含まれ得る。3Dモデルは、物理的オブジェクトの3Dモデルであり得る。3Dシーンは、2つ以上の3Dモデルを備え得る。説明された方法は、2つ以上の3Dモデルを備える3Dシーンと互換性がある。メリットとして、この方法は、3Dシーンの少なくとも2つの視覚化モードをレンダリングするために実行されるであろう。
【0039】
メインビュー200は、3DモデルをレンダリングするためにステップS10で使用されるビューである。例えば、メインビュー200は、我々の方法に予め存在するものである。一例として、それは、3Dモデルの設計が実行されるビューである。メインビュー200はまた、望ましい視覚化モードに基づいて3Dモデルをレンダリングし得る。望ましい視覚化モードは、ユーザーによって選択されてもよく、またはアプリケーションによって自動的に選択されてもよい。例えば、レンダリングすることがコンピューターの現在のリソースに対してリアルタイムであることを確実にするために、選択された視覚化モードが、デフォルトの視覚化モードであり得る。その後で、他のビューは、アプリケーションおよび/またはユーザーによって作成され得る。
【0040】
視覚化モードは、レンダリングの技術およびパラメーターのセットによって定義される。一例として、複数のライトニング視覚化モード(lightning visualization mode)は、光の数、光のそれぞれの向きおよび位置、光のそれぞれのタイプ(点状なもの、無限なものまたは方向性のあるもの)、光のそれぞれの強度および色を設定するためのパラメーターを備えることができるだろう。ライトニング視覚化モードのそれぞれは、これらのパラメーターの値の様々な組み合わせを有するであろう。他の視覚化モード、例えばシェーダーに基づくそれらは、機能データであるパラメーターを備える。これらのパラメーターは、例えばグラフィックカードなどのコンピューターの内部機能を設定する。視覚化モードのそれぞれは、他の視覚化モードとは異なる。レンダリングするための視覚化モードの数は、2から100を超える間で、およびより好ましくは2から8までの間で構成され得る。視覚化モードの数が多すぎる場合、例えば10を超える場合、視覚化モードをカテゴリーによってグループ化し、および選択されたカテゴリーの視覚化モードのみをレンダリングすることがより好ましい。視覚化のグループ化は、例えば複数選択リストボックスなどの任意の標準的なユーザーインターフェースを用いて、ユーザーによってステップS20とS20との間で提供され得、または実行され得る。次に、ユーザーは、レンダリングする視覚化モードのカテゴリーの選択を実行し得る。例えば、ユーザーは、現在の3Dモデルまたは3Dシーンに対して「ライトニング(lightning)」の下にグループ化された視覚化モードのカテゴリーを選択するためのコマンドを起動することができ、および様々なライトニング視覚化モードを示すビューアーを持った実体感のあるセレクターを得る。次に、ユーザーはレンダリングコマンドを起動することができ、およびビューアーはレンダリングの視覚化オプションで更新される。レンダリングする視覚化モードの選択はまた、グループ化することなく実行され得る。
【0041】
方法は、メインビュー200を少なくとも2つのスプリットビュー100に分割しS20、スプリットビュー100のそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する。別の言い方をすれば、スプリットビュー100のそれぞれは、1つの視覚化モードのレンダーを表示する。メインビュー200を分割することによって、分割するステップS20の間に追加のビューが作成される。ステップS20の後、メインビュー200は、スプリットビュー100によって部分的に、または完全に非表示にされる。メインビュー200は、ステップS20の後、画面上で少なくとも部分的において、もはや見えない場合がある。一例として、ステップS20の後に、メインビュー200はスプリットビュー100によって置き換えられ得る。別の例では、メインビュー200は、ステップS20の後に依然として存在し得るが、スプリットビュー100によってユーザーに対して部分的に非表示にされ得る。スプリットビュー100の数は、提供されるS20の視覚化モードの数に等しくあり得る。特に、提供されるS20の視覚化モードの数が10よりも大きい場合、スプリットビューの数はまた、提供されるS20の視覚化モードの数に及ばない場合がある。
【0042】
方法は、スプリットビューのそれぞれについて、現在のスプリットビューに関連した3Dモデルのレンダリング領域を決定するステップS30をさらに備える。3Dモデルのレンダリング領域は、3Dモデルの2Dサーフェスへの投影の結果である。一例として、まず、3Dモデルのレンダリング領域はメインビュー200について計算され得る。第2に、決定するステップS30は、スプリットビューのそれぞれのサイズおよび形式に基づいて、3Dモデルの計算されたレンダリングエリアを分割することから構成され得る。実際には、メインビュー200とスプリットビューとの間には対応がある。別の言い方をすれば、スプリットビューそれぞれの2D座標のそれぞれについて、対応する2D座標をメインビュー200で見つけることが可能である。スプリットビュー100のそれぞれに対するレンダリングエリアはまた、メインビュー200内の3Dモデルのレンダリングエリアを最初に計算せずに、3Dモデルをスプリットビュー100に3D投影することによって直接計算されることもできる。
【0043】
レンダリング領域はまた、3Dモデルの位置、向き、サイズ、およびジオメトリにも依存することは注目に値する。1または複数のスプリットビュー100に対する3Dモデルのレンダリングエリアは、ゼロであっても良い。言い換えれば、3Dモデルは、1または複数のスプリットビュー100内にレンダリングエリアを全く持たないことがある。
【0044】
方法は、スプリットビューに対応する視覚化モードおよび決定されたレンダリングエリアに従って、スプリットビュー100それぞれにおいて3DモデルをレンダリングするS40。言い換えれば、スプリットビューそれぞれの対応するレンダリング領域に対して、対応する視覚化モードに基づき、およびステップS30で決定されたレンダリング領域に対してレンダリングが計算される。ステップS30およびS40は、3Dシーン全体に同じように適用され得、したがって、我々の方法は、3Dシーンの少なくとも2つの視覚化モードをレンダリングするために使用され得ることは注目に値する。
【0045】
図6は、4つのスプリットビュー100を持つ方法の第1の例を示す。モデルが3Dシーンにおいてユーザーによって移動する、または変更されるとき、スプリットビュー100のそれぞれのレンダリングエリアおよびスプリットビュー100のそれぞれのレンダーが更新される。1または複数のスプリットビュー100が移動する、および/または変更される場合、スプリットビュー100のそれぞれのレンダリングエリアおよびスプリットビュー100のそれぞれのレンダーが更新される。分割するステップS20の後でメインビュー200がまだ部分的に見える場合、3Dモデルおよび/または1または複数のスプリットビュー100が移動する、および/または変更されるのであれば、メインビュー200のレンダリングエリアおよびメインビュー200のレンダーもまた更新される必要があることは注目に値する。
【0046】
方法は、コンピューターで実装されている。これは、方法のステップ(または実質的にすべてのステップ)が、少なくとも1つのコンピューター、または任意のシステムによって同様に実行されることを意味する。したがって、方法のステップは、場合により完全に自動で、または半自動で、コンピューターによって実行される。例においては、方法の少なくともいくつかのステップについて起動することは、ユーザーとコンピューターとのインタラクションを介して実行され得る。ユーザーとコンピューターとのインタラクションについて要求されるレベルは、予測される自動性のレベルに依存し、およびユーザーの希望を実装する必要性とバランスを取られ得る。例においては、このレベルはユーザー定義され得る、および/または事前定義され得る。
【0047】
方法のコンピューター実装の典型的な例は、この目的に適合したシステムを用いて方法を実施することである。システムは、メモリおよびグラフィカルユーザインターフェース(GUI)に結合されたプロセッサを備え得、メモリは、方法を実施するための命令を備えるコンピュータープログラムを記録している。メモリはまた、データベースを記憶し得る。メモリは、そのようなストレージに適合した任意のハードウェアであり、場合によりいくつかの物理的に区別できる部分(例えば、プログラム用の部分、および場合によってはデータベース用の部分)を備える。
【0048】
図22はシステムの一例を示し、システムは、クライアントコンピューターシステム、 例えば、ユーザーのワークステーションであり得る。
【0049】
この例のクライアントコンピューターは、内部通信バス1000に接続された中央処理装置(CPU)1010と、やはりバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピューターにはさらに、バスに接続されたビデオランダムアクセスメモリ1100に関連づけられるグラフィカルプロセシングユニット(GPU)1110が設けられている。ビデオRAM1100はまた、フレームバッファとして当技術分野で公知である。大容量ストレージデバイスコントローラ1020は、例えばハードドライブ1030など大容量メモリデバイスへのアクセスを管理する。コンピュータープログラム命令およびデータを明白に具現化するために適した大容量メモリデバイスは、全ての形態の不揮発性メモリを含み、例として、例えばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内部ハードディスクおよびリムーバルディスクなどの磁気ディスク、光磁気ディスクおよびCD-ROMディスク1040を含む。前述のいずれも、特別に設計されたASICs(特定用途向け集積回路)によって補完され、または組み込まれ得る。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。コンピューターはまた、例えばポインタ制御デバイス(またカーソル制御デバイスとも言及される)などのハプティックデバイス1090をも含み得る。ポインタ制御デバイスは、ユーザーがポインタ(またカーソルとも言及される)をディスプレイ1080上の任意の所望の位置に選択的に置くことを可能にするためにコンピューター内で使用される。ディスプレイ1080は、当該技術分野で公知であるモニター、または同様のものであっても良い。ディスプレイ1080は、タッチセンサー式ディスプレイ1080であっても良い。タッチセンサー式ディスプレイ(またタッチスクリーンとも言及される)は、前面で行われたタッチに反応する、コンピューターに取り付けられたハードウェアディスプレイユニットである。それは、1つの、2つの、または複数の同時に行われるタッチをサポートすることができる。さらに、ポインタ制御デバイスにより、ユーザーはさまざまなコマンドを選択し、および制御信号を入力することができる。ポインタ制御デバイスは、システムに制御信号を入力するための多数の信号生成デバイスを含む。タッチセンサー式ディスプレイのコンテキストでは、ハプティックデバイス1090(タッチスクリーンセンサーおよびそれに付随するコントローラベースのファームウェア)がディスプレイ上で統合され、およびタッチセンサー式ディスプレイ上のポインタ制御デバイスは、指、スタイラスペンの場合がある付属品であるが、これらに限定されない。タッチセンサー式ディスプレイではないディスプレイのコンテキストでは、ハプティックデバイス1090は、マウス、トラックボールであることができるが、これらに限定されない。
【0050】
方法のコンピューター実装の別の典型的な例は、この目的に適合したシステム、例えばサーバを用いて方法を実施することである。システムは、メモリに結合されたプロセッサを備え得、メモリは、方法を実行するための命令を備えたコンピュータープログラムを記録している。メモリはまた、データベースを記憶し得る。メモリは、そのようなストレージに適合した任意のハードウェアであり、場合によりいくつかの物理的に区別できる部分(例えば、プログラム用の部分、および場合によってはデータベース用の部分)を備える。
図22に示されるシステムの例はまた、サーバ、例えばデータベースをホスティングするサーバであっても良い。
【0051】
この例についてのサーバは、内部通信バス1000に接続された中央処理装置(CPU)1010、やはりバスに接続されたランダムアクセスメモリ(RAM)1070を備える。も。サーバにはさらに、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられるグラフィカルプロセシングユニット(GPU)1110が設けられ得る。ビデオRAM1100はまた、当技術分野でフレームバッファとして公知である。大容量ストレージデバイスコントローラ1020は、例えばハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータープログラム命令およびデータを明白に具現化するために適した大容量メモリデバイスは、全ての形態の不揮発性メモリを含み、例として、例えばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内部ハードディスクおよびリムーバルディスクなどの磁気ディスク、光磁気ディスクおよびCD-ROMディスク1040を含む。前述のいずれも、特別に設計されたASICs(特定用途向け集積回路)によって補完され、または組み込まれる。1または複数の大容量メモリデバイスは、データベースのストレージ層を実装するために使用され得る。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。サーバはまた、例えばカーソル制御デバイス、キーボード、または同種のもののようなハプティックデバイス1090を含み得る。カーソル制御デバイスは、ユーザーがカーソルをディスプレイ1080上の任意の所望の位置に選択的に置くことを可能にするために、サーバにおいて使用される。さらに、カーソル制御デバイスにより、ユーザーはさまざまなコマンドを選択し、および制御信号を入力することができる。カーソル制御デバイスは、システムに制御信号を入力するための多数の信号生成デバイスを含む。典型的には、カーソル制御デバイスはマウスであり得、マウスのボタンは信号を生成するために使用される。代替的または追加的に、サーバシステムは、感圧パッド、および/または感圧スクリーンを備え得る。
【0052】
コンピュータープログラムは、コンピューターによって実行可能な命令を備え得、命令は、上記のシステムに方法を実施させるための手段を備える。プログラムは、システムのメモリを含む任意のデータストレージ媒体上に記録可能であり得る。プログラムは、例えば、デジタル電子回路、もしくはコンピューターハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装され得る。プログラムは、装置、例えばプログラム可能なプロセッサによる実行のために機械可読ストレージデバイスに明白に具現化された製品として実装され得る。方法のステップは、入力データを操作し、および出力を生成することによって、方法の機能を実施する命令のプログラムを実行するプログラム可能なプロセッサによって実施され得る。したがって、プロセッサは、データストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、およびそれらにデータおよび命令を送信するようにプログラム可能であり、および結合され得る。アプリケーションプログラムは、高水準手続き型言語もしくはオブジェクト指向プログラミング言語で、または必要に応じてアセンブリもしくは機械語で実装され得る。いずれの場合でも、言語はコンパイルされるか、またはインタープリタ型言語であり得る。プログラムは、完全インストールプログラムまたは更新プログラムであり得る。システム上へのプログラムの適用は、いかなる場合も方法を実施するための命令をもたらす。
【0053】
好ましいことに、方法は、複数の視覚化モードのうちの1つの選択を受信するステップS50と、少なくとも2つのスプリットビュー100を除去するステップS60と、メインビュー200における選択された視覚化モードに従って、3DモデルをレンダリングするステップS70とをさらに備え得る。ユーザーは、例えばマウスデバイスまたは指などの任意のポインタ制御デバイスを用いて、複数の視覚化モードのうちの1つを選択し得る。選択はまた、半自動であってもよい。「半自動」によって、1または複数の視覚化モードの事前選択が自動的に行われ得ることが意味される。例えば、システムの現在の利用可能なCPUリソースおよび/またはGPUリソースに基づいて、リアルタイムでのレンダリングを保証するために、デフォルトの視覚化モードが事前に選択され得る。その後で、ユーザーはこの事前選択を単に確認すれば良く、または確認しなくても良い。別の例では、自動選択は、ユーザーによって使用される現在の機能に基づいても良い。一例として、ユーザーが車を表す3Dモデルを設計している場合、例えば「エッジありのシェーディング」の視覚化などの視覚化モードが選択または事前選択され得る。
【0054】
選択がシステムによって受信されるとき、スプリットビュー100は画面から除去されるS60。除去するステップS60は、スプリットビュー100の削除または非表示から構成され得、したがって、メインビュー200を再び完全に見えるようにする。分割するステップS20の間にメインビュー200が置き換えられた場合、メインビュー200は、除去するステップS60の間にスプリットビュー100を置き換え得る。除去するステップS60は、例えばスプリットビュー100が「消える」こと、およびメインビュー200が「現れる」こと、スプリットビュー100が「飛び出す」こと、およびメインビュー200が「飛び出す」ことなどといった任意のアニメーション、またはそのようなアニメーション間での任意の組み合わせから構成され得る。
【0055】
この方法により、ユーザーは、3Dモデルの様々なレンダーを即座に比較した後で、レンダリングするステップS70を3Dモデル全体に適用することが可能となる。したがって、この方法はコンピューターリソースの観点から最適化されると同時に、人間工学的に効率的である。実際に、この方法は、例えばマウスクリックおよびマウス距離移動(mouse distance travel)などのユーザーインタラクションを最小限にする。さらに、前述のように、視覚化モードは設定された機能データであるため、ユーザーはこれらのデータを直接使用して、利用可能な視覚化モードのうちの1つの視覚化モードを選択することができない。したがって、3Dモデルのレンダーは、ユーザーがユーザーのニーズに最も適合した視覚化モードを効率的に選択するために必須である。別の言い方をすれば、この方法は、ユーザーが様々なレンダーを同時に比較することができるようになることによって、ユーザーが視覚化モードについて適した選択をするように導く。
【0056】
例において、受信するステップS50は、選択された視覚化モードに対応する1つのスプリットビュー100とのユーザーインタラクションを備え得る。例えば、受信するステップS50は、任意のユーザーインタラクションを備え得る。例えば、ディスプレイ1080がモニターであるときに、スプリットビュー100上のマウスクリックが受信されても良い。ディスプレイデバイス1080がタッチセンサー式ディスプレイである場合、
図6および
図7Aに示されるように、ユーザーの指でタップを実施することによって選択が実施されても良い。このユーザーインタラクションは直感的であり、および簡単である。方法の開始からレンダリングするステップS70まで、異なる視覚化モードに基づいて様々なレンダーを見て、およびレンダリングする関心のある視覚化モードを選択するために、たった1回のユーザーインタラクションのみが必須であるにすぎない。さらに、1つのスプリットビュー100とのユーザーインタラクションを備える受信するステップS50は、本発明に組み込まれるべき追加の2Dインターフェースを全く必要としないため、それは表示される様々なビューの領域を最大化する。
【0057】
スプリットビュー100に関してレンダリングするステップS40から、選択されたスプリットビュー100に関してレンダリングするステップS70への遷移を可能にする任意のアニメーションが使用されても良い。望ましくは、遷移は、選択されたスプリットビュー100の拡大が画面のその限界に達するまで行われることから構成されているアニメーションであり得る。
【0058】
例においては、スプリットビュー100のそれぞれは、2Dインターフェースを備え得、2Dインターフェースは、1つのアイコンおよび/またはテキストを備える。
図7A、
図7B、
図8A、
図8Bおよび
図15から
図18に示されるように、2Dインターフェース140は、その対応するスプリットビューのどこにでも追加され得る。
図9および
図10に示されるように、2Dインターフェース140は、その対応するスプリットビューの外側に追加され得る。スプリットビュー100のそれぞれに対応する2Dインターフェースを有することは、ユーザーが、どの視覚化モードがどのスプリットビューでレンダリングされるかを識別する手助けとなる。それは多くの場合において役に立つ。一例として、ユーザーが、特定の3Dモデルについて彼の好きな視覚化モードを同僚と共有したい場合、彼は、2Dインターフェースのテキストを使用してそれに名前を付けることができる。2Dインターフェースのそれぞれのサイズは変化する場合がある。好ましい例では、スプリットビュー100および/またはメインビュー200のレンダーの領域を最大化するために、2Dインターフェースそれぞれのサイズは最小化される。さらに、2Dインターフェースは部分的に透明であっても良く、したがって、スプリットビュー100のレンダーまたはメインビュー200のレンダーは、2Dインターフェースの画面領域内で依然として目に見え得る。
【0059】
望ましくは、スプリットビュー100は、同じ中心角および半径の長さを有し、共有された円中心160を持つ円セクタであり得る。したがって、スプリットビュー100は、同じ面を持つ円セクタであり得る。「共有された円中心160」によって、スプリットビュー100が円中心160を共有し得ることが意味される。言い換えれば、スプリットビュー100は、同じ(共通の)円中心160を有する。「円セクタ」100の第1の定義は、2つの半径110および外側の円弧120によって囲まれた円盤状のものの一部であり得る。
図11、
図13、
図17、
図18および
図20は、第1の定義に基づいた円セクタを示す。本発明では、円セクタはまた、2つの半径110および外側の円弧120、および内側の円弧130によって囲まれた円の一部でもあり得る。第2の定義で定義される円セクタは、
図6~
図10、
図12、
図14、
図15、
図16、
図19および
図21に示される例で使用される。すべての円セクタは、共有された円中心(または円盤状のものの中心)160を共有し得、同じ中心角および半径の長さを有し得る。「中心角」によって、円セクタの2つの半径110間の角度が意味される。「半径の長さ」によって、共有された円中心160と外側の円弧120との間、または外側の円弧120と内側の円弧130との間のいずれかの最短距離が意味される。
【0060】
すべての円セクタによって形成される形状は、それ自体円セクタであり得る。簡潔にするために、私たちはこの形成された円セクタを今後は「中国の扇(Chinese fan)と名付ける。中国の扇は1°から359°の間の中心角を持ち得る。好ましい例として、中国の扇の中心角は、180°以下であり得、およびより好ましくは45°~160°の間であり得る。一例として、180°の角度を有する中国の扇を形成する6つのスプリットビュー100がある場合、スプリットビュー100のそれぞれは、30°の中心角を有し得る。中国の扇が実装されている場合、半径の長さは変化しても良く、およびメインビューの高さおよび/または幅と等しくても良い。好ましい例では、スプリットビュー100それぞれの半径の長さは、メインビュー200の高さおよび幅よりも小さくあり得、およびより好ましくはメインビュー200の高さの60%に等しくあり得る。円中心は画面領域のどこにでも存在し得るが、中国の扇の中心角が180°より小さいときは画面領域の外側にもまた存在し得る。
図6~
図8、
図11、
図12、
図15、
図17、
図19、
図20および
図21は、中国の扇の実装例を示す。
【0061】
すべての円セクタによって形成される形状はまた、円または円盤状のものでもあり得る。簡潔にするために、私たちはこの形成された円を今後は完全な円(full circle)と名付ける。この完全な円は、円セクタのそれぞれよりも共有された円中心(または円盤状のものの中心)160を共有する。円中心は、画面領域のどこにでも存在し得る。完全な円は、円セクタのそれぞれと同じ半径の長さを有し得る。その半径の長さは変化し得、および画面領域の高さの半分および/または幅の半分に等しいことさえあり得る。好ましい例では、スプリットビュー100のそれぞれの半径の長さは、メインビュー200の高さの半分、およびメインビュー200の幅の半分よりも小さくあり得、およびより好ましくはメインビュー200の高さの30%に等しくあり得る。
【0062】
中国の扇として本発明を実装することは、レンダリングする視覚化モードの数が限定されている場合に特に適応される。逆に、本発明を完全な円として実装することは、非常に多くの視覚化モードのレンダリングを可能にする。
【0063】
中国の扇としての実装と、完全な円としての実装とを切り替えることが可能であり得る。例えば、切り替えは、ユーザーインタラクションの後に、および/または自動的に起こり得る。
【0064】
例において、スプリットビュー100は、同じ中心角および半径の長さを持ち共有された円中心160を有する円セクタであり得、および2Dインターフェースは、スプリットビュー100の共有された中心160とスプリットビュー100との間に表示され得る。
図7A、
図7B、
図8A、
図8B、
図15~
図18は、スプリットビュー100の共有された中心160とその対応するスプリットビューとの間に2Dインターフェースが表示されている例を示す。スプリットビュー100のそれぞれの円中心の近くに2Dインターフェースを持つことが優先される。なぜならば、まず、そのことは、全ての2Dインターフェースが互いに隣接していることを意味する。したがって、それは、2Dインターフェースとのインタラクションのための筋肉への無理な負担を軽減する。第2に、すべてのテキスト情報がグループ化されているため読みやすい。さらに、2Dインターフェースのそれぞれは、その対応するスプリットビュー100の隣に表示され得る。その結果として、ユーザーは、スプリットビュー100を2Dインターフェースと関連付けることが容易となる。第3に、タッチセンサー式ディスプレイ1080上で、スプリットビュー100のそれぞれの円中心160が、ユーザーの手首が存在する画面の周辺部の近くにあるときに、それは本発明の人間工学を向上させる。例えば、ユーザーがユーザーの指を使用して2DインターフェースとインタラクトすることによってステップS50を実行するとき、ユーザーの手が、スプリットビューのレンダーを隠さない。
図21は、スプリットビュー100のそれぞれの円中心が、ユーザーの手首が存在する画面180の周辺部の近くにある例を示す。しかしながら、
図21では、中国の扇が2Dインターフェースを全く含まないため、スプリットビュー100は、ユーザー190の手によって部分的に隠されている。
【0065】
好ましいことに、方法は、スプリットビュー(100)のうちの1つを選択し、その中心角を増大させることによって、および/またはその半径の長さを増加させることによって、それを拡大するステップ(S80)をさらに備える。スプリットビュー100のうちの1つでシステムによる入力を受信した後、スプリットビュー100は拡大され得る。入力は、例えばクリック、マウスデバイスを用いた長押し、タッチ、またはタッチセンサー式ディスプレイ1080上のロングタッチなどの任意のユーザーインタラクションであり得る。
図6、
図7A、
図8A、
図8B、
図10は、そのようなインタラクション150を表す手のアイコンを示す。例えば、選択されたスプリットビュー100S50が拡大されても良い。別の例では、ユーザーは、ユーザーの関心のある1または複数のレンダーをより大きなビューで見るために、1または複数のスプリットビュー100を拡大し得る。1つのスプリットビュー100が拡大されるとき、他のスプリットビュー100が離れるように移動し得(moved away)、および/または他のスプリットビューの中心角が減少させられ得る。
図8Aおよび
図8Bは、離れるように移動したスプリットビュー100の一例を示し、および
図10は、それらの中心角を減少させられたスプリットビュー100の一例を示す。拡大されたスプリットビュー100の右側または左側についてのスプリットビュー100のみが離れるように移動しても良く、および/またはそれらの中心角が減少させられても良い。2つ以上のスプリットビュー100が同時に拡大されても良く、および他のスプリットビュー100が離れるように移動しても良く、および/または他のスプリットビューの中心角が減少させられても良い。1または複数のスプリットビュー100がその半径の長さを増加させることによってのみ拡大される場合、他のスプリットは離れるように移動しないことがあり、および/または減少されないことがある。
【0066】
拡大はまた、システムによって自動的に開始される場合もある。つまり、選択は自動的である場合がある。例えば、ステップS40の後、スプリットビュー100のそれぞれは、最も左のビューから始まって最も右のビューまで(または逆に)拡大されても良い。
【0067】
1または複数のスプリットビュー100を、その中心角を増大させることによって、および/またはその半径の長さを増加させることによって拡大することにより、ユーザーが3Dモデルまたは3Dシーンを詳細に調査することができるようになる。実際に、そのことは、ユーザーが1または複数の対応するレンダーのより大きなビューを見ることをできるようにする。それは、多くの視覚化モードが利用可能であり、したがって、多くのスプリットビュー100が表示される場合に特に役に立つ。
【0068】
例において、方法は、ユーザーからの入力の受信時に、スプリットビュー100のうちの1つを共有された円中心160の周囲で回転させ、および/または、スプリットビュー100のうちの1つを拡大するステップS90をさらに備え、入力は、スプリットビュー100のうちの1つとのインタラクションを備える。入力は、例えばクリック、マウスデバイスについての長押し、タッチ、またはタッチセンサー式ディスプレイ1080上のロングタッチなどの任意のユーザーインタラクションであり得る。
図6、
図7A、
図8A、
図8B、および
図10は、そのようなインタラクション150を表す手のアイコンを示す。ここで、共有された円中心160の周囲を回転する範囲は、受信された入力の移動に基づいて計算され得る。一例として、スプリットビュー100を共有された中心160の周りで回転させるための回転角を計算するために、同じ円の比較的中心に対する入力の角変位を計算し、その結果としてスプリットビューに適用するための回転角を取得することが可能である。
図8Aおよび
図8Bは、スプリットビューに適用する回転角を計算するために受信されることができる変位155の例を示す。一方のスプリットビュー100が拡大されるとき、他方のスプリットビュー100は、
図8Aおよび
図8Bに示されるように、共有された円中心160の周囲を回転し得る。言い換えれば、他方のスプリットビュー100は、動かされたスプリットビューから離れるように他方のスプリットビューの円中心の周囲を回転し得る。拡大されたスプリットビュー100の右側または左側のスプリットビュー100のみが離れるように移動し得る。一方のスプリットビュー100が共有された円中心160の周囲を回転するとき、他方のスプリットビュー100の中心角もまた減少され得る。
【0069】
共有された中心160の周囲を回転することはまた、ステップS40の後に、またはユーザーからの入力を受信した後に、様々な角速度のシステムによって自動的に開始されても良い。
【0070】
スプリットビュー100のうちの1つを共有された中心160の周囲で回転させることにより、ユーザーは、関心のある視覚化モードで3Dモデル(または3Dシーン)の特定の部分を詳細に調査することができるようになる。実際に、関心のある視覚化モードに対応するスプリットビュー100が3Dモデル(または3Dシーン)の特定の部分をレンダリングしない場合、ユーザーは、単にスプリットビューを移動させれば良い。移動させることを拡大することと組み合わせることもまた可能であり、および関心のあるスプリットビュー100におけるより大きなレンダーをユーザーに提供する。
【0071】
スプリットビュー100のうちの1つは、ユーザーからの入力を受信した後に拡大されても良く、入力は、スプリットビュー100のうちの1つとのインタラクションを備える。任意のインタラクションが用いられ得る。一例として、マウスデバイスを用いたクリックまたは指を用いた長押しが、スプリットビューの1つを拡大するためのインタラクションとして使用されることもできるだろう。
【0072】
例において、共有された中心160は、メインビュー200の内側に位置し得、およびユーザーからの入力によって共有された中心160を移動させるステップS100をさらに備え得る。
図9、
図10、
図13、
図14、
図16および
図18は、メインビュー200の内側に位置する共有された中心160を有する本発明の例を示す。
図6~
図8、
図11、
図12、
図15、
図17、
図19および
図20は、メインビュー200の内側または外側に位置する共有された中心160を有し得る本発明の例を示す。共有された中心160は、2Dインターフェースによって具体化され得、2Dインターフェースは、中心に表示される。ユーザーの入力は、中央に表示される2Dインターフェースとのインタラクションを備え得る。一例として、
図9および
図10は2Dインターフェースの一例を示し、そしてそれは共有された中心160を移動させ、その結果として完全な円を移動させるために、ユーザーからの入力を受信すべく使用され得る。共有された中心160を移動させるための入力を受信することを可能にする、任意の他の2Dインターフェースが使用されることができるだろう。
【0073】
スプリットビュー100によって共有される中心を移動させることは、3Dモデルまたは3Dシーンを調査するための別の方法をユーザーに提供する。それにより、ユーザーは関心のある視覚化モードで3Dモデル(または3Dシーン)の特定の部分を詳細に調査することができる。中心を移動させることは、1または複数のスプリットビュー100を拡大すること、および/またはスプリットビュー100のうちの1つを共有された中心160の周囲で回転させることについての組み合わせのあるなしにかかわらず使用され得る。
【0074】
例においては、共有された中心160は、メインビューアーの外側に位置し得る。
図6~
図8、
図11、
図12、
図15、
図17、
図19および
図20は、メインビューアーの外側に位置し得る共有された中心を持った本発明の例を示す。共有された中心をメインビューアーの外側に位置させることは、発明が中国の扇として実装されているときに可能であるにすぎないことは注目に値する。共有された中心がメインビューアーの外側に位置する場合、中国の扇はまた移動でき得る。例えば、ユーザーは、中国の扇の任意のスプリットビュー100と直接インタラクトすることによって、中国の扇を移動させ得る。別の例では、2Dインターフェース170は、
図19に示されるように、スプリットビュー100と共有された中心との間に追加され得る。2Dインターフェース170はまた、2Dインターフェース140がスプリットビューのそれぞれに追加されるときに、スプリットビュー100に追加されても良い。第1の例では、共有された中心は、メインビューアーの外側に位置し得、次いでメインビューアーの内側に移動され得る。第2の例では、共有された中心は、中国の扇の移動または完全な円の移動の後、メインビューアーの内側に位置し得、次いでメインビューアーの外側に位置し得る。第1の例について、実装は、中国の扇から完全な円に切り替え得る。第2の例について、実装は、完全な円から中国の扇に切り替え得る。
【0075】
スプリットビュー100を円セクタとして持つことは、人間工学的に興味深い。例えば、タッチセンサー式ディスプレイ1080上で、ユーザーは、ユーザーの手首を共有された円中心160の近くに置き、その後でその手首を動かす必要なく、全てのスプリットビュー100とインタラクトすることができる。
図21は、ユーザー190の手の手首が共有された円中心160の近くに位置している一例を示す。例えばモニターなどのディスプレイ1080との組み合わせで使用される、例としてマウスデバイスなどのハプティックデバイス1090を用いた別の例において、ユーザーは、ユーザーの手首を動かす必要なく、多くのスプリットビュー100とインタラクトすることができる。実際に、ユーザーの手首を回転させるとき、マウスデバイスの動きは、スプリットビュー100を通過し得る円セクタを形成する。言うまでもなく、この円セクタは、手首が正しく位置している場合に限り、スプリットビュー100を通過する。
【0076】
例において、スプリットビュー100のそれぞれは、半径の線110によって、または角度間隔によって、その隣接するスプリットビューと区切られ得る。スプリットビュー100のそれぞれは、1つの隣接するスプリットビュー、または2つの隣接するスプリットビューのいずれかを有する。区切りは、様々な太さの半径の線110であっても良い。「半径の線」という用語は、完全な円の半径または中国の扇の半径を形成する線として定義され得る。より正確には、「半径の線」という用語によって、共有された円中心160と外側の円弧120との間の線分が意味される。区切りはまた、角度間隔であっても良い。この角度間隔は、例えば円セクタであっても良い。その形状は、スプリットビュー100と同じであり得るが、より小さな中心角を持つ。
【0077】
区切りは、様々な方法で実現され得る。例えば、それは単色の線(または単色の角度間隔)であっても良い。別の例では、区切りはメインビュー200を表示し得る。
【0078】
狭い幅の半径の線を、例えば
図6から
図10に示されるような区切りとして使用することは、本発明によって使用される面を最大化する。狭い幅とは、8ピクセル未満の幅、または好ましくは6ピクセル未満の幅を意味する。角度間隔を区切りとして使用することは、スプリットビュー100のそれぞれのレンダーをメインビュー200のレンダーと比較することについて特に興味深い場合がある。実際に、メインビュー200が角度間隔で表示される場合、メインビュー200は、スプリットビューのそれぞれの隣に表示される。さらに、細断された中心160の周囲でスプリットビューを回転させることによって、ユーザーは、メインビュー200のレンダーを、3Dモデルの同じ特定の部分についてのスプリットビュー100のレンダーと容易に比較する。
【手続補正書】
【提出日】2023-03-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも2つの3Dモデルの視覚化モードをレンダリングするためのコンピューター実装方法であって、
第1の視覚化モードに従って、メインビュー(200)に前記3Dモデルをレンダリングするステップ(S10)と、
前記メインビュー(200)を少なくとも2つのスプリットビュー(100)に分割するステップ(S20)であって、スプリットビュー(100)のそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する、分割するステップと、
前記スプリットビューのそれぞれに対して、現在の前記スプリットビューに関連した前記3Dモデルのレンダリング領域を決定するステップ(S30)と、
スプリットビューのそれぞれに対応する視覚化モードおよび決定されたレンダリング領域に従って、前記スプリットビュー(100)のそれぞれにおける前記3Dモデルをレンダリングするステップ(S40)と
を備えることを特徴とする方法。
【請求項2】
前記複数の視覚化モードのうちの1つの選択を受信するステップ(S50)と、
少なくとも前記2つのスプリットビュー(100)を除去するステップ(S60)と、
前記メインビュー(200)における選択された前記視覚化モードに従って、前記3Dモデルをレンダリングするステップ(S70)と
をさらに備えることを特徴とする請求項1に記載のコンピューター実装方法。
【請求項3】
前記受信するステップ(S50)は、選択された前記視覚化モードに対応する1つのスプリットビュー(100)に関してユーザーインタラクションを備えることを特徴とする請求項2に記載のコンピューター実装方法。
【請求項4】
スプリットビュー(100)のそれぞれは、2Dインターフェース(140)を備え、前記2Dインターフェースは、1つのアイコンおよび/またはテキストを備えることを特徴とする請求項1に記載のコンピューター実装方法。
【請求項5】
前記スプリットビュー(100)は、共有された円中心(160)を有した同じ中心角および半径の長さを持つ円セクタであることを特徴とする請求項1に記載のコンピューター実装方法。
【請求項6】
前記スプリットビュー(100)は、共有された円中心(160)を有した同じ中心角および同じ半径の長さを持つ円セクタであり、および前記2Dインターフェースは、前記スプリットビュー(100)の共有された前記中心(160)と、前記スプリットビュー(100)との間に表示されることを特徴とする請求項4に記載のコンピューター実装方法。
【請求項7】
前記スプリットビュー(100)のうち1つを選択し、および前記スプリットビューの中心角を増大させることによって、および/または前記スプリットビューの半径の長さを増加させることによって、前記スプリットビューを拡大するステップ(S80)をさらに備えることを特徴とする請求項5に記載のコンピューター実装方法。
【請求項8】
ユーザーからの入力の受信時に、前記スプリットビュー(100)のうちの1つを、共有された前記円中心(160)の周囲で回転する、および/または前記スプリットビュー(100)のうちの1つを拡大するステップ(S90)であって、前記入力は、前記スプリットビュー(100)のうちの1つに関してインタラクションを備える、拡大するステップをさらに備えることを特徴とする請求項6に記載のコンピューター実装方法。
【請求項9】
前記スプリットビュー(100)の共有された前記中心(160)は、前記メインビュー(200)の内側に位置し、および共有された前記中心(160)をユーザーからの入力によって移動させるステップ(S100)をさらに備えることを特徴とする請求項6に記載のコンピューター実装方法。
【請求項10】
前記スプリットビュー(100)の共有された前記中心(160)は、メインビューアーの外側に位置することを特徴とする請求項6に記載のコンピューター実装方法。
【請求項11】
前記スプリットビュー(100)のそれぞれは、半径の線(110)によって、または角度間隔によって、前記スプリットビューのそれぞれに隣接するスプリットビューから区切られることを特徴とする請求項1に記載のコンピューター実装方法。
【請求項12】
請求項1に記載の方法を実行する命令を備えるコンピュータープログラム。
【請求項13】
請求項12に記載のコンピュータープログラムを記録したコンピューター可読記憶媒体。
【請求項14】
請求項1に記載の方法を実行するように適合されたコンピューター。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータープログラムおよびシステムの分野に関連し、およびより具体的には、3Dモデルの視覚化モードをレンダリングするための方法、システムおよびプログラムに関連する。
【背景技術】
【0002】
今日、ユーザーインターフェースは広範囲のアプリケーションで使用されている。実際、ユーザーインターフェースによって、様々な画角に応じてユーザーが3Dオブジェクトとインタラクトすることが可能となる。ユーザーインターフェースは、広範囲のコンテキストに対応可能である。例えば、3Dモデリングおよび/またはレンダリングは、ユーザーとインタラクトするコンピューターによってその場所で実行され得る、またはサーバでリモートにおいて実行され得、ユーザーは、サーバによって送信される画像とインタラクトする。後者の場合、ユーザーインターフェースおよび対応するツールは、SaaS(サービス型ソフトウェア)によって提供され得る。
【0003】
インターフェースによって可能となるアプリケーションの1つとしてCAD(コンピューター支援設計)が挙げられ、それはコンピューターを使用して3Dで製品を設計することで構成される。オブジェクトの設計、エンジニアリング、および製造のために、多数のシステムおよびプログラムが市場で提供されている。CAEは、コンピューター援用エンジニアリング(Computer-Aided Engineering)の頭字語であり、例えば、それは将来の製品の物理的動作をシミュレーションするためのソフトウェアソリューションに関連する。CAMは、コンピューター支援製造(Computer-Aided Manufacturing)の頭字語であり、例えば、それは製造プロセスと操作とを明確にするためのソフトウェアソリューションに関連する。このようなコンピューター支援設計システムでは、グラフィカルユーザーインターフェースが技術の効率性に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理(PLM)システム内に組み込まれ得る。PLMは、企業が製品データを共有し、共通プロセスを適用し、および拡大企業の概念にわたって、構想からそれらの寿命の終わりまで製品の開発のために企業知識を活用する手助けとなる事業戦略について言及する。
【0004】
ダッソーシステムズによって(CATIA、ENOVIA、およびDELMIAの商標の下で)提供されるPLMソリューションは、製品エンジニアリングの知識を体系化するエンジニアリングハブ、製造エンジニアリングの知識を管理する製造ハブ、および企業統合とエンジニアリングハブおよび製造ハブの双方への接続とを可能にするエンタープライズハブを提供する。このシステムは全体として、製品、プロセス、リソースをリンクさせるオープンオブジェクトモデルを提供して、ダイナミックな知識ベースの製品製作および最適化された製品定義、製造準備、生産、およびサービスを推進する意思決定支援を可能にする。
【0005】
CADソリューションおよびオーサリングプログラムでは、ユーザーは様々なレンダー(renders)を見ることができる必要があり、レンダーのそれぞれは3Dモデルの特定の視覚化モードに対応する。様々なレンダーの3Dモデルの視覚化モードを選択するとき、または様々なレンダーの3Dシーン全体の視覚化モードを選択するときでさえ、それは利用できる様々な視覚化モードをユーザーがレンダリングする手助けとなる。3Dモデルの視覚化モードの変更、または3Dシーンの視覚化モードの変更は、3Dモデルまたは3Dシーン全体に基づいて、本物そっくりのレンダリング画像/動画または3Dインタラクティブ体験のようなマーケティングの成果物を製造するために用いられ得る。3Dモデルの視覚化モードを変更すること、または3Dシーンの視覚化モードを変更することはまた、3Dモデルの設計中に有益な場合がある。視覚化モードは、3Dモデルのレンダリングを構成するパラメーターのセットを備える。これらのパラメーターは、3Dモデルをレンダリングするためのインプットとして使用される。これらのパラメーターは、例えば中央処理装置(CPU)および/またはグラフィック処理装置(GPU)リソースなどのコンピューターリソースに向けられた機能データであるため、ユーザーは、これらのパラメーターから3Dモデルについての視覚化モードのレンダーを直接推測することはできない。
【0006】
一例として、CADソリューションは、3Dモデルの様々な視覚化モードをレンダリングするための異なるユーザーインターフェースを提供する。レンダリングという用語の一般的な定義は、コンピュータープログラムによって3Dモデルから写実的画像、または非写実的画像を生成するプロセスである。結果として生じる画像は、レンダーと言及される。レンダーはまた、一般にレンダリングとも呼ばれる。レンダリングは、コンピューターリソースの観点から見ると非常に要求の厳しいプロセスである。レンダリングは、CPU内および/または例えばGPUなどのレンダリングデバイス内のグラフィックスパイプラインによって処理される。それ故に、リアルタイムのレンダリングは、位相エンティティの数が多いCAD3Dモデルに対して特に難易度が高い。
【0007】
3Dモデルの様々な視覚化モードをレンダリングするための公知の方法の第1のグループによっては、3Dモデル全体および/または3Dシーンの時に、1つのレンダリングのみが可能になるにすぎない。例として、コマンドのリストが提供され、コマンドのそれぞれは、3Dモデルの1つの視覚化モードのレンダリングを開始する。したがって、ユーザーはツールバーからコマンドのリストを開き、およびこのリスト内のレンダリングの1つを選択して3Dモデルに適用することができる。
図3は、コマンドのそれぞれがアイコンおよびテキストによって実現されるコマンドのリストの一例を示す。
図4Aおよび
図4Bに示される別の実施例からは、画面を彼の指でスワイプすることによって、またはボタンとインタラクトすることによって、ユーザーがレンダリング間を切り替えることができることが分かる。
【0008】
この第1のグループの方法にはいくつかの欠点がある。まず、視覚化モードを選択する前では、ユーザーはレンダーがどのように見えるか分からない。したがって、どのレンダーがユーザーのニーズに最適であるかを知る前に、様々な視覚化モード、および時にはすべての視覚化モードに対応するレンダーを彼は理解しなくてはならない。例えば、ユーザーが結果に満足していない場合、彼はリストを再度開き、別のレンダーを選択し、および同じプロセスを再開させなくてはならない。さらに、利用可能な視覚化モードのそれぞれに対して1つのコマンドが存在する。結果として、たくさんのコマンドが存在し、およびユーザーは使用すべき適切なコマンドを探すことに多くの時間を失う。その結果として、これらの欠点はマウスマイル(mouse miles)およびクリック数を増加させる。2つ目の問題は、視覚化モードの1つのレンダーのみが一度に表示されるにすぎないことである:ユーザーは、1または複数のレンダーを記憶して、現在表示されているレンダーとそれとを比較しなければならない。
【0009】
3Dモデルの様々な視覚化モードをレンダリングするための公知の方法の第2のグループによって、3Dモデル全体および/または3Dシーンの様々なレンダリングの視覚化が可能となる。
図5に示されるように、画面は様々なビューアーに分割され、および1つの視覚化モードに対応するレンダーがビューアーのそれぞれにおいて表示される。
【0010】
この2番目のグループの方法にもまた、多くの不都合がある。第1に、それは、CPUおよび/またはGPUリソースの観点からコストがかかる。レンダーを生成するために使用されるマテリアルの仕様次第では、リアルタイムでいくつかのレンダーを生成することは必ずしも可能ではないため、ビューアーが遅れて現れる場合がある。さらに、ユーザーが様々なビューアーの現在の視点を変更したい場合、視点の変更箇所それぞれに対してレンダーが計算される必要があるため、ユーザーインタラクションの後で遅延が生じ得る。第2に、画面をさまざまなビューアーに分割すると、レンダーのそれぞれが小さくなるため、レンダーのそれぞれにおいて3Dモデルの詳細を正しく視覚化することが困難となる。
【0011】
このコンテキストの中で、3Dモデルの様々な視覚化モードをレンダリングするための改善された方法に対する必要性が依然として存在する。好ましいことに、この方法は、これらのレンダリングを生成するコストを削減しながら、同時に様々なレンダーの視覚化を可能にする。
【発明の概要】
【0012】
それゆえ、少なくとも2つの3Dモデルの視覚化モードをレンダリングするためのコンピューター実装方法が提供される。方法は、第1の視覚化モードに従って、メインビューに3DモデルをレンダリングするステップS10を備える。方法は、メインビューを少なくとも2つのスプリットビューに分割するステップS20をさらに備える。スプリットビューのそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する。方法は、スプリットビューのそれぞれに対して、現在のスプリットビューに関連した3Dモデルのレンダリング領域を決定するステップS30をさらに備える。方法は、その対応する視覚化モードおよび決定されたレンダリング領域に従って、スプリットビューのそれぞれにおける3DモデルをレンダリングするステップS40をさらに備える。
【0013】
そのような方法は、3Dモデルの様々な視覚化モードを同時にレンダリングするための改良された方法を構成する。
【0014】
方法は、以下のうちの1または複数を備え得る:
【0015】
-複数の視覚化モードのうちの1つの選択を受信するステップS50と、
-少なくとも2つのスプリットビューを除去するステップS60と、
-メインビューにおける選択された視覚化モードに従って、3DモデルをレンダリングするステップS70とを方法はさらに備える。
【0016】
-受信するステップS50は、選択された視覚化モードに対応する1つのスプリットビューに関してユーザーインタラクションを備える。
【0017】
-スプリットビューのそれぞれは2Dインターフェースを備え、2Dインターフェースは、1つのアイコンおよび/またはテキストを備える。
【0018】
-スプリットビューは、共有された円中心を有した同じ中心角および半径の長さを持つ円セクタである。
【0019】
-スプリットビューは、共有された円中心を有した同じ中心角および同じ半径の長さを持つ円セクタであり、および2Dインターフェースは、スプリットビューの共有された中心と、スプリットビューとの間に表示される。
【0020】
-方法は、スプリットビューのうち1つを選択し、およびその中心角を増大させること、および/またはその半径の長さを増加させることによって、それを拡大するステップS80をさらに備える。
【0021】
-方法は、ユーザーからの入力の受信時に、スプリットビューのうちの1つを、共有された円中心の周囲で回転する、および/またはスプリットビューのうちの1つを拡大するステップS90をさらに備え、入力は、スプリットビューのうちの1つに関してインタラクションを備える。
【0022】
-スプリットビューの共有された中心は、メインビューの内側に位置し、および方法は、共有された中心をユーザーからの入力によって移動させるステップS100をさらに備える。
【0023】
-スプリットビューの共有された中心は、メインビューアーの外側に位置する。
【0024】
-スプリットビューのそれぞれは、半径の線によって、または角度間隔によって、その隣接するスプリットビューから区切られる。
【0025】
方法を実行する命令を備えるコンピュータープログラムが、さらに提供される。
【0026】
コンピュータープログラムを記録したコンピューター可読記憶媒体が、さらに提供される。
【0027】
方法を実行するように適合されたコンピューターがさらに提供される。
【0028】
メモリに結合されたプロセッサを備えるシステムがさらに提供され、メモリはコンピュータープログラムを記録している。
【図面の簡単な説明】
【0029】
限定されない例示が、添付の図面を参照してここで説明される。
【0030】
【
図2】方法に準拠したさらなるステップの実施例のフローチャートを示す。
【
図3】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図4A】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図4B】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図5】3Dモデルの様々な視覚化モードをレンダリングするための先行技術の実施例を示す。
【
図6】本発明の第1の実施例を図示するスクリーンショットである。
【
図7A】本発明の第2の実施例を図示するスクリーンショットである。
【
図7B】本発明の第2の実施例を図示するスクリーンショットである。
【
図8A】本発明の第2の実施例のユーザーインタラクションの実施例を図示するスクリーンショットである。
【
図8B】本発明の第2の実施例のユーザーインタラクションの実施例を図示するスクリーンショットである。
【
図9】本発明の第3の実施例を図示するスクリーンショットである。
【
図10】本発明の第3の実施例のユーザーインタラクションの実施例を図示するスクリーンショットである。
【
図11】本発明の様々な実施例に関する単純化された説明である。
【
図12】本発明の様々な実施例に関する単純化された説明である。
【
図13】本発明の様々な実施例に関する単純化された説明である。
【
図14】本発明の様々な実施例に関する単純化された説明である。
【
図15】本発明の様々な実施例に関する単純化された説明である。
【
図16】本発明の様々な実施例に関する単純化された説明である。
【
図17】本発明の様々な実施例に関する単純化された説明である。
【
図18】本発明の様々な実施例に関する単純化された説明である。
【
図19】本発明の第4の実施例を図示するスクリーンショットである。
【
図20】本発明の第5の実施例を図示するスクリーンショットである。
【
図21】タッチセンサー式ディスプレイで使用される本発明の第1の実施例を図示するスクリーンショットである。
【
図22】本発明を実行するためのシステムの実施例を示す。
【発明を実施するための形態】
【0031】
図1のフローチャートを参照して、少なくとも2つの3Dモデルの視覚化モードをレンダリングするためのコンピューター実装方法が提案される。
【0032】
3Dモデルは、第1の視覚化モードに従って、メインビュー200でレンダリングされる(S10)。次に、メインビュー200は、少なくとも2つのスプリットビュー100に分割される(S20)。スプリットビュー100のそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する。次に、スプリットビューのそれぞれに対して、現在のスプリットビュー100に関連した3Dモデルのレンダリング領域が決定される(S30)。最後に、3Dモデルは、その対応する視覚化モードおよび決定されたレンダリング領域に従って、スプリットビュー100のそれぞれにおいてレンダリングされる(S40)。
【0033】
これは、3Dモデルの少なくとも2つの視覚化モードをレンダリングするための改良された方法を構成する。実際に、この方法は、スプリットビューのそれぞれで3Dモデルの一部のみをレンダリングすることによってパフォーマンスへの影響を制限しながら、3Dモデルのさまざまな視覚化モードを同時にレンダリングする。したがって、2つの異なるスプリットビュー100で同時にレンダリングされている3Dモデルの部分は存在しない。別の言い方をすれば、一度に複数回レンダリングされる3Dモデルの部分がないため、3Dモデルのさまざまな視覚化モードをレンダリングするコストが限定される。
【0034】
この方法はまた、3Dモデルのさまざまなレンダーを隣同士で表示する。したがって、ユーザーインタラクションをさらに必要とされることなく、ユーザーは隣同士の様々なレンダーを見ることができるので、この方法は、3Dモデルの様々なレンダー間での比較を容易にする。レンダーを見ることができることは、さまざまな視覚化モードを比較するために特に重要であり、そして視覚化モードは、3Dモデルのレンダリングを構成するパラメーターを含む。実際に、視覚化モードのパラメーターは、例えばCPUおよび/またはGPUリソースなどのコンピューターリソースに向けられた機能データであるため、ユーザーはこれらのパラメーターに基づいて様々な視覚化モードを比較することができない。言い換えれば、ユーザーが様々なレンダーを比較することができるようになることによって、この方法は、視覚化モードを比較するために必要なユーザーインタラクションの数を確実に減少させる。さらに、この方法は、視点の変更中および/または3Dモデルの位置および/または向きの変更中にレンダーが迅速に更新されることを可能にする。一例として、3Dモデルのレンダーをスプリットビューのそれぞれで更新するために、決定するステップS30、およびレンダリングするステップS40が変更のそれぞれに対して実行され得る。
【0035】
視覚化とは、メッセージを伝えるために画像、図、および/またはアニメーションを作成するためのあらゆる技術を言う。視覚化モードは、特定の技術に基づく、および/または画像、図および/またはアニメーションを生成するための特定のパラメーターのセットに基づく。言い換えれば、2つの視覚化モードは、2つの異なる技術または1つの単一の技術に基づき得るが、2つの異なるパラメーターのセットを有しても良い。視覚化モードは、例えば科学的視覚化、データ視覚化、教育的視覚化、知識視覚化、製品視覚化、視覚コミュニケーション、および視覚分析などのさまざまなアプリケーションに対して使用される。視覚化もまた、インタラクティブであり得る。
【0036】
一例として、科学的視覚化、知識視覚化、製品視覚化、および視覚的なコミュニケーションが、たびたびCADで使用される。フローの視覚化、制約の視覚化、および/または温度の視覚化は、科学的視覚化に対して使用されるいくつかの視覚化モードである。エッジの視覚化を有するシェーディング、マテリアルの視覚化を有するシェーディング、ワイヤーフレームの視覚化、および/またはイラストレーションの視覚化は、製品の視覚化のために使用されるいくつかの視覚化モードである。注釈付きの視覚化(annotated visualization)は、知識視覚化の一例である。「視覚化モードをレンダリングする」ことによって、視覚化モードに含まれる技術およびパラメーターのセットに基づき、例えばCPU/GPUリソースなどのコンピューターリソースを使用することで、レンダーを生成することが意味される。
【0037】
3Dモデルは、3Dオブジェクトの任意の3Dデータ表現である。一例として、3Dモデルは、3Dメッシュまたは3Dポイントクラウドであっても良い。それはまた、テクスチャおよび/または2D/3Dノード(2D/3D nodes)を備えてもよい。CADアプリケーションによって、正確な3Dモデルを作成できる。3Dモデルが対応する実際の3Dオブジェクトを忠実に再現するときに、その3Dモデルは正確であると見なされる。1つの基準は、3Dモデルのエンベロープと実際のオブジェクトのエンベロープとの間の差を最小限にすることである。したがって、CADアプリケーションで作成された3Dモデルは、従来、3Dオブジェクトのでこぼこの多い粗い部分に対して多くの小さな位相要素を含む。例として、CADアプリケーションでは、3Dメッシュは、106を超える面または更に109をも超える面を含む場合がある。これらの3Dモデルをレンダリングすることは、リソースの消費となる。したがって、多数の位相エンティティを持つ3Dモデルをリアルタイムでレンダリングすることは困難である。
【0038】
まず、方法は、第1の視覚化モードに従って、メインビュー200に3Dモデルをレンダリングする(S10)。ビューは画面上の領域を占有し、および3Dモデルを2次元(2D)のサーフェスに表示する。3Dビューとも呼ばれるビューは、2Dサーフェス上の視点からの3Dモデルの表示であり、その視点は、3Dの位置および3Dの方向を備える。3Dモデルは、3Dシーンに含まれ得る。3Dモデルは、物理的オブジェクトの3Dモデルであり得る。3Dシーンは、2つ以上の3Dモデルを備え得る。説明された方法は、2つ以上の3Dモデルを備える3Dシーンと互換性がある。メリットとして、この方法は、3Dシーンの少なくとも2つの視覚化モードをレンダリングするために実行されるであろう。
【0039】
メインビュー200は、3DモデルをレンダリングするためにステップS10で使用されるビューである。例えば、メインビュー200は、我々の方法に予め存在するものである。一例として、それは、3Dモデルの設計が実行されるビューである。メインビュー200はまた、望ましい視覚化モードに基づいて3Dモデルをレンダリングし得る。望ましい視覚化モードは、ユーザーによって選択されてもよく、またはアプリケーションによって自動的に選択されてもよい。例えば、レンダリングすることがコンピューターの現在のリソースに対してリアルタイムであることを確実にするために、選択された視覚化モードが、デフォルトの視覚化モードであり得る。その後で、他のビューは、アプリケーションおよび/またはユーザーによって作成され得る。
【0040】
視覚化モードは、レンダリングの技術およびパラメーターのセットによって定義される。一例として、複数のライトニング視覚化モード(lightning visualization mode)は、光の数、光のそれぞれの向きおよび位置、光のそれぞれのタイプ(点状なもの、無限なものまたは方向性のあるもの)、光のそれぞれの強度および色を設定するためのパラメーターを備えることができるだろう。ライトニング視覚化モードのそれぞれは、これらのパラメーターの値の様々な組み合わせを有するであろう。他の視覚化モード、例えばシェーダーに基づくそれらは、機能データであるパラメーターを備える。これらのパラメーターは、例えばグラフィックカードなどのコンピューターの内部機能を設定する。視覚化モードのそれぞれは、他の視覚化モードとは異なる。レンダリングするための視覚化モードの数は、2から100を超える間で、およびより好ましくは2から8までの間で構成され得る。視覚化モードの数が多すぎる場合、例えば10を超える場合、視覚化モードをカテゴリーによってグループ化し、および選択されたカテゴリーの視覚化モードのみをレンダリングすることがより好ましい。視覚化モードのグループ化は、例えば複数選択リストボックスなどの任意の標準的なユーザーインターフェースを用いて、ユーザーによってステップS30とS40との間で提供され得、または実行され得る。次に、ユーザーは、レンダリングする視覚化モードのカテゴリーの選択を実行し得る。例えば、ユーザーは、現在の3Dモデルまたは3Dシーンに対して「ライトニング(lightning)」の下にグループ化された視覚化モードのカテゴリーを選択するためのコマンドを起動することができ、および様々なライトニング視覚化モードを示すビューアーを持った実体感のあるセレクターを得る。次に、ユーザーはレンダリングコマンドを起動することができ、およびビューアーはレンダリングの視覚化オプションで更新される。レンダリングする視覚化モードの選択はまた、グループ化することなく実行され得る。
【0041】
方法は、メインビュー200を少なくとも2つのスプリットビュー100に分割し(S20)、スプリットビュー100のそれぞれは、複数の視覚化モードのうちの1つの視覚化モードに対応する。別の言い方をすれば、スプリットビュー100のそれぞれは、1つの視覚化モードのレンダーを表示する。メインビュー200を分割することによって、分割するステップS20の間に追加のビューが作成される。ステップS20の後、メインビュー200は、スプリットビュー100によって部分的に、または完全に非表示にされる。メインビュー200は、ステップS20の後、画面上で少なくとも部分的において、もはや見えない場合がある。一例として、ステップS20の後に、メインビュー200はスプリットビュー100によって置き換えられ得る。別の例では、メインビュー200は、ステップS20の後に依然として存在し得るが、スプリットビュー100によってユーザーに対して部分的に非表示にされ得る。スプリットビュー100の数は、提供される視覚化モードの数に等しくあり得る。特に、提供される視覚化モードの数が10よりも大きい場合、スプリットビューの数はまた、提供される視覚化モードの数に及ばない場合がある。
【0042】
方法は、スプリットビューのそれぞれについて、現在のスプリットビューに関連した3Dモデルのレンダリング領域を決定するステップS30をさらに備える。3Dモデルのレンダリング領域は、3Dモデルの2Dサーフェスへの投影の結果である。一例として、まず、3Dモデルのレンダリング領域はメインビュー200について計算され得る。第2に、決定するステップS30は、スプリットビューのそれぞれのサイズおよび形式に基づいて、3Dモデルの計算されたレンダリングエリアを分割することから構成され得る。実際には、メインビュー200とスプリットビューとの間には対応がある。別の言い方をすれば、スプリットビューそれぞれの2D座標のそれぞれについて、対応する2D座標をメインビュー200で見つけることが可能である。スプリットビュー100のそれぞれに対するレンダリングエリアはまた、メインビュー200内の3Dモデルのレンダリングエリアを最初に計算せずに、3Dモデルをスプリットビュー100に3D投影することによって直接計算されることもできる。
【0043】
レンダリング領域はまた、3Dモデルの位置、向き、サイズ、およびジオメトリにも依存することは注目に値する。1または複数のスプリットビュー100に対する3Dモデルのレンダリングエリアは、ゼロであっても良い。言い換えれば、3Dモデルは、1または複数のスプリットビュー100内にレンダリングエリアを全く持たないことがある。
【0044】
方法は、スプリットビューに対応する視覚化モードおよび決定されたレンダリングエリアに従って、スプリットビュー100それぞれにおいて3Dモデルをレンダリングする(S40)。言い換えれば、スプリットビューそれぞれの対応するレンダリング領域に対して、対応する視覚化モードに基づき、およびステップS30で決定されたレンダリング領域に対してレンダリングが計算される。ステップS30およびS40は、3Dシーン全体に同じように適用され得、したがって、我々の方法は、3Dシーンの少なくとも2つの視覚化モードをレンダリングするために使用され得ることは注目に値する。
【0045】
図6は、4つのスプリットビュー100を持つ方法の第1の例を示す。モデルが3Dシーンにおいてユーザーによって移動する、または変更されるとき、スプリットビュー100のそれぞれのレンダリングエリアおよびスプリットビュー100のそれぞれのレンダーが更新される。1または複数のスプリットビュー100が移動する、および/または変更される場合、スプリットビュー100のそれぞれのレンダリングエリアおよびスプリットビュー100のそれぞれのレンダーが更新される。分割するステップS20の後でメインビュー200がまだ部分的に見える場合、3Dモデルおよび/または1または複数のスプリットビュー100が移動する、および/または変更されるのであれば、メインビュー200のレンダリングエリアおよびメインビュー200のレンダーもまた更新される必要があることは注目に値する。
【0046】
方法は、コンピューターで実装されている。これは、方法のステップ(または実質的にすべてのステップ)が、少なくとも1つのコンピューター、または任意のシステムによって同様に実行されることを意味する。したがって、方法のステップは、場合により完全に自動で、または半自動で、コンピューターによって実行される。例においては、方法の少なくともいくつかのステップについて起動することは、ユーザーとコンピューターとのインタラクションを介して実行され得る。ユーザーとコンピューターとのインタラクションについて要求されるレベルは、予測される自動性のレベルに依存し、およびユーザーの希望を実装する必要性とバランスを取られ得る。例においては、このレベルはユーザー定義され得る、および/または事前定義され得る。
【0047】
方法のコンピューター実装の典型的な例は、この目的に適合したシステムを用いて方法を実施することである。システムは、メモリおよびグラフィカルユーザーインタフェース(GUI)に結合されたプロセッサを備え得、メモリは、方法を実施するための命令を備えるコンピュータープログラムを記録している。メモリはまた、データベースを記憶し得る。メモリは、そのようなストレージに適合した任意のハードウェアであり、場合によりいくつかの物理的に区別できる部分(例えば、プログラム用の部分、および場合によってはデータベース用の部分)を備える。
【0048】
図22はシステムの一例を示し、システムは、クライアントコンピューターシステム、 例えば、ユーザーのワークステーションであり得る。
【0049】
この例のクライアントコンピューターは、内部通信バス1000に接続された中央処理装置(CPU)1010と、やはりバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピューターにはさらに、バスに接続されたビデオランダムアクセスメモリ1100に関連づけられるグラフィカルプロセシングユニット(GPU)1110が設けられている。ビデオRAM1100はまた、フレームバッファとして当技術分野で公知である。大容量ストレージデバイスコントローラ1020は、例えばハードドライブ1030など大容量メモリデバイスへのアクセスを管理する。コンピュータープログラム命令およびデータを明白に具現化するために適した大容量メモリデバイスは、全ての形態の不揮発性メモリを含み、例として、例えばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内部ハードディスクおよびリムーバルディスクなどの磁気ディスク、光磁気ディスクおよびCD-ROMディスク1040を含む。前述のいずれも、特別に設計されたASICs(特定用途向け集積回路)によって補完され、または組み込まれ得る。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。コンピューターはまた、例えばポインタ制御デバイス(またカーソル制御デバイスとも言及される)などのハプティックデバイス1090をも含み得る。ポインタ制御デバイスは、ユーザーがポインタ(またカーソルとも言及される)をディスプレイ1080上の任意の所望の位置に選択的に置くことを可能にするためにコンピューター内で使用される。ディスプレイ1080は、当該技術分野で公知であるモニター、または同様のものであっても良い。ディスプレイ1080は、タッチセンサー式ディスプレイ1080であっても良い。タッチセンサー式ディスプレイ(またタッチスクリーンとも言及される)は、前面で行われたタッチに反応する、コンピューターに取り付けられたハードウェアディスプレイユニットである。それは、1つの、2つの、または複数の同時に行われるタッチをサポートすることができる。さらに、ポインタ制御デバイスにより、ユーザーはさまざまなコマンドを選択し、および制御信号を入力することができる。ポインタ制御デバイスは、システムに制御信号を入力するための多数の信号生成デバイスを含む。タッチセンサー式ディスプレイのコンテキストでは、ハプティックデバイス1090(タッチスクリーンセンサーおよびそれに付随するコントローラベースのファームウェア)がディスプレイ上で統合され、およびタッチセンサー式ディスプレイ上のポインタ制御デバイスは、指、スタイラスペンの場合がある付属品であるが、これらに限定されない。タッチセンサー式ディスプレイではないディスプレイのコンテキストでは、ハプティックデバイス1090は、マウス、トラックボールであることができるが、これらに限定されない。
【0050】
方法のコンピューター実装の別の典型的な例は、この目的に適合したシステム、例えばサーバを用いて方法を実施することである。システムは、メモリに結合されたプロセッサを備え得、メモリは、方法を実行するための命令を備えたコンピュータープログラムを記録している。メモリはまた、データベースを記憶し得る。メモリは、そのようなストレージに適合した任意のハードウェアであり、場合によりいくつかの物理的に区別できる部分(例えば、プログラム用の部分、および場合によってはデータベース用の部分)を備える。
図22に示されるシステムの例はまた、サーバ、例えばデータベースをホスティングするサーバであっても良い。
【0051】
この例についてのサーバは、内部通信バス1000に接続された中央処理装置(CPU)1010、やはりバスに接続されたランダムアクセスメモリ(RAM)1070を備える。も。サーバにはさらに、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられるグラフィカルプロセシングユニット(GPU)1110が設けられ得る。ビデオRAM1100はまた、当技術分野でフレームバッファとして公知である。大容量ストレージデバイスコントローラ1020は、例えばハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータープログラム命令およびデータを明白に具現化するために適した大容量メモリデバイスは、全ての形態の不揮発性メモリを含み、例として、例えばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内部ハードディスクおよびリムーバルディスクなどの磁気ディスク、光磁気ディスクおよびCD-ROMディスク1040を含む。前述のいずれも、特別に設計されたASICs(特定用途向け集積回路)によって補完され、または組み込まれる。1または複数の大容量メモリデバイスは、データベースのストレージ層を実装するために使用され得る。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。サーバはまた、例えばカーソル制御デバイス、キーボード、または同種のもののようなハプティックデバイス1090を含み得る。カーソル制御デバイスは、ユーザーがカーソルをディスプレイ1080上の任意の所望の位置に選択的に置くことを可能にするために、サーバにおいて使用される。さらに、カーソル制御デバイスにより、ユーザーはさまざまなコマンドを選択し、および制御信号を入力することができる。カーソル制御デバイスは、システムに制御信号を入力するための多数の信号生成デバイスを含む。典型的には、カーソル制御デバイスはマウスであり得、マウスのボタンは信号を生成するために使用される。代替的または追加的に、サーバシステムは、感圧パッド、および/または感圧スクリーンを備え得る。
【0052】
コンピュータープログラムは、コンピューターによって実行可能な命令を備え得、命令は、上記のシステムに方法を実施させるための手段を備える。プログラムは、システムのメモリを含む任意のデータストレージ媒体上に記録可能であり得る。プログラムは、例えば、デジタル電子回路、もしくはコンピューターハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装され得る。プログラムは、装置、例えばプログラム可能なプロセッサによる実行のために機械可読ストレージデバイスに明白に具現化された製品として実装され得る。方法のステップは、入力データを操作し、および出力を生成することによって、方法の機能を実施する命令のプログラムを実行するプログラム可能なプロセッサによって実施され得る。したがって、プロセッサは、データストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、およびそれらにデータおよび命令を送信するようにプログラム可能であり、および結合され得る。アプリケーションプログラムは、高水準手続き型言語もしくはオブジェクト指向プログラミング言語で、または必要に応じてアセンブリもしくは機械語で実装され得る。いずれの場合でも、言語はコンパイルされるか、またはインタープリタ型言語であり得る。プログラムは、完全インストールプログラムまたは更新プログラムであり得る。システム上へのプログラムの適用は、いかなる場合も方法を実施するための命令をもたらす。
【0053】
好ましいことに、方法は、複数の視覚化モードのうちの1つの選択を受信するステップS50と、少なくとも2つのスプリットビュー100を除去するステップS60と、メインビュー200における選択された視覚化モードに従って、3DモデルをレンダリングするステップS70とをさらに備え得る。ユーザーは、例えばマウスデバイスまたは指などの任意のポインタ制御デバイスを用いて、複数の視覚化モードのうちの1つを選択し得る。選択はまた、半自動であってもよい。「半自動」によって、1または複数の視覚化モードの事前選択が自動的に行われ得ることが意味される。例えば、システムの現在の利用可能なCPUリソースおよび/またはGPUリソースに基づいて、リアルタイムでのレンダリングを保証するために、デフォルトの視覚化モードが事前に選択され得る。その後で、ユーザーはこの事前選択を単に確認すれば良く、または確認しなくても良い。別の例では、自動選択は、ユーザーによって使用される現在の機能に基づいても良い。一例として、ユーザーが車を表す3Dモデルを設計している場合、例えば「エッジありのシェーディング」の視覚化などの視覚化モードが選択または事前選択され得る。
【0054】
選択がシステムによって受信されるとき、スプリットビュー100は画面から除去される(S60)。除去するステップS60は、スプリットビュー100の削除または非表示から構成され得、したがって、メインビュー200を再び完全に見えるようにする。分割するステップS20の間にメインビュー200が置き換えられた場合、メインビュー200は、除去するステップS60の間にスプリットビュー100を置き換え得る。除去するステップS60は、例えばスプリットビュー100が「消える」こと、およびメインビュー200が「現れる」こと、スプリットビュー100が「飛び出す」こと、およびメインビュー200が「飛び出す」ことなどといった任意のアニメーション、またはそのようなアニメーション間での任意の組み合わせから構成され得る。
【0055】
この方法により、ユーザーは、3Dモデルの様々なレンダーを即座に比較した後で、レンダリングするステップS70を3Dモデル全体に適用することが可能となる。したがって、この方法はコンピューターリソースの観点から最適化されると同時に、人間工学的に効率的である。実際に、この方法は、例えばマウスクリックおよびマウス距離移動(mouse distance travel)などのユーザーインタラクションを最小限にする。さらに、前述のように、視覚化モードは設定された機能データであるため、ユーザーはこれらのデータを直接使用して、利用可能な視覚化モードのうちの1つの視覚化モードを選択することができない。したがって、3Dモデルのレンダーは、ユーザーがユーザーのニーズに最も適合した視覚化モードを効率的に選択するために必須である。別の言い方をすれば、この方法は、ユーザーが様々なレンダーを同時に比較することができるようになることによって、ユーザーが視覚化モードについて適した選択をするように導く。
【0056】
例において、受信するステップS50は、選択された視覚化モードに対応する1つのスプリットビュー100とのユーザーインタラクションを備え得る。例えば、受信するステップS50は、任意のユーザーインタラクションを備え得る。例えば、ディスプレイ1080がモニターであるときに、スプリットビュー100上のマウスクリックが受信されても良い。ディスプレイデバイス1080がタッチセンサー式ディスプレイである場合、
図6および
図7Aに示されるように、ユーザーの指でタップを実施することによって選択が実施されても良い。このユーザーインタラクションは直感的であり、および簡単である。方法の開始からレンダリングするステップS70まで、異なる視覚化モードに基づいて様々なレンダーを見て、およびレンダリングする関心のある視覚化モードを選択するために、たった1回のユーザーインタラクションのみが必須であるにすぎない。さらに、1つのスプリットビュー100とのユーザーインタラクションを備える受信するステップS50は、本発明に組み込まれるべき追加の2Dインターフェースを全く必要としないため、それは表示される様々なビューの領域を最大化する。
【0057】
スプリットビュー100に関してレンダリングするステップS40から、選択されたスプリットビュー100に関してレンダリングするステップS70への遷移を可能にする任意のアニメーションが使用されても良い。望ましくは、遷移は、選択されたスプリットビュー100の拡大が画面のその限界に達するまで行われることから構成されているアニメーションであり得る。
【0058】
例においては、スプリットビュー100のそれぞれは、2Dインターフェースを備え得、2Dインターフェースは、1つのアイコンおよび/またはテキストを備える。
図7A、
図7B、
図8A、
図8Bおよび
図15から
図18に示されるように、2Dインターフェース140は、その対応するスプリットビューのどこにでも追加され得る。
図9および
図10に示されるように、2Dインターフェース140は、その対応するスプリットビューの外側に追加され得る。スプリットビュー100のそれぞれに対応する2Dインターフェースを有することは、ユーザーが、どの視覚化モードがどのスプリットビューでレンダリングされるかを識別する手助けとなる。それは多くの場合において役に立つ。一例として、ユーザーが、特定の3Dモデルについて彼の好きな視覚化モードを同僚と共有したい場合、彼は、2Dインターフェースのテキストを使用してそれに名前を付けることができる。2Dインターフェースのそれぞれのサイズは変化する場合がある。好ましい例では、スプリットビュー100および/またはメインビュー200のレンダーの領域を最大化するために、2Dインターフェースそれぞれのサイズは最小化される。さらに、2Dインターフェースは部分的に透明であっても良く、したがって、スプリットビュー100のレンダーまたはメインビュー200のレンダーは、2Dインターフェースの画面領域内で依然として目に見え得る。
【0059】
望ましくは、スプリットビュー100は、同じ中心角および半径の長さを有し、共有された円中心160を持つ円セクタであり得る。したがって、スプリットビュー100は、同じ面を持つ円セクタであり得る。「共有された円中心160」によって、スプリットビュー100が円中心160を共有し得ることが意味される。言い換えれば、スプリットビュー100は、同じ(共通の)円中心160を有する。「円セクタ」100の第1の定義は、2つの半径110および外側の円弧120によって囲まれた円盤状のものの一部であり得る。
図11、
図13、
図17、
図18および
図20は、第1の定義に基づいた円セクタを示す。本発明では、円セクタはまた、2つの半径110および外側の円弧120、および内側の円弧130によって囲まれた円の一部でもあり得る。第2の定義で定義される円セクタは、
図6~
図10、
図12、
図14、
図15、
図16、
図19および
図21に示される例で使用される。すべての円セクタは、共有された円中心(または円盤状のものの中心)160を共有し得、同じ中心角および半径の長さを有し得る。「中心角」によって、円セクタの2つの半径110間の角度が意味される。「半径の長さ」によって、共有された円中心160と外側の円弧120との間、または外側の円弧120と内側の円弧130との間のいずれかの最短距離が意味される。
【0060】
すべての円セクタによって形成される形状は、それ自体円セクタであり得る。簡潔にするために、私たちはこの形成された円セクタを今後は「中国の扇(Chinese fan)と名付ける。中国の扇は1°から359°の間の中心角を持ち得る。好ましい例として、中国の扇の中心角は、180°以下であり得、およびより好ましくは45°~160°の間であり得る。一例として、180°の角度を有する中国の扇を形成する6つのスプリットビュー100がある場合、スプリットビュー100のそれぞれは、30°の中心角を有し得る。中国の扇が実装されている場合、半径の長さは変化しても良く、およびメインビューの高さおよび/または幅と等しくても良い。好ましい例では、スプリットビュー100それぞれの半径の長さは、メインビュー200の高さおよび幅よりも小さくあり得、およびより好ましくはメインビュー200の高さの60%に等しくあり得る。円中心は画面領域のどこにでも存在し得るが、中国の扇の中心角が180°より小さいときは画面領域の外側にもまた存在し得る。
図6~
図8、
図11、
図12、
図15、
図17、
図19、
図20および
図21は、中国の扇の実装例を示す。
【0061】
すべての円セクタによって形成される形状はまた、円または円盤状のものでもあり得る。簡潔にするために、私たちはこの形成された円を今後は完全な円(full circle)と名付ける。この完全な円は、円セクタのそれぞれよりも共有された円中心(または円盤状のものの中心)160を共有する。円中心は、画面領域のどこにでも存在し得る。完全な円は、円セクタのそれぞれと同じ半径の長さを有し得る。その半径の長さは変化し得、および画面領域の高さの半分および/または幅の半分に等しいことさえあり得る。好ましい例では、スプリットビュー100のそれぞれの半径の長さは、メインビュー200の高さの半分、およびメインビュー200の幅の半分よりも小さくあり得、およびより好ましくはメインビュー200の高さの30%に等しくあり得る。
【0062】
中国の扇として本発明を実装することは、レンダリングする視覚化モードの数が限定されている場合に特に適応される。逆に、本発明を完全な円として実装することは、非常に多くの視覚化モードのレンダリングを可能にする。
【0063】
中国の扇としての実装と、完全な円としての実装とを切り替えることが可能であり得る。例えば、切り替えは、ユーザーインタラクションの後に、および/または自動的に起こり得る。
【0064】
例において、スプリットビュー100は、同じ中心角および半径の長さを持ち共有された円中心160を有する円セクタであり得、および2Dインターフェースは、スプリットビュー100の共有された中心160とスプリットビュー100との間に表示され得る。
図7A、
図7B、
図8A、
図8B、
図15~
図18は、スプリットビュー100の共有された中心160とその対応するスプリットビューとの間に2Dインターフェースが表示されている例を示す。スプリットビュー100のそれぞれの円中心の近くに2Dインターフェースを持つことが優先される。なぜならば、まず、そのことは、全ての2Dインターフェースが互いに隣接していることを意味する。したがって、それは、2Dインターフェースとのインタラクションのための筋肉への無理な負担を軽減する。第2に、すべてのテキスト情報がグループ化されているため読みやすい。さらに、2Dインターフェースのそれぞれは、その対応するスプリットビュー100の隣に表示され得る。その結果として、ユーザーは、スプリットビュー100を2Dインターフェースと関連付けることが容易となる。第3に、タッチセンサー式ディスプレイ1080上で、スプリットビュー100のそれぞれの円中心160が、ユーザーの手首が存在する画面の周辺部の近くにあるときに、それは本発明の人間工学を向上させる。例えば、ユーザーがユーザーの指を使用して2DインターフェースとインタラクトすることによってステップS50を実行するとき、ユーザーの手が、スプリットビューのレンダーを隠さない。
図21は、スプリットビュー100のそれぞれの円中心が、ユーザーの手首が存在する画面180の周辺部の近くにある例を示す。しかしながら、
図21では、中国の扇が2Dインターフェースを全く含まないため、スプリットビュー100は、ユーザー190の手によって部分的に隠されている。
【0065】
好ましいことに、方法は、スプリットビュー(100)のうちの1つを選択し、その中心角を増大させることによって、および/またはその半径の長さを増加させることによって、それを拡大するステップ(S80)をさらに備える。スプリットビュー100のうちの1つでシステムによる入力を受信した後、スプリットビュー100は拡大され得る。入力は、例えばクリック、マウスデバイスを用いた長押し、タッチ、またはタッチセンサー式ディスプレイ1080上のロングタッチなどの任意のユーザーインタラクションであり得る。
図6、
図7A、
図8A、
図8B、
図10は、そのようなインタラクション150を表す手のアイコンを示す。例えば、選択されたスプリットビュー100
(S50
)が拡大されても良い。別の例では、ユーザーは、ユーザーの関心のある1または複数のレンダーをより大きなビューで見るために、1または複数のスプリットビュー100を拡大し得る。1つのスプリットビュー100が拡大されるとき、他のスプリットビュー100が離れるように移動し得(moved away)、および/または他のスプリットビューの中心角が減少させられ得る。
図8Aおよび
図8Bは、離れるように移動したスプリットビュー100の一例を示し、および
図10は、それらの中心角を減少させられたスプリットビュー100の一例を示す。拡大されたスプリットビュー100の右側または左側についてのスプリットビュー100のみが離れるように移動しても良く、および/またはそれらの中心角が減少させられても良い。2つ以上のスプリットビュー100が同時に拡大されても良く、および他のスプリットビュー100が離れるように移動しても良く、および/または他のスプリットビューの中心角が減少させられても良い。1または複数のスプリットビュー100がその半径の長さを増加させることによってのみ拡大される場合、他のスプリット
ビューは離れるように移動しないことがあり、および/または
他のスプリットビューの中心角が減少さ
せられないことがある。
【0066】
拡大はまた、システムによって自動的に開始される場合もある。つまり、選択は自動的である場合がある。例えば、ステップS40の後、スプリットビュー100のそれぞれは、最も左のビューから始まって最も右のビューまで(または逆に)拡大されても良い。
【0067】
1または複数のスプリットビュー100を、その中心角を増大させることによって、および/またはその半径の長さを増加させることによって拡大することにより、ユーザーが3Dモデルまたは3Dシーンを詳細に調査することができるようになる。実際に、そのことは、ユーザーが1または複数の対応するレンダーのより大きなビューを見ることをできるようにする。それは、多くの視覚化モードが利用可能であり、したがって、多くのスプリットビュー100が表示される場合に特に役に立つ。
【0068】
例において、方法は、ユーザーからの入力の受信時に、スプリットビュー100のうちの1つを共有された円中心160の周囲で回転させ、および/または、スプリットビュー100のうちの1つを拡大するステップS90をさらに備え、入力は、スプリットビュー100のうちの1つとのインタラクションを備える。入力は、例えばクリック、マウスデバイスについての長押し、タッチ、またはタッチセンサー式ディスプレイ1080上のロングタッチなどの任意のユーザーインタラクションであり得る。
図6、
図7A、
図8A、
図8B、および
図10は、そのようなインタラクション150を表す手のアイコンを示す。ここで、共有された円中心160の周囲を回転する範囲は、受信された入力の移動に基づいて計算され得る。一例として、スプリットビュー100を共有された中心160の周りで回転させるための回転角を計算するために、同じ円の比較的中心に対する入力の角変位を計算し、その結果としてスプリットビューに適用するための回転角を取得することが可能である。
図8Aおよび
図8Bは、スプリットビューに適用する回転角を計算するために受信されることができる変位155の例を示す。一方のスプリットビュー100が拡大されるとき、他方のスプリットビュー100は、
図8Aおよび
図8Bに示されるように、共有された円中心160の周囲を回転し得る。言い換えれば、他方のスプリットビュー100は、動かされたスプリットビューから離れるように他方のスプリットビューの円中心の周囲を回転し得る。拡大されたスプリットビュー100の右側または左側のスプリットビュー100のみが離れるように移動し得る。一方のスプリットビュー100が共有された円中心160の周囲を回転するとき、他方のスプリットビュー100の中心角もまた減少され得る。
【0069】
共有された中心160の周囲を回転することはまた、ステップS40の後に、またはユーザーからの入力を受信した後に、様々な角速度のシステムによって自動的に開始されても良い。
【0070】
スプリットビュー100のうちの1つを共有された中心160の周囲で回転させることにより、ユーザーは、関心のある視覚化モードで3Dモデル(または3Dシーン)の特定の部分を詳細に調査することができるようになる。実際に、関心のある視覚化モードに対応するスプリットビュー100が3Dモデル(または3Dシーン)の特定の部分をレンダリングしない場合、ユーザーは、単にスプリットビューを移動させれば良い。移動させることを拡大することと組み合わせることもまた可能であり、および関心のあるスプリットビュー100におけるより大きなレンダーをユーザーに提供する。
【0071】
スプリットビュー100のうちの1つは、ユーザーからの入力を受信した後に拡大されても良く、入力は、スプリットビュー100のうちの1つとのインタラクションを備える。任意のインタラクションが用いられ得る。一例として、マウスデバイスを用いたクリックまたは指を用いた長押しが、スプリットビューの1つを拡大するためのインタラクションとして使用されることもできるだろう。
【0072】
例において、共有された中心160は、メインビュー200の内側に位置し得、およびユーザーからの入力によって共有された中心160を移動させるステップS100をさらに備え得る。
図9、
図10、
図13、
図14、
図16および
図18は、メインビュー200の内側に位置する共有された中心160を有する本発明の例を示す。
図6~
図8、
図11、
図12、
図15、
図17、
図19および
図20は、メインビュー200の内側または外側に位置する共有された中心160を有し得る本発明の例を示す。共有された中心160は、2Dインターフェースによって具体化され得、2Dインターフェースは、中心に表示される。ユーザーの入力は、中央に表示される2Dインターフェースとのインタラクションを備え得る。一例として、
図9および
図10は2Dインターフェースの一例を示し、そしてそれは共有された中心160を移動させ、その結果として完全な円を移動させるために、ユーザーからの入力を受信すべく使用され得る。共有された中心160を移動させるための入力を受信することを可能にする、任意の他の2Dインターフェースが使用されることができるだろう。
【0073】
スプリットビュー100によって共有される中心を移動させることは、3Dモデルまたは3Dシーンを調査するための別の方法をユーザーに提供する。それにより、ユーザーは関心のある視覚化モードで3Dモデル(または3Dシーン)の特定の部分を詳細に調査することができる。中心を移動させることは、1または複数のスプリットビュー100を拡大すること、および/またはスプリットビュー100のうちの1つを共有された中心160の周囲で回転させることについての組み合わせのあるなしにかかわらず使用され得る。
【0074】
例においては、共有された中心160は、メインビューアーの外側に位置し得る。
図6~
図8、
図11、
図12、
図15、
図17、
図19および
図20は、メインビューアーの外側に位置し得る共有された中心を持った本発明の例を示す。共有された中心をメインビューアーの外側に位置させることは、発明が中国の扇として実装されているときに可能であるにすぎないことは注目に値する。共有された中心がメインビューアーの外側に位置する場合、中国の扇はまた移動でき得る。例えば、ユーザーは、中国の扇の任意のスプリットビュー100と直接インタラクトすることによって、中国の扇を移動させ得る。別の例では、2Dインターフェース170は、
図19に示されるように、スプリットビュー100と共有された中心との間に追加され得る。2Dインターフェース170はまた、2Dインターフェース140がスプリットビューのそれぞれに追加されるときに、スプリットビュー100に追加されても良い。第1の例では、共有された中心は、メインビューアーの外側に位置し得、次いでメインビューアーの内側に移動され得る。第2の例では、共有された中心は、中国の扇の移動または完全な円の移動の後、メインビューアーの内側に位置し得、次いでメインビューアーの外側に位置し得る。第1の例について、実装は、中国の扇から完全な円に切り替え得る。第2の例について、実装は、完全な円から中国の扇に切り替え得る。
【0075】
スプリットビュー100を円セクタとして持つことは、人間工学的に興味深い。例えば、タッチセンサー式ディスプレイ1080上で、ユーザーは、ユーザーの手首を共有された円中心160の近くに置き、その後でその手首を動かす必要なく、全てのスプリットビュー100とインタラクトすることができる。
図21は、ユーザー190の手の手首が共有された円中心160の近くに位置している一例を示す。例えばモニターなどのディスプレイ1080との組み合わせで使用される、例としてマウスデバイスなどのハプティックデバイス1090を用いた別の例において、ユーザーは、ユーザーの手首を動かす必要なく、多くのスプリットビュー100とインタラクトすることができる。実際に、ユーザーの手首を回転させるとき、マウスデバイスの動きは、スプリットビュー100を通過し得る円セクタを形成する。言うまでもなく、この円セクタは、手首が正しく位置している場合に限り、スプリットビュー100を通過する。
【0076】
例において、スプリットビュー100のそれぞれは、半径の線110によって、または角度間隔によって、その隣接するスプリットビューと区切られ得る。スプリットビュー100のそれぞれは、1つの隣接するスプリットビュー、または2つの隣接するスプリットビューのいずれかを有する。区切りは、様々な太さの半径の線110であっても良い。「半径の線」という用語は、完全な円の半径または中国の扇の半径を形成する線として定義され得る。より正確には、「半径の線」という用語によって、共有された円中心160と外側の円弧120との間の線分が意味される。区切りはまた、角度間隔であっても良い。この角度間隔は、例えば円セクタであっても良い。その形状は、スプリットビュー100と同じであり得るが、より小さな中心角を持つ。
【0077】
区切りは、様々な方法で実現され得る。例えば、それは単色の線(または単色の角度間隔)であっても良い。別の例では、区切りはメインビュー200を表示し得る。
【0078】
狭い幅の半径の線を、例えば
図6から
図10に示されるような区切りとして使用することは、本発明によって使用される面を最大化する。狭い幅とは、8ピクセル未満の幅、または好ましくは6ピクセル未満の幅を意味する。角度間隔を区切りとして使用することは、スプリットビュー100のそれぞれのレンダーをメインビュー200のレンダーと比較することについて特に興味深い場合がある。実際に、メインビュー200が角度間隔で表示される場合、メインビュー200は、スプリットビューのそれぞれの隣に表示される。さらに、
共有された中心160の周囲でスプリットビューを回転させることによって、ユーザーは、メインビュー200のレンダーを、3Dモデルの同じ特定の部分についてのスプリットビュー100のレンダーと容易に比較する。
【手続補正3】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正4】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【外国語明細書】