"モーションブラー及び被写界深度を受けるトライアングル上の頂点の行列式の符号を判定するステップと、前記符号に基づき、前記トライアングルをバックフェースカリングするか決定するステップと、を有する方法。各頂点について、前記被写界深度の効果が2つのレンズ座標u,vの関数により表すことが可能であり、前記頂点の動きが時間の関数により表すことが可能なトライアングルの頂点の行列式の符号を判定するステップを有する、請求項1記載の方法。各頂点が経時的に多項関数に従って移動するトライアングル上の頂点の行列式の符号を判定するステップを有する、請求項2記載の方法。各頂点が経時的に直線的に移動するトライアングル上の頂点の行列式の符号を判定するステップを有する、請求項3記載の方法。Bernstein係数の符号を判定し、前記符号を利用してトライアングルがバックフェースカリング可能であるか判定するステップを有する、請求項3記載の方法。移動するトライアングルが単一の視点についてフェースを変更可能であるか判定するステップを有する、請求項3記載の方法。静的なトライアングルがレンズ内の何れかの視点についてフェースを変更するか判定するステップを有する、請求項2記載の方法。拘束された算式を用いて前記行列式の等式の多項式を拘束するステップを有する、請求項2記載の方法。正方形によりレンズを近似するステップを有する、請求項2記載の方法。レンズの中間のバックフェース状態をまず確認することによって、トライアングルがカリング可能であるか判定し、前記トライアングルが前記レンズの中央においてバックフェースしている場合に限って前記完全なバックフェーステストに進み、そうでない場合、前記トライアングルが可視的である可能性があることを報告するステップを有する、請求項1記載の方法。モーションブラー及び被写界深度を受けるトライアングルの頂点の行列式の符号を判定し、前記符号に基づき、前記トライアングルをバックフェースカリングするか決定するプロセッサと、前記プロセッサに接続されるメモリと、を有する装置。当該装置は、グラフィックスプロセッサである、請求項11記載の装置。前記プロセッサは、各頂点について、前記被写界深度の効果が2つのレンズ座標u,vの関数により表すことが可能であり、前記頂点の動きが時間の関数により表すことが可能であるトライアングルの頂点の行列式の符号を判定する、請求項11記載の装置。前記プロセッサは、各頂点が経時的に多項関数に従って移動する前記行列式の符号を判定する、請求項13記載の装置。前記プロセッサは、各頂点が経時的に直線的に移動するトライアングルの頂点の行列式の符号を判定する、請求項14記載の装置。前記プロセッサは、Bernstein係数の符号を判定し、前記符号を利用してトライアングルがバックフェースカリング可能であるか判定する、請求項14記載の装置。前記プロセッサは、移動するトライアングルが単一の視点についてフェースを変更可能であるか判定する、請求項14記載の装置。前記プロセッサは、静的なトライアングルがレンズ内の何れかの視点についてフェースを変更するか判定する、請求項13記載の装置。前記プロセッサは、拘束された算式を用いて前記行列式の等式の多項式を拘束する、請求項13記載の装置。各頂点が3Dで直線的に移動するトライアングルは、動きの開始時にバックフェースすなわち、カメラから外方に向いているしている可能性がありt=0において、その後にフロントフェースfrontfaceに変わり、その後に動きの終了時に再びバックフェースするt=1において。この結果、バックフェース状態がインターバルの開始時及び終了時に真である場合、各頂点が経時的に直線的に移動するトライアングルがバックフェースしているという仮定は、常に正しいとは限らない。時間t=0からt=1までにおいて、各頂点がフレーム内で直線的に移動するムービングトライアングルがあると仮定する。t=0における頂点をqiとし、t=1における頂点をriとして示す。2Dhomogeneouscoordinates2DHを用いてクリップスペースで作業するので、頂点はp=px,py,pwとして定義される。このとき、線形補間される頂点は、として表される。頂点p0t,p1t,p2tを有するムービングトライアングルが与えられると、の行列が構成される。ここで、読みやすさのため、時間従属性は省略されている。トライアングルは、detM<0である場合、バックフェースカリングできる。ただし、行列式は、として表される。幾何学的には、これは、原点とトライアングルとにより張られる四面体のスケーリングされた符号付きボリューム計算として解釈できる。従って、であるか決定することが所望される。2つの直線移動する頂点の外積は、として展開できる。ここで、である。この式を利用して、時間に依存する行列式を導出できる。ただし、である。係数は、t=0におけるトライアングルのバックフェーステストであることに留意されたい。また、t=1における当該多項式の値は、であり、それは、同様にt=1におけるバックフェーステストである。最後に、係数の式は、3つの頂点の動きベクトルの行列式テストであり、それらがすべて同一平面上にある場合、3次の項cubictermはゼロであり、すなわち、a=0であることに留意されたい。従って、行列式が3次関数になるのは、動きベクトルが2DHにおいてボリュームを張るときに限る。多項式がにおいてルートを有さない場合、トライアングルは安全にバックフェースカリングできる。バックフェース関数がt=0及びt=1においてゼロ以下であると仮定すると、3次関数の局所的な最小値及び最大値を計算することが可能であり、インターバル内で局所的な最大値を検出した場合、当該ポイントにおいて3次多項式の値を確認する。それがゼロ以下である場合、当該トライアングルを安全にバックフェースカリングすることができる。3つの頂点の移動方向が平行である場合、バックフェース関数は線形である。係数aは、しばしば小さいか、又はほぼ平行なトライアングルの3つの動きベクトルの決定要因である。従って、冪乗形式によるバックフェース関数式6を直接計算することは、数値的に不安定になりうる。この問題を軽減するため、3次のBernstein形式によりバックフェース関数を表す。ただし、係数biは、により与えられる。次に、Bernstein基底の凸包の性質を利用し、係数biの何れかが正であるか単に確認する。これは、3次多項式の真の最大値に対するテストより粗いテストであるが、数値精度の問題のリスクを軽減する。当該テストは、deCasteljauステップを係数に適用し、生成された係数をテストすることによって精緻化可能であることに留意されたい。Bernstein式のモーションブラーのバックフェーステストは、図1に示されるように、b0を計算することによってt=0においてトライアングルをテストすることによって開始されるブロック12。ダイヤモンド14における確認は、b0が正であるか判定する。正である場合、トライアングルは、フロントフェースしているブロック16。そうでない場合、トライアングルはbnを計算することによってt=1においてテストされるブロック18。bnが正である場合、トライアングルはフロントフェースしているブロック22。そうでない場合、値1をiに代入することによってループを開始しブロック24、biを計算するブロック26。ダイヤモンド28における確認は、biが正であるか判定する。正である場合、それはフロントフェースしているブロック30。そうでない場合、iがnに等しくなるまで繰り返しブロック32及びダイヤモンド34、その後、トライアングルをバックフェースしているとして報告するブロック36。各頂点が経時的に直線的に移動するトライアングルに対するバックフェースカリングテストの実際的な実現形態を擬似コードにより示す。トライアングルの頂点の動きが多項式として表すことが可能である場合、前のテストを一般化することができる。各トライアングルの頂点の動きを2DHにおいて次数nのBezier曲線として表す。その後、バックフェーステストは、になる。これは次数3nのBezier曲線であり、制御ポイントは、頂点の動きを記述する3つの曲線のそれぞれからの3つの制御ポイントのスケーリングされた行列式の和であることに留意されたい。控えめなバックフェーステストは、再び凸包の性質を利用することによって導出できる。予想されるように、直線的な動きのケースに対して、すなわち、n=1であるとき、式10を取得する。同様の導出が、有理スプラインについて実行可能である。テストは、マクロサイズのトライアングル又は大きな動きの小さなトライアングルのモーションブラーラスタ化を高速化する可能性を有し、1回のコストのかかるバックフェースカリングテストが多くのセーブされた内部テストに対して償却できる。内部テストの回数が控えめなバックフェースカリングテストのオーバヘッドに関して小さい場合、バックフェースするトライアングルはサンプル毎の内部テストにおいて正しくカリングされるため、控えめなテスト全体をスキップすることがより良いかもしれない。ワークロードに応じて、テストは、トライアングルのサイズ又は動きが閾値を超えるときに有効とすることが可能である。被写界深度は、クリップスペースにおけるずれである。このずれは、行列をトライアングルのクリップスペース座標に適用することによって表すことができる。H,I,Jは、焦点平面の位置、カメラの絞りのサイズ、及びニアアンドファー平面nearandfarplaneにより与えられる定数である。レンズ上の位置は、u,vにより与えられる。この行列をクリップスペースの3次元同次頂点3DHに適用することにより、ずれたポジションが得られる。ただし、は、piz及びpiw項に依存する頂点毎の値である。以下の記法を簡単化するため、を、それぞれのxyw成分から構成される2次元の同次頂点を示すとする。すなわち、である。であるため、であることを留意されたい。このとき、バックフェース基準は、となる。これらの係数は、により与えられる。a及びbに対するいくつかの表現はエッジ等式の設定のため再利用可能であることに留意されたい。理解できるように、被写界深度のバックフェース関数は、u及びvにおける線形関数である式17。トライアングルは、aubvc=0であるとき、それのフェースを変更する。従って、トライアングルは、以下の連立式に対する解が存在する場合に限って、レンズ上の何れにおいてそれのフェースを変更することになる。ただし、後者の式は、レンズ位置u,vが半径Rの円形のレンズの内部にあるか確認するものである。幾何学的には、これは、円と直線との間の交差であり、である場合に限って解を有する。この結果、上記が成り立たないことを証明できる場合、レンズ上で移動する際にフェースの変更はない。直感的には、トライアングルの平面の式3次元がレンズの形状と交差しない場合、レンズに対してフェースを変更しない。最後にトライアングルのフェース法線がビューベクトルに揃えられる場合、を有し、従って、を有し、a=b=0を導く。これは、予想されるように、フェースがレンズに対して変更しないことを意味する。静的なトライアングルがバックフェースカリング可能であるか判定するため、図2のブロック42においてレンズの中間u=v=0においてバックフェース状態を計算することから開始される。c>0である場合図2のダイヤモンド44、トライアングルは、レンズの中央においてある時間フロントフェースする可能性があり、トライアングルはすべてのレンズ位置に対して控えめにバックフェースしていないため、テストは終了される図2のブロック46。そうでない場合、a2b2を計算し図2のブロック48、c2<R2a2b2であるかテストするブロック50及びダイヤモンド52。すなわち、トライアングルは、であるとき、控えめにバックフェースカリングできる。そうでない場合、トライアングルはフロントフェースしているブロック54。式1の移動する頂点と、式13のずれ行列shearmatrixSとを乗算することによって、動き及び被写界深度からの結果として得られる頂点のずれou,v,tは、により取得される。ただし、はtにおける線形関数である。式21からの対応するバックフェーステストは、として表される。係数at,bt,ctはtの3次関数である。トライアングルは、であるとき、控えめにバックフェースカリング可能である。そうでない場合、トライアングルはフロントフェースしているブロック54。控えめなテストは、インターバル計算を利用することによって取得可能である。インターバルは、として示され、はそれの加減であり、は上限である。このアイデアは、この式を式24の符号より大きな左に対して最小化し、右に対して式を最大化することである。これにより、が得られる。ここで、が用いられた。従って、と式25とが成り立つ場合、経時的にレンズ上で移動するトライアングルは、控えめにバックフェースカリング可能である。3次多項式at,bt,ctは、冪乗の形式からBernstein形式に変換可能であり、モーションブラーなプリミティブに対して以前に行ったことと同様に、控えめなカリングのためBernstein制御ポイントの凸包性質を利用する。辺の長さがRの正方形によりレンズを近似する場合、ボックステストに対する直線であるにより与えられるより粗いテストを取得する。再び、であるか、すなわち、トライアングルがレンズの中心でバックフェースしているかテストすることによって開始される。このとき、正方形のレンズの4つの角のすべてが延びた直線の同一サイドにある場合、トライアングルを控えめにカリングすることが可能である。これら4つの条件は、により与えられる。式a,b,cはtの3次多項式であることに留意されたい。円形のレンズに対して与えられるインターバル解析テストと異なり、4つの式のそれぞれについて、1つの3次式の係数を計算し、それの境界を示し、よりタイトなバウンドについて冪乗の係数の間の相関関係を維持することが可能である。これは、大きな非線形の係数の動きについてより効率的であるかもしれない。次に、モーションブラーであって焦点がずれたトライアングルのためのバックフェースカリングテストの実際の実現形態を示す。まず、a2tb2tの粗いが高速な近似は、により与えられ、これは、実質的にマンハッタン距離近似である。しかしながら、線形項における相関関係が維持可能であるため、次によりタイトなバウンドを与えることができる1階テイラーモデルを用いて3次関数を拘束boundedする。また、多項式at及びbtのt3及びt2の項は、大部分のトライアングルに対してゼロにとても近いことに留意されたい。これは、式23のat,bt,ctの項がほぼ線形であることを意味するが、また、精度の問題を回避するための措置がとられる必要があることを意味する。1階テイラーモデルを利用することによって、t3及びt2の項が小さいときに安定性を保証する。任意の3次多項式について、これは、以下に示されるように、実行される。は剰余のインターバルであり、2次及び3次の項を限定する。これを用いて、a2tb2tを、として控えめに表す。上限は、により与えられる。ここで、は、剰余のインターバルの線形関数である。at及びbtが、において線形であり、を与える場合、式32は当該ケースにおいて正確である。Bernstein基底上のモーションブラーのためのバックフェーステストを用いて、上述されるようなレンズの中心におけるバックフェース状態を決定する。最終的なテストは、式34における条件により与えられ、a2tb2tが式32を用いて拘束される。図3を参照して、被写界深度とモーションブラーの双方に対するバックフェーステストを実現するためのシーケンスは、図3のブロック62に示されるように、レンズの中心においてトライアングルをテストすることによって開始される。これは、ctの最大値を計算及び拘束することにより行われる。次に、ダイヤモンド64における確認は、max[ct]がゼロより大きいか判定する。大きい場合、トライアングルは、ブロック66に示されるように、フロントフェースしていると報告される。そうでない場合、ブロック68において、max[at2bt2]が、ブロック68に示されるように、計算及び拘束される。次に、c2の最小値が、ブロック70に示されるように、R2max[at2bt2]より大きいか判定するためのテストが行われる。大きい場合、ダイヤモンド72において、トライアングルは、ブロック74に示されるようにフロントフェースしているとして報告され、そうでない場合、ブロック76においてバックフェースしているとして報告される。ラスタ化がスクリーンスペースにおいて実行されるモーションブラーに対してベックフェースカリングテストを導出する。スクリーンスペースラスタ化について、トライアングルのスクリーンスペースエリアの符号により、共通のバックフェーステストが与えられる。射影変換はラインをラインにマッピングし、動きベクトルは射影後に依然として直線である。しかしながら、直線に沿った加速は、透視短縮perspectiveforeshorteningにより異なる。射影されたトライアングルの2つのエッジを、として定義する。符号付きのエリアを2倍にすることは、として表すことができる。各頂点はtの関数であり式1、スクリーンスペースのバックフェーステストをtの3次有理関数にすることを思い出されたい。トライアングルは平面で移動するが、頂点の位置はもはやtについて線形補間されず、トライアングルは高々3階フェースを変更可能である。さらに、分母p0wp1wp2wの大きさはエリアテストに無関係であり、クリッピング後のw個のコンポーネントの符号を知っている場合、分母は省略可能であり、予想されるように、同次のケースと同様に3次多項式をもたらす。他方、スクリーンスペースにおいて線形の動きを仮定する場合、エリア関数は2次多項式になり、このケースでさえ、移動するトライアングルは、t=0及びt=1においてバックフェースすることが可能であり、その間の何れかにおいて依然としてフロントフェースしている。本技術は、リアルタイム及びオフラインレンダリングと、確率的ポイントサンプリング及び解析的可視化方法との双方とに適用される。従来技術により招かれるレンダリングエラーは、極端なケースにおいては容易に検出可能であるが、大多数のケースにおいて、これらは、エラーを検出することが困難な妥当な画像を生成する。図4に示されるコンピュータシステム130は、バス104によりチップセットコアロジック110に接続されるハードドライブ134と着脱可能な媒体136とを有する。キーボード及びマウス120又は他の従来のコンポーネントが、チップセットコアロジックにバス108を介し接続されてもよい。一実施例では、コアロジックは、バス105を介しグラフィックスプロセッサ112と、メイン又はホストプロセッサ100に接続されてもよい。グラフィックスプロセッサ112はまた、バス106によりフレームバッファ114に接続されてもよい。フレームバッファ114は、バス107によりディスプレイスクリーン118に接続されてもよい。一実施例では、グラフィクスプロセッサ112は、SIMDSingleInstructionMultipleDataアーキテクチャを用いたマルチスレッドマルチコアパラレルプロセッサであってもよい。ソフトウェアによる実現形態のケースでは、関連するコードが、メインメモリ132やグラフィックスプロセッサ112内の何れかの利用可能なメモリを含む、何れか適切な半導体、磁気又は光メモリに格納されてもよい。従って、一実施例では、図1~3のシーケンスを実行するためのコードが、メモリ132又はグラフィックスプロセッサ112などのマシーン又はコンピュータ可読媒体に格納され、一実施例では、プロセッサ100又はグラフィックスプロセッサ112により実行されてもよい。図1~3はフローチャートである。いくつかの実施例では、これらのフローチャートに示されるシーケンスは、ハードウェア、ソフトウェア又はファームウェアにより実現されてもよい。ソフトウェアの実施例では、半導体メモリ、磁気メモリ又は光メモリなどの非一時的コンピュータ可読媒体が、命令を格納するのに利用され、図1~3に示されるシーケンスを実現するためプロセッサにより実行されてもよい。ここに説明されるグラフィックス処理技術は、各種ハードウェアアーキテクチャにより実現されてもよい。例えば、グラフィクス機能は、チップセット内に統合されてもよい。あるいは、個別のグラフィックスプロセッサが利用されてもよい。さらなる他の実施例として、グラフィックス機能は、マルチコアプロセッサを含む汎用プロセッサにより実現されてもよい。本明細書を通じて一実施例又は実施例という表現は、当該実施例に関して説明される特定の特徴、構成又は特性が、本発明内に含まれる少なくとも1つの実現形態に含まれることを意味する。従って、一実施例又は実施例ではという表現の出現は、必ずしも同一の実施例を参照しているとは限らない。さらに、当該特徴、構成又は特性は、図示された実施例以外の他の適切な形式に設定されてもよく、このようなすべての形態が本出願の請求項の範囲内に含まれる。本発明が限定数の実施例に関して説明されたが、当業者は、これから多数の改良及び変形を理解するであろう。添付した請求項は、このような改良及び変形のすべてを本発明の真の趣旨及び範囲内に属するものとしてカバーすることが意図されている。"