処理部と、描画処理を行う描画部と、深度情報を記憶する第1の深度バッファーと、深度情報を記憶する第2の深度バッファーと、を含み、前記描画部は、前記第1の深度バッファーを参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行い、処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より所定の視点から見て後方における最前面の深度値である場合に、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新し、前記処理部は、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在すると前記処理部が判断した場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定することを特徴とする衝突検出システム。請求項1において、前記描画部により描画データが書き込まれる描画バッファーを含み、前記処理部は、前記描画バッファーに書き込まれた前記描画データに基づいて、前記衝突検出対象オブジェクトの衝突判定を行うことを特徴とする衝突検出システム。請求項2において、前記描画部は、前記処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より前記所定の視点から見て後方における最前面の深度値であり、且つ、前記衝突検出対象オブジェクトの深度値である場合には、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新して、前記描画バッファーに前記描画データを書き込み、前記処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より前記所定の視点から見て後方における最前面の深度値であり、且つ、前記衝突検出対象オブジェクト以外の前記他のオブジェクトの深度値である場合には、前記描画バッファーに前記描画データを書き込むことなく、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新することを特徴とする衝突検出システム。請求項2又は3において、前記処理部は、第1の描画処理において前記衝突検出対象オブジェクトの前面が描画され、前記第1の描画処理の次の第2の描画処理において前記衝突検出対象オブジェクトの背面が描画されなかったことが、前記描画バッファーの前記描画データに基づき検出された場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定することを特徴とする衝突検出システム。請求項4において、前記第1の描画処理において前記衝突検出対象オブジェクトの前面が描画された場合に第1の論理レベルになるマスクデータが生成され、前記処理部は、前記第1の描画処理で生成された前記マスクデータが前記第1の論理レベルであり、前記第2の描画処理において前記衝突検出対象オブジェクトの背面が描画されなかったことが前記描画バッファーの前記描画データに基づき検出された場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定することを特徴とする衝突検出システム。請求項2において、前記描画部は、前記衝突検出対象オブジェクトの前面を描画する場合には、前記描画データとして第1のデータを前記描画バッファーに書き込み、前記衝突検出対象オブジェクトの背面を描画する場合には、前記描画データとして前記第1のデータとは異なる第2のデータを前記描画バッファーに書き込み、前記処理部は、第1の描画処理において前記第1のデータが前記描画バッファーに書き込まれ、前記第1の描画処理の次の第2の描画処理において、前記第2のデータが前記描画バッファーに書き込まれなかった場合に、前記衝突検出対象オブジェクトについての衝突が発生したと判定することを特徴とする衝突検出システム。請求項1乃至6のいずれかにおいて、前記処理部は、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前面の次に前記衝突検出対象オブジェクトの背面が描画されたと判断した場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突しなかったと判定することを特徴とする衝突検出システム。請求項1乃至7のいずれかにおいて、1画面分の描画処理が終了した後に、前記第2の深度バッファーの第2の深度値が前記第1の深度バッファーに書き込まれることを特徴とする衝突検出システム。請求項1乃至8のいずれかにおいて、前記描画部は、無限遠の前記視点での平行投影で描画処理を行うことを特徴とする衝突検出システム。請求項1乃至9のいずれかにおいて、前記衝突検出対象オブジェクトは、ロボットをモデル化したオブジェクトであることを特徴とする衝突検出システム。請求項1乃至10のいずれかに記載の衝突検出システムを含むことを特徴とするロボットシステム。第1の深度バッファーを参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行い、処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より所定の視点から見て後方における最前面の深度値である場合に、第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新し、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在するか否かを判断し、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在すると判断された場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定することを特徴とする衝突検出方法。処理部と、描画処理を行う描画部と、深度情報を記憶する第1の深度バッファーと、深度情報を記憶する第2の深度バッファーとして、コンピューターを機能させ、前記描画部は、前記第1の深度バッファーを参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行い、処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より所定の視点から見て後方における最前面の深度値である場合に、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新し、前記処理部は、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在すると判断した場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定することを特徴とするプログラム。しかしながら特許文献1の従来技術では、深度値の更新が、物体を描画する順番に依存するため、衝突の検出漏れが発生する可能性がある。例えば、前方側手前側に配置された物体を描画した後で、その後方側奥側において別の物体間で衝突が起こったとしても、深度値は既に前方側のオブジェクトの値に更新されているために、それを検出することはできないことになる。また特許文献2の従来技術では、非凸であるポリゴンの衝突を正確に取り扱うのが困難であるという問題がある。即ち、原点から面までの距離を単一のキューブマップに記憶しているため、ある方向において、そのポリゴンの面が複数ある場合、つまりそのような非凸のポリゴンの場合においては、それを単一のキューブマップとしては表現できないことになる。本発明の幾つかの態様によれば、衝突検出対象オブジェクトの正確な衝突判定を実現できる衝突検出システム、ロボットシステム、衝突検出方法及びプログラム等を提供できる。本発明の一態様は、処理部と、描画処理を行う描画部と、深度情報を記憶する第1の深度バッファーと、深度情報を記憶する第2の深度バッファーとを含み、前記描画部は、前記第1の深度バッファーを参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行い、処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より所定の視点から見て後方における最前面の深度値である場合に、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新し、前記処理部は、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在すると前記処理部が判断した場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定する衝突検出システムに関係する。本発明の一態様によれば、第1の深度バッファーを参照して、衝突検出対象オブジェクトと他のオブジェクトの描画処理が行われる。そして描画処理の処理対象ピクセルの深度値が、第1の深度バッファーの第1の深度値よりも後方における最前面の深度値である場合に、第2の深度値が、処理対象ピクセルの深度値に更新される。そしてこの描画処理の結果に基づいて、衝突検出対象オブジェクトの前面と背面の間に他のオブジェクトが存在すると判断されると、衝突が発生したと判定される。このようにすれば、深度バッファー処理を有効活用した衝突判定が可能になり、衝突検出対象オブジェクトの正確な衝突判定を実現できるようになる。また本発明の一態様では、前記描画部により描画データが書き込まれる描画バッファーを含み、前記処理部は、前記描画バッファーに書き込まれた前記描画データに基づいて、前記衝突検出対象オブジェクトの衝突判定を行ってもよい。このようにすれば、描画処理の結果として、描画データが描画バッファーに書き込まれ、書き込まれた描画データに基づいて、衝突検出対象オブジェクトの衝突判定を行うことが可能になる。また本発明の一態様では、前記描画部は、前記処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より前記所定の視点から見て後方における最前面の深度値であり、且つ、前記衝突検出対象オブジェクトの深度値である場合には、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新して、前記描画バッファーに前記描画データを書き込み、前記処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より前記所定の視点から見て後方における最前面の深度値であり、且つ、前記衝突検出対象オブジェクト以外の前記他のオブジェクトの深度値である場合には、前記描画バッファーに前記描画データを書き込むことなく、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新してもよい。このようにすれば、衝突検出対象オブジェクトについては、深度値の更新と描画データの書き込みが行われる一方で、他のオブジェクトについては、描画データの書き込みが行われず、深度値の更新だけが行われるようになる。このような描画データの書き込みを行うことで、衝突検出対象オブジェクトの前面と背面の間に他のオブジェクトが存在するか否かを判定できるようになる。また本発明の一態様では、前記処理部は、第1の描画処理において前記衝突検出対象オブジェクトの前面が描画され、前記第1の描画処理の次の第2の描画処理において前記衝突検出対象オブジェクトの背面が描画されなかったことが、前記描画バッファーの前記描画データに基づき検出された場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定してもよい。このようにすれば、第1の描画処理で衝突検出対象オブジェクトの前面が描画され、次の第2の描画処理で衝突検出対象オブジェクトの背面が描画されたことを、描画バッファーの描画データに基づき判断できるようになる。また本発明の一態様では、前記第1の描画処理において前記衝突検出対象オブジェクトの前面が描画された場合に第1の論理レベルになるマスクデータが生成され、前記処理部は、前記第1の描画処理で生成された前記マスクデータが前記第1の論理レベルであり、前記第2の描画処理において前記衝突検出対象オブジェクトの背面が描画されなかったことが前記描画バッファーの前記描画データに基づき検出された場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定してもよい。このようにすれば、生成されたマスクデータが第1の論理レベルか否かを判断することで、第1の描画処理において衝突検出対象オブジェクトの前面が描画されたか否かを判断できるようになる。そして、マスクデータが第1の論理レベルであり、且つ第2の描画処理で衝突検出対象オブジェクトの背面が描画された場合に、衝突検出対象オブジェクトの衝突が発生したと判定できるようになる。また本発明の一態様では、前記描画部は、前記衝突検出対象オブジェクトの前面を描画する場合には、前記描画データとして第1のデータを前記描画バッファーに書き込み、前記衝突検出対象オブジェクトの背面を描画する場合には、前記描画データとして前記第1のデータとは異なる第2のデータを前記描画バッファーに書き込み、前記処理部は、第1の描画処理において前記第1のデータが前記描画バッファーに書き込まれ、前記第1の描画処理の次の第2の描画処理において、前記第2のデータが前記描画バッファーに書き込まれなかった場合に、前記衝突検出対象オブジェクトについての衝突が発生したと判定してもよい。このようにすれば、例えば第1の描画処理において描画データとして第1のデータが描画され、第2の描画処理において描画データとして第2のデータが描画されたか否かを判断することで、衝突検出対象オブジェクトの他のオブジェクトの衝突のみならず、衝突検出対象オブジェクトの自己衝突等についても判定できるようになる。また本発明の一態様では、前記処理部は、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前面の次に前記衝突検出対象オブジェクトの背面が描画されたと判断した場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突しなかったと判定してもよい。このようにすれば、衝突検出対象オブジェクトの前面の次に背面が描画された場合に、当該処理対象ピクセルにおいては衝突検出対象オブジェクトと他のオブジェクトの衝突が発生していないと判定できるようになる。また本発明の一態様では、1画面分の描画処理が終了した後に、前記第2の深度バッファーの第2の深度値が前記第1の深度バッファーに書き込まれてもよい。このようにすれば、描画処理によって更新された第2の深度バッファーの第2の深度値を第1の深度バッファーに書き込んで、書き込まれた第2の深度値を第1の深度バッファーの第1の深度値として扱って、次の描画処理における深度判定処理等を行うことが可能になる。また本発明の一態様では、前記描画部は、無限遠の前記視点での平行投影で描画処理を行ってもよい。このように、一般的な三次元画像の描画処理とは異なり、平行投影で描画処理を行うことで、より正確な衝突判定を実現できるようになる。また本発明の一態様では、前記衝突検出対象オブジェクトは、ロボットをモデル化したオブジェクトであってもよい。また本発明の他の態様は、上記のいずれかに記載の衝突検出システムを含むロボットシステムに関係する。また本発明の他の態様は、第1の深度バッファーを参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行い、処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より所定の視点から見て後方における最前面の深度値である場合に、第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新し、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に前記他のオブジェクトが存在するか否かを判断し、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在すると判断された場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定する衝突検出方法に関係する。また本発明の他の態様は、処理部と、描画処理を行う描画部と、深度情報を記憶する第1の深度バッファーと、深度情報を記憶する第2の深度バッファーとして、コンピューターを機能させ、前記描画部は、前記第1の深度バッファーを参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行い、処理対象ピクセルの深度値が、前記第1の深度バッファーの第1の深度値より所定の視点から見て後方における最前面の深度値である場合に、前記第2の深度バッファーの第2の深度値を前記処理対象ピクセルの深度値に更新し、前記処理部は、前記衝突検出対象オブジェクトの描画処理の結果に基づいて、前記衝突検出対象オブジェクトの前記所定の視点から見たときの前面と背面の間に、前記他のオブジェクトが存在すると判断した場合に、前記衝突検出対象オブジェクトが前記他のオブジェクトに衝突したと判定するプログラムに関係する。以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。1.深度バッファー処理ロボットマニピュレーターの動作においては、周辺構造物や周辺機器への衝突や、自己衝突や、他のロボットへの衝突は非常に大きな問題となる。本実施形態の衝突検出手法では、このような衝突をシミュレーションにより事前に検出する。このような本実施形態の衝突検出手法が用いられる形態としては、大別して、オフラインでの使用事前確認と、ラインタイムでの使用予測、先読みが考えられる。オフラインの使用では、周辺環境などが既知且つ静的であり、ロボットの動作が既知である場合に、システムの作成時に、その衝突を検証する。一方、ラインタイムの使用では、周辺環境などが動的に変化する場合例えば周囲に複数のロボットが存在したり、作業者が存在する場合に、ロボットの実際の動作に先行して、シミュレーションにより衝突を検出する。従来では、このようなロボットにおける衝突検出手法として、CPUCentralProcessingUnitの処理に適したアルゴリズムを使用する場合が殆どであった。ここでCPU処理に適したアルゴリズムとは、比較的に複雑な単位処理を、比較的に少数数十から数百程度の並列度で処理するようなアルゴリズムである。しかしながら、近年では、消費電力の問題等に起因して、CPUの動作周波数の伸びは止まっている。このため、最近のCPUの性能向上は、マルチコア化などの処理の並列度の向上によって実現されている。別の言い方をすれば、並列度を上げることができないアルゴリズムでは、処理性能を向上できなくなっている。一方、GPUGraphicsProcessingUnitは、CPUに比べて非常に大きな並列度を有する。例えば現在のGPUは、ALU算術演算ユニットを数百から千数百持ち、数万から数百万の処理を並列に実行できる能力を有する。そこで本実施形態では、衝突検出のアルゴリズムとして、CPU処理よりはGPU処理に適したアルゴリズムを採用することで、従来に比べて高性能な衝突検出を実現する。具体的には、GPUが有するハードウェアー機能であるROPレンダリングアウトプットパイプラインの機能を最大限に利用する。即ち、このようなROP機能を用い、深度テスト機能と深度バッファーを有効活用して衝突検出を実現する。ここで深度バッファーは、CGComputerGraphicsにおいては主に隠面消去のために用いられ、オブジェクトの深度情報を記憶するものである。具体的にはピクセル単位で深度値Z値を記憶する。また、深度情報とは、ピクセル毎の深度値に係る情報である。以下、深度バッファーを用いた深度バッファー処理Zバッファー処理について説明する。深度バッファー処理では、ある点を描画する際に、その点の深度値と、深度バッファーに記憶されている深度値を比較する。そして、その点の深度値が大きければ右手系の場合、その点のカラー値でカラーバッファーの値を上書きすると共に、その点の深度値で深度バッファーの値を更新する。例えばオブジェクトOBA、OBB、OBCが図1A、図1Bに示すように配置されていたとする。図1AはオブジェクトOBA、OBB、OBCを上方の視点から見た場合の図であり、図1Bは前方斜め上の視点から見た場合の図である。ここでオブジェクトは、現実世界の物体をモデル化したものであり、例えば複数のプリミティブ面により構成される。プリミティブ面は、オブジェクトの構成要素であるプリミティブとなる面であり、例えばポリゴン、自由曲面、或いはサブディビジョンサーフェスなどである。図1Cに示すように、深度バッファーを用いた描画処理では、各ピクセルのカラー値RGBの色情報が描画バッファーカラーバッファーに書き込まれ、深度値Z値が深度バッファーZバッファーに書き込まれる。具体的には図2Aでは深度バッファーの深度値が初期値である最背面値に設定される。そして図2BではオブジェクトOBAが描画されている。この場合に図2BのJ1に示す領域でのオブジェクトOBAの各ピクセルの深度値は、図2Aでの深度バッファーの深度値よりも前方側手前側の深度値となっている。従って、J1に示す領域では、オブジェクトOBAのカラー値が描画バッファーに書き込まれると共に、オブジェクトOBAの深度値が深度バッファーに書き込まれて深度値が更新される。図2CではオブジェクトOBBが描画されている。この場合に図2CのJ2に示す領域でのオブジェクトOBBの各ピクセルの深度値は、深度バッファーの深度値よりも後方側奥側の深度値となっている。従って、J2に示す領域では、オブジェクトOBBは隠面消去されたと判断され、オブジェクトOBBのカラー値は描画バッファーには書き込まれず、図2DのJ3に示すように深度バッファーの深度値も更新されない。一方、J4に示す領域でのオブジェクトOBBの各ピクセルの深度値は、深度バッファーの深度値よりも前方側の深度値となっている。従って、J4に示す領域では、オブジェクトOBBのカラー値が描画バッファーに書き込まれると共に、図2DのJ5に示すようにオブジェクトOBBの深度値が深度バッファーに書き込まれて深度値が更新される。そして、図2DでオブジェクトOBCが描画されると、上記と同様の手法により、J6の領域ではカラー値の書き込みや深度値の更新が行われず、J7の領域ではカラー値の書き込みと深度値の更新が行われる。以上のような深度バッファー処理を行うことで、描画の順番に依存せずに、奥行き方向での順番が正しく判定され、図1Cに示すように適切な隠面消去が行われた画像が生成されるようになる。さて、前述した特許文献1の従来技術においても、深度バッファーを利用して衝突判定を行っている。例えば、他のオブジェクトの描画により、深度バッファーの深度値が図3Aに示すようになっていたとする。この場合に図3BのH1に示すように、オブジェクトOBA1では、その深度値がZバッファーの深度値とは異なるため、OBA1は他のオブジェクトと衝突していないと判定される。一方、H2、H3に示すように、オブジェクトOBA2では、その深度値が深度バッファーの深度値と同一になっている。従って、オブジェクトOBA2は、この深度バッファーの深度値を持った他のオブジェクトと衝突していると判定される。しかしながら、この特許文献1の従来技術では図3Cに示すような問題点がある。図3Cでは、他のオブジェクトOBDの描画により深度バッファーの深度値がH4に示すようになっている。この場合に、H5に示すようにオブジェクトOBA3はオブジェクトOBDと衝突しているのにも関わらず、オブジェクトOBA3の深度値は深度バッファーの深度値と一致していないため、衝突していないと判定されてしまう。またH6に示すように深度値が内挿された場合には、オブジェクトOBA4はオブジェクトOBDと衝突していないのに、衝突していると判定されてしまう。また、他の手法として、仮想的な視点を、地面等を表す平面状のオブジェクトの背面に設定し、背面から見て、表面にあるはずのオブジェクトが描画されれば、そのオブジェクトが平面と衝突していると判定する手法も考えられる。しかしながら、この手法では、単純な平面が仮定されているが、それが平面ではなく複雑な構造を持つオブジェクト例えば非凸である場合には、片方の面との衝突が、別の面によって遮蔽される可能性があり、このような場合には衝突を検出できなくなる。2.構成以上のような問題を解決できる本実施形態の衝突検出システムの構成例を図4に示す。なお本実施形態の衝突検出システムの構成は図4の構成には限定されず、その一部の構成要素例えば操作部、外部I/F部等を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。この衝突検出システムは、処理部10と、描画処理を行う描画部30と、記憶部50深度バッファーを含む。また操作部70、外部I/Fインターフェース部80、情報記憶媒体90を含むことができる。処理部10は、各種の判定処理や制御処理などを行うものであり、例えばCPU等の各種のプロセッサー、専用回路ASICなどのハードウェアーや、プロセッサー上で実行されるプログラムなどにより実現できる。処理部10は、オブジェクト空間設定部12、衝突判定部14を含む。オブジェクト空間設定部12は、複数のオブジェクトをオブジェクト空間に配置設定する処理等を行う。具体的には、ワールド座標系でのオブジェクトの位置や回転角度を決定し、その位置にその回転角度でオブジェクトを配置する。ここでオブジェクトは、ロボット等の衝突検出対象物や、周辺構造物や周辺機器などの被衝突検出対象物を、モデル化したものであり、ポリゴンや自由曲面などのプリミティブ面で構成される。衝突判定部14は、衝突検出対象オブジェクトと他のオブジェクト被衝突検出対象オブジェクトとの間の衝突判定処理を行うものである。衝突判定部14は、マスク画像生成部16、画像比較部18、マスクデータ生成部20を含む。描画部30は、描画処理を行うものであり、例えばGPU等の各種のプロセッサー、専用回路ASICなどのハードウェアーや、プロセッサー上で実行されるプログラムなどにより実現できる。描画部30は、深度値判定部32、深度値更新部34、深度値コピー部36を含む。この描画部30での描画処理は、頂点シェーダープログラムにより実現される頂点シェーダーや、ピクセルシェーダープログラムにより実現されるピクセルシェーダーにより実現してもよい。頂点シェーダーでは、頂点の移動処理、座標変換処理、クリッピング処理などが行われる。そして頂点処理後の頂点データに基づいてラスタライズ処理が行われる。またピクセルシェーダーでは、ラスタライズ処理後に、画像を構成するピクセルフラグメント単位での処理であるピクセル処理フラグメント処理が行われる。即ち、シェーディング言語によって記述されたシェーダープログラムによって、プログラマブルシェーダー処理が実現される。記憶部50は、処理部10や描画部30などのワーク領域となるもので、RAMSRAM、DRAM等などのメモリーにより実現できる。この記憶部50は、オブジェクトデータ記憶部52、描画バッファー54、第1、第2の深度バッファー56、58、マスクデータ記憶部60を含む。オブジェクトデータ記憶部52は、オブジェクトの位置データや回転角度データや形状データなどのオブジェクトデータを記憶する。描画バッファー54カラーバッファー、フレームバッファーは画像情報描画データを記憶するものであり、具体的には、ピクセル単位でカラー値やα値などの画像情報を記憶する。第1、第2の深度バッファー56、58Zバッファーは、深度情報を記憶するものであり、具体的にはピクセル単位で深度値Z値を記憶する。これらの描画バッファー54、第1、第2の深度バッファー56、58は、記憶部50を構成するメモリー上に記憶領域として確保される。またマスクデータ記憶部60は、マスクデータ生成部20により生成されたマスクデータを記憶する。操作部70は、使用者が各種の操作情報を入力するためのものである。外部I/F部80は、外部との間で有線や無線で情報の通信処理等を行うものである。情報記憶媒体90はコンピューターにより読み取り可能な媒体は、プログラムやデータなどを格納するものであり、その機能は、光ディスク、HDD、或いはメモリーなどにより実現できる。処理部10は、情報記憶媒体90に格納されるプログラムデータに基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体90には、本実施形態の各部としてコンピューター操作部、処理部、記憶部、出力部を備える装置を機能させるためのプログラム各部の処理をコンピューターに実行させるためのプログラムが記憶される。そして本実施形態の衝突検出システムでは、描画部30は、第1の深度バッファー56を参照して、衝突検出対象オブジェクトと、衝突検出対象オブジェクト以外の他のオブジェクトの描画処理を行う。そして処理対象ピクセルの深度値が、第1の深度バッファー56の第1の深度値より所定の視点描画処理における視点から見て後方における最前面の深度値である場合に、第2の深度バッファー58の第2の深度値を処理対象ピクセルの深度値に更新する。即ち、処理対象ピクセルが、第1の深度バッファー56の第1の深度値より後方における最前面のプリミティブ面のピクセルである場合に、当該処理対象ピクセルの深度値が、第2の深度バッファー58の対応するピクセル位置に書き込まれる。例えば後述する図7BのC1やC2に示すように第2の深度値が更新される。なお、この場合の深度値の判定処理は深度値判定部32が行い、深度値の更新処理は深度値更新部34が行う。また本実施形態では描画部30は、無限遠の視点広義には所定の視点での平行投影で描画処理を行う。そして処理部10は、衝突検出対象オブジェクトの描画処理の結果に基づいて、衝突検出対象オブジェクトの、所定の視点から見たときの前面と背面の間に、他のオブジェクトが存在すると判断した場合に、衝突検出対象オブジェクトが他のオブジェクトに衝突したと判定する。例えば後述する図7BのC4は衝突検出対象オブジェクトPB2の前面表面であり、図8BのE4は衝突検出対象オブジェクトPB2の背面裏面である。そして図8AのD4では、衝突検出対象オブジェクトPB2の前面と背面の間に他のオブジェクトOB3OB3の面が存在すると判断されるため、衝突検出対象オブジェクトPB2が他のオブジェクトOB3に衝突したと判定される。更に具体的には本実施形態の衝突検出システムは、描画部30により描画データが書き込まれる描画バッファー54を含む。そして処理部10は、描画バッファー54に書き込まれた描画データに基づいて、衝突検出対象オブジェクトの衝突判定を行う。例えば後述する図12AのH1、H2では、衝突検出対象オブジェクトの前面や背面の描画データとして1が描画バッファー54に書き込まれる。そして、この描画バッファー54に書き込まれた描画データに基づいて衝突判定が行われる。また図12CのI1では、衝突検出対象オブジェクトの前面の描画データとして第1のデータである1が描画バッファー54に書き込まれる。またI2では衝突検出対象オブジェクトの背面の描画データとして第2のデータである-1が描画バッファー54に書き込まれる。そして、この描画バッファー54に書き込まれた描画データに基づいて衝突判定が行われる。更に具体的には描画部30は、処理対象ピクセルの深度値が、第1の深度バッファー56の第1の深度値より、所定の視点から見て後方における最前面の深度値であり、且つ、衝突検出対象オブジェクトの深度値である場合には、第2の深度バッファー58の第2の深度値を処理対象ピクセルの深度値に更新して、描画バッファー54に描画データを書き込む。例えば図7BのC4は衝突検出対象オブジェクトPB2の前面であるため、1の描画データが書き込まれる。同様に図8BのE4は衝突検出対象オブジェクトPB2の背面であるため、1の描画データが書き込まれる。一方、描画部30は、処理対象ピクセルの深度値が、第1の深度バッファー56の第1の深度値より、所定の視点から見て後方における最前面の深度値であり、且つ、衝突検出対象オブジェクト以外の他のオブジェクトの深度値である場合には、描画バッファー54に描画データを書き込むことなく、第2の深度バッファー58の第2の深度値を処理対象ピクセルの深度値に更新する。例えば図8AのD4は他のオブジェクトOB3の背面であるため、描画バッファー54に1の描画データは書き込まれず、描画バッファー54には初期値である0が書き込まれたままになる。そして処理部10は、第1の描画処理において衝突検出対象オブジェクトの前面が描画され、第1の描画処理の次の第2の描画処理において衝突検出対象オブジェクトの背面が描画されなかったことが、描画バッファー54の描画データに基づき検出された場合に、衝突検出対象オブジェクトが他のオブジェクトに衝突したと判定する。例えば後述する図10CのG1では、第1の描画処理において衝突検出対象オブジェクトPBの前面が描画されている。一方、図10DのG2では、第2の描画処理において衝突検出対象オブジェクトPBの背面が描画されておらず、他のオブジェクトOBの背面が描画されている。このような場合、衝突検出対象オブジェクトPBの描画時の描画データを1とすると、図10Cの第1の描画処理では、図12BのH3に示すように1の描画データが描画バッファー54が書き込まれる。一方、図10Dの第2の描画処理では、図12BのH4に示すように1の描画データは書き込まれず、描画データは初期値である0のままになる。従って、この場合には、他のオブジェクトとの衝突が発生したと判定する。また本実施形態では、後述する図11A、図11Bで説明するように、第1の描画処理において衝突検出対象オブジェクトの前面が描画された場合に第1の論理レベル例えば1になるマスクデータが生成される。ここで第1の論理レベルは、例えば二値化されたデジタルデータの一方の論理レベルである。またマスクデータは、例えば衝突検出対象オブジェクトの前面が描画された直後であることを示すデータである。そして処理部10は、図10A、図10Cの第1の描画処理で生成されたマスクデータが第1の論理レベル1であり、図10B、図10Dの第2の描画処理において衝突検出対象オブジェクトの背面が描画されなかったことが描画バッファー54の描画データに基づき検出された場合に、衝突検出対象オブジェクトが他のオブジェクトに衝突したと判定する。例えば図11Bや図12BのH3、H4に示すように、マスクデータが1であり、描画データが0である場合には、衝突が発生したと判定する。なおマスクデータはマスクデータ生成部20が生成する。また後述するマスク画像はマスク画像生成部16が生成し、マスクデータやマスク画像を用いた画像の比較処理は、画像比較部18が行う。また描画部30は、衝突検出対象オブジェクトの前面を描画する場合には、描画データとして第1のデータを描画バッファー54に書き込み、衝突検出対象オブジェクトの背面を描画する場合には、描画データとして第1のデータとは異なる第2のデータを描画バッファー54に書き込んでもよい。例えば図12CのI1では、衝突検出対象オブジェクトの前面が描画されたため、第1のデータである1が描画バッファー54に書き込まれる。一方、図12CのI2では、衝突検出対象オブジェクトの背面が描画されたため、第2のデータである-1が描画バッファー54に書き込まれる。そして処理部10は、第1の描画処理において第1のデータが描画バッファー54に書き込まれ、第1の描画処理の次の第2の描画処理において、第2のデータが描画バッファー54に書き込まれなかった場合に、衝突検出対象オブジェクトについての衝突が発生したと判定する。例えば図12DのI3では、衝突検出対象オブジェクトの前面が描画されているため、第1のデータである1の描画データが描画バッファー54に書き込まれている。一方、I4では、第2のデータである-1の描画データは書き込まれていない。即ち図12CのI1、I2では、衝突検出対象オブジェクトの前面に対応する第1のデータ1と、背面に対応する第2のデータ-1が連続して書き込まれているため、衝突が発生していないと判定する。これに対して図12DのI3、I4では、前面に対応する第1のデータ1の次に同じ第1のデータ1が描画されているため、衝突が発生したと判定する。具体的には、この場合には例えば自己衝突が発生したと判定される。なお処理部10は、衝突検出対象オブジェクトの描画処理の結果に基づいて、衝突検出対象オブジェクトの前面の次に衝突検出対象オブジェクトの背面が描画されたと判断した場合に、衝突検出対象オブジェクトが他のオブジェクトに衝突しなかったと判定する。例えば図7AのB2では衝突検出対象オブジェクトPB1の前面が描画され、次の図7BのC2では衝突検出対象オブジェクトPB1の背面が描画されている。従って、この場合には衝突検出対象オブジェクトが他のオブジェクトに衝突しなかったと判定される。なお、1画面分の描画処理が終了した後に、第2の深度バッファー58の第2の深度値は、第1の深度バッファー56に書き込まれるコピーされる。この深度値の書き込みコピーは深度値コピー部36が行う。例えば第1の深度バッファー56に、第2の深度バッファー58の第2の深度値がコピーされて上書きされる。これにより、前回の描画処理で更新された第2の深度バッファー58の第2の深度値を、第1の深度バッファー56に書き込んでコピーして、次回の描画処理を行うことが可能になる。なお、衝突検出対象オブジェクトは、他のオブジェクトとの衝突検出対象となるオブジェクトであり、例えばロボットをモデル化したオブジェクトなどである。また、プリミティブ面がポリゴンである場合を例にとると、三角形を構成する3頂点が、視点から見て例えば反時計回りに見える面が表面frontsurfacefrontfacingsurfaceになり、視点から見て例えば時計回りに見える面が裏面backsurfacebackfacingsurfaceになる。閉じたオブジェクトの表面が外を向いていることを前提にすると、表面を前面、裏面を背面と記述することができる。以上のように本実施形態では、第1、第2の深度バッファー56、58が設けられ、これらの第1、第2の深度バッファー56、58を用いて衝突対象オブジェクト及び他のオブジェクトの描画処理が行われる。そして、描画処理の結果に基づいて、衝突検出対象オブジェクトの前面と背面の間に他のオブジェクトが存在すると判断されると、衝突が発生したと判断される。即ち、本実施形態の手法は、全てのオブジェクト物体の表面の深度値を、前面から順に描画して行けば、オブジェクトに衝突が発生していなければ、オブジェクトの前面を描画した後に、必ずオブジェクトの背面が描画されるという原理に基づいている。即ちオブジェクトの前面と背面の間に、別の面が描画されれば、それは衝突が発生したことを意味する。例えば衝突検出対象オブジェクトを描画するときには、例えば1の描画データを描画し、そうでない場合にはなにも描画しない、つまり0であるとする。すると処理対象ピクセルについて、図12AのH1、H2に示すように、1の描画データが連続していた場合には、衝突は発生していないと判定できる。一方、図12BのH3、H4に示すように、1の後に0が来る場合には、衝突が発生していると判定できる。また衝突検出対象オブジェクトの前面を、例えば第1のデータである1の描画データで描画し、背面を、例えば第2のデータである-1で描画したとする。すると図12CのI1、I2に示すように1の後に-1が来た場合には、衝突が発生していないと判定できる。一方、図12DのI3、I4に示すように、1の後に-1が来ない場合には、衝突が発生したと判定できる。以上のように本実施形態によれば、深度バッファー処理を有効活用した高速正確な衝突判定近接判定を実現できる。即ち、衝突近接の問題を、最新の描画ハードウェアー処理に適した遮蔽処理に置き換えることで、非常に高速に、衝突判定近接判定を行うことが可能になる。なお本実施形態のオブジェクトの描画処理では、描画部30は無限遠の視点での平行投影で描画処理を行っている。即ち、通常の3DCGにおいては、パースのついた画像を生成するために透視投影で描画処理を行うのが一般的である。この点、本実施形態では、3DCGの画像生成のためではなく、衝突判定のために深度バッファー処理を利用している。そして透視投影で描画処理を行うと、正確な衝突判定を実現できなくなるおそれがあり、本実施形態では、この点に着目して平行投影で描画処理を行っている。図5に本実施形態の衝突検出システムを含むロボットシステムの例を示す。このロボットシステムは、制御装置300情報処理装置とロボット310とを含む。制御装置300はロボット310の制御処理を行う。具体的には、動作シーケンス情報シナリオ情報に基づいてロボット310を動作させる制御を行う。ロボット310は、アーム320及びハンド把持部330を有する。そして制御装置300からの動作指示にしたがって動作する。例えば、図示しないパレットに載せられたワークを把持したり、移動するなどの動作を行う。また、図示しない撮像装置で取得された撮像画像情報に基づいて、ロボットの姿勢やワークの位置などの情報が検出され、検出された情報が制御装置300に送られる。本実施形態の衝突検出システムは例えば図5の制御装置300に設けられ、例えば制御装置300のハードウェアーやプログラムにより衝突検出システムが実現される。そして、ラインタイムの使用では、周辺環境などが動的に変化する場合に、ロボット310の実際の動作に先行して、本実施形態の衝突検出システムがシミュレーションにより衝突の判定処理を行う。そして制御装置300は、ロボット310が周辺構造物や周辺機器などに衝突しないように、判定処理の結果に基づいてロボット310の制御を行う。一方、オフラインの使用では、本実施形態の衝突検出システムにより、動作シーケンス情報等の作成時にシミュレーションにより衝突を検証する。そして制御装置300は、衝突が起こらないように作成された動作シーケンス情報シナリオ情報に基づいて、ロボット310を制御する。3.本実施形態の手法次に本実施形態の手法について図面を用いて更に詳細に説明する。自己衝突を考慮しなくてもよい場合には、本実施形態では以下の手法により衝突を検出する。即ち本実施形態では第1の深度バッファー56の第1の深度値と第2の深度バッファー58の第2の深度値を用いる。具体的には、第1の深度値よりも後方奥側で、且つ最前面第2の深度値のオブジェクトを描画対象とする。この時、衝突検出対象オブジェクトについては、実際に描画を行い、且つ深度値を更新する。一方、衝突検出対象オブジェクト以外のオブジェクトについては、深度値のみを更新し、描画は行わない。そして1画面分の描画が行われるごとに、第2の深度バッファー58の第2の深度値を第1の深度バッファー56の第1の深度値へコピーし、深度値の全てが最背面に到達するまで描画を行う。或いは、全ての衝突検出対象オブジェクトの背面を描画し終えるまで描画を行う。つまり前方の面から、1面ずつ描画を行うということである。そして、衝突検出対象オブジェクトがなにかと衝突していなければ、その前面を描画した次のステップで、必ずその背面が描画される。一方、衝突検出対象オブジェクトがなにかと衝突していれば、衝突検出対象オブジェクトの前面と背面の間に、別のオブジェクトが介在することを意味する。更に具体的には本実施形態では、1画面分の描画が行われた後、以下の処理が行われる。まずマスクデータ記憶部60に記憶されるマスクデータと描画データとの論理積がとられて、マスク画像が生成される。そして、生成されたマスク画像とマスクデータが比較され、それらが一致していれば、その時点では衝突は検出されないと判断する。一方、一致していなければ、衝突が検出されたと判断する。衝突が検出されない場合、以下の処理が行われる。まず、第2の深度値を、新規の第1の深度値としてコピーする。そしてマスクデータと描画データの排他的論理和がとられ、得られたデータと描画データとの論理積がとられ、得られたデータを新規のマスクデータとしてマスクデータ記憶部60に記憶する。以上の処理を、第1の深度値の全てが最背面に到達するまで行う。そして衝突が検出されずに最背面に到達すれば、衝突は発生しなかったと判断する。次に図6A~図12Dを用いて本実施形態の衝突検出手法について更に詳細に説明する。例えば図6A、図6Bにおいて、PB1、PB2、PB3は、衝突検出対象オブジェクトであり、OB1、OB2、OB3は、衝突検出対象オブジェクト以外の他のオブジェクト被衝突検出対象オブジェクトである。ロボットシステムに用いられる衝突検出システムを例にとれば、PB1、PB2、PB3は、現実世界のロボットをモデル化したロボットオブジェクト、或いはロボットオブジェクトを構成するパーツオブジェクトである。またOB1、OB2、OB3は、周辺構造物や周辺機器をモデル化したオブジェクト、或いはそのパーツオブジェクトである。なおパーツオブジェクトは、衝突検出対象オブジェクトなどのモデルオブジェクトを構成する部分となるオブジェクトである。例えば衝突検出対象オブジェクトなどのモデルオブジェクトは、複数のパーツオブジェクトと、パーツオブジェクト間を接続する関節部分などにより構成される。図6Bにおいて、DP1は、第1の深度バッファー56に設定される第1の深度値第1の深度分布であり、DP2は、第2の深度バッファー58に設定される第2の深度値第2の深度分布である。図6Bに示すように初期状態では、第1の深度バッファー56の第1の深度値DP1は最前面値に設定され、第2の深度バッファー58の第2の深度値DP2は最背面値に設定される。そして図6Bでは、衝突検出対象であるオブジェクトPB1は、他のオブジェクトであるOB1、OB2、OB3と衝突していないが、衝突検出対象であるオブジェクトPB2、PB3は、他のオブジェクトであるOB3と衝突している。図6BにおいてオブジェクトPB1~PB3、OB1~OB3の描画処理を行う。そして処理対象ピクセルの深度値が、第1の深度バッファー56の第1の深度値DP1よりも後方奥側の最前面の深度値である場合に、第2の深度バッファー58の第2の深度値DP2が、処理対象ピクセルの深度値に置き換えられて更新される。例えば図6BのA1、A2、A3、A4、A5は、第1の深度値DP1よりも後方における最前面になる。従って、この場合には、図7AのB1、B2、B3、B4、B5に示すように第2の深度値DP2が更新される。即ち第2の深度値DP2は、図7AのB1では、オブジェクトOB1の前面の深度値に更新され、B2では、オブジェクトPB1の前面の深度値に更新される。また第2の深度値DP2は、B3では、オブジェクトOB2の前面の深度値に更新され、B4では、オブジェクトOB3の前面の深度値に更新され、B5では、オブジェクトPB3の前面の深度値に更新される。そして図7AのB2、B5の処理対象ピクセルは、衝突検出対象のオブジェクトPB1、PB3に属している。従って、後述する図12Aに示すように、B2、B5の処理対象ピクセルについては、1の描画データが描画バッファー54に書き込まれることになる。一方、図7AのB1、B3、B4の処理対象ピクセルは、衝突検出対象以外の他のオブジェクトOB1、OB2、OB3に属している。従って、B1、B3、B4の処理対象ピクセルでは、1の描画データは書き込まれず、描画データは0のままとなる。なお描画バッファー54の描画データは、初期状態において0にクリアされている。次に、1画面分の描画処理が終了すると、図7Bに示すように、図7Aで更新された第2の深度値DP2が、第1の深度バッファー56の第1の深度値DP1にコピーされる。そして、上述と同様の描画処理及び深度値の更新処理が行われる。例えば図7BのC1、C2、C3、C4、C5は、第1の深度値DP1よりも後方の最前面になる。従って、同図に示すように第2の深度値DP2が更新される。この場合に図7BのC2、C4の処理対象ピクセルは、衝突検出対象のオブジェクトPB1、PB2に属しているため、1の描画データが描画バッファー54に書き込まれることになる。一方、C1、C3、C5の処理対象ピクセルは、他のオブジェクトOB1、OB2、OB3に属しているため、1の描画データは書き込まれないことになる。以上のようにして、図8AではD1、D2、D3、D4、D5に示すように第2の深度値DP2の更新が行われ、描画バッファー54への描画データの書き込みが行われる。また図8BではE1、E2、E3、E4、E5に示すように第2の深度値DP2の更新が行われ、描画バッファー54への描画データの書き込みが行われる。図9A、図9Bも同様である。また図8AのD1では、第2の深度値DP2は最背面に到達したため、この処理対象ピクセルについての第2の深度値DP2の更新は終了することになる。そして本実施形態では図10A~図10Dに示す原理により、衝突検出対象オブジェクトの衝突判定を行っている。例えば図10AのF1では、第1の描画処理において、衝突検出対象オブジェクトPBの前面が描画されている。そして図10BのF2では、第1の描画処理による1画面分の描画が行われた後の次の第2の描画処理において、衝突検出対象オブジェクトPBの背面が描画されている。このように、衝突検出対象オブジェクトPBの前面と背面が連続して描画された場合には、衝突検出対象オブジェクトPBは他のオブジェクトOBと衝突していないと判定される。一方、図10CのG1では、第1の描画処理において、衝突検出対象オブジェクトPBの前面が描画されている。そして図10DのG2では、第1の描画処理の次の第2の描画処理において、衝突検出対象オブジェクトPBの背面ではなく、他のオブジェクトOBの背面が描画されている。従って、この場合には衝突検出対象オブジェクトPBの前面と背面の間に他のオブジェクトOBの面が存在するため、衝突検出対象オブジェクトPBが他のオブジェクトOBと衝突したと判定される。例えば図7AのB2では、衝突検出対象オブジェクトPB1の前面が描画され、次の描画処理である図7BのC2では、衝突検出対象オブジェクトPB1の背面が描画されている。従って、この場合には衝突検出対象オブジェクトPB1の前面の直後に背面が描画されているため、衝突が発生していないと判定される。一方、図7BのC4では、衝突検出対象オブジェクトPB2の前面が描画されているが、次の描画処理である図8AのD4では、衝突検出対象オブジェクトPB2の背面ではなく、他のオブジェクトOB3の背面が描画されている。従って、この場合には、衝突検出対象オブジェクトPB2が他のオブジェクトOB3と衝突したと判定される。同様に図8AのD3と図8BのE3では、衝突検出対象オブジェクトPB1についての衝突は発生していないと判定される。一方、図8AのD5と図8BのE5では、衝突検出対象オブジェクトPB3と他のオブジェクトOB3の衝突が発生したと判定される。以上のように本実施形態によれば、深度バッファーの深度値を用いた効率的な衝突判定を実現できる。従って、最新の並列化ハードウェアーにより、高速に衝突を検出することが可能になる。次に、マスクデータを用いた衝突判定について詳細に説明する。図11Aに、マスクデータを用いた衝突判定を実現する構成の機能ブロック図を示し、図11Bにマスクデータ等についての真理値表を示す。ここで、マスクデータは、衝突検出対象オブジェクトの前面が検出された直後かどうかを示すデータである。また描画データは、衝突検出対象オブジェクトのピクセル面の描画時に1第1の論理レベルになるデータである。図11Aに示すように、論理積部110により、マスクデータと描画データの論理積ANDがとられ、マスク画像が生成される。そして、排他的論理和部114により、論理積部110からのマスク画像と、マスクデータとの排他的論理和XORがとられる。そして図11Bの真理値表から明らかなように、マスクデータと描画データの論理積であるマスク画像と、マスクデータが不一致である場合には、排他的論理和部114の出力が1になり、衝突が検出されたと判定される。一方、マスク画像とマスクデータが一致した場合には、排他的論理和部114の出力が0になり、衝突なしと判定される。また、排他的論理和部112により、マスクデータと描画データの排他的論理和がとられ、論理積部116により、得られたデータと描画データの論理積がとられる。これにより、論理積部116からは、次の描画処理1画面分の描画処理で使用されるマスクデータが出力され、図4のマスクデータ記憶部60に記憶される。例えば図11Bにおいて、マスクデータ=1、描画データ=1の場合には、図10A、図10Bに示すように衝突検出対象オブジェクトの前面と背面が連続したと判断できる。従って、衝突検出=0衝突なしになり、次のマスクデータ=0になる。またマスクデータ=1、描画データ=0の場合には、衝突検出対象オブジェクトの前面の後が、背面ではなかったと判断できる。従って、衝突検出=1衝突ありになり、次のマスクデータ=0になる。またマスクデータ=0、描画データ=1の場合には、衝突検出対象オブジェクトの前面が現れたと判断できる。従って、衝突検出=0になり、前面が検出された直後かどうかを示す次のマスクデータは1になる。またマスクデータ=0、描画データ=0の場合には、上記以外と判断できるため、衝突検出=0、次のマスクデータ=0になる。以上のように本実施形態では、第1の描画処理図10A、図10Cで生成されたマスクデータが1第1の論理レベルであり、第2の描画処理図10B、図10Dにおいて衝突検出対象オブジェクトの背面が描画されなかったことが描画バッファー54の描画データに基づき検出された場合に、衝突検出対象オブジェクトが他のオブジェクトに衝突したと判定している。図12A、図12Bは、マスクデータや描画データを用いた衝突判定を説明する図である。図12AのH1では、衝突検出対象オブジェクトの前面が描画され、描画データが1になるため、次のマスクデータも1になる。そしてH2では衝突検出対象オブジェクトの背面が描画されて描画データが1になり、マスクデータも1であるため、図11Bの真理値表に示すように、衝突が検出されなかった衝突検出=0と判定される。図12BのH3では、衝突検出対象オブジェクトの前面が描画され、描画データが1になるため、次のマスクデータも1になる。そしてH4では衝突検出対象オブジェクトの背面は描画されず、描画データが0で、マスクデータが1であるため、図11Bの真理値表に示すように、衝突が検出された衝突検出=1と判定される。さて、以上では、衝突検出対象オブジェクトの自己衝突を考慮しない場合について説明したが、自己衝突を考慮する場合には、衝突検出対象オブジェクトの前面と背面において、異なる値の描画データを描画すればよい。例えば衝突検出対象オブジェクトの前面を描画する場合には、描画データとして第1のデータを描画バッファー54に書き込む。一方、衝突検出対象オブジェクトの背面を描画する場合には、描画データとして第1のデータとは異なる第2のデータを描画バッファー54に書き込む。そして第1の描画処理において第1のデータが描画バッファー54に書き込まれ、次の第2の描画処理において、第2のデータが描画バッファー54に書き込まれていない場合に、衝突が発生したと判定する。図12C、図12Dは、描画データの第1のデータが1であり、第2のデータが-1である場合の例である。図12CのI1では、衝突検出対象オブジェクトの前面が描画されたため、描画データは第1のデータ=1になり、I2では、衝突検出対象オブジェクトの背面が描画されたため、描画データは第2のデータ=-1となっている。従って、第1の描画処理において、前面に対応する第1のデータ=1が書き込まれ、第2の描画処理において、背面に対応する第2のデータ=-1が書き込まれているため、衝突は発生していないと判定される。一方、図12DのI3では、衝突検出対象オブジェクトの前面が描画されたため、描画データは第1のデータ=1になる。一方、I4でも、衝突検出対象オブジェクトの前面が描画されたため、描画データは第1のデータ=1となっている。従って、第1の描画処理においては、前面に対応する第1のデータ=1が書き込まれているが、第2の描画処理においては、背面に対応する第2のデータ=-1が書き込まれていないため、衝突が発生したと判定される。具体的には、図12DのI3とI4では前面が連続しているため、自己衝突が発生したと判定される。以上のようにすることで、衝突検出対象オブジェクトと他のオブジェクトの間のみならず、衝突検出対象オブジェクトの自己衝突についても検出できるようになる。なお、以上では前面を描画する場合に第1のデータ=1を書き込み、背面を描画する場合には第2のデータ=-1を書き込む場合について説明したが、本実施形態の手法はこれに限定されるものではない。例えば前面を描画する際の色と、背面を描画する際の色を異ならせ、描画色の比較処理を行うことで、自己衝突等を判定することも可能である。4.詳細な処理次に本実施形態の詳細な処理例について図13、図14のフローチャートを用いて説明する。まず、図6Bで説明したように、第1の深度バッファー56の深度値DP1を最前面値に設定し、第2の深度バッファー58の深度値DP2を最背面値に設定するステップS1、S2。次に、第1の深度バッファー56の全面が最背面に到達したか否かを判断し、到達した場合には、衝突なしとして処理を終了するステップS3、S4。一方、到達していないと判断された場合には、描画バッファー54をゼロクリアするステップS5。即ち描画データ=0に初期化する。なおステップS3の終了条件は、全ての衝突検出対象オブジェクトの背面の描画処理が終了したかという条件であってもよい。次に、全ての処理対象ピクセルを処理したか否かを判断するステップS6。そして全ての処理対象ピクセルの処理を終了していない場合には、未処理の処理対象ピクセルを1つ選択するステップS7。次に、選択された処理対象ピクセルの深度値が、第1の深度バッファー56の深度値より後方における最前面か否かを判定するステップS8。そして、後方の最前面ではない場合にはステップS6に戻り、後方の最前面である場合には、処理対象ピクセルの深度値が、第2の深度バッファー58の深度値より前方か否かを判断するステップS9。そして前方ではない場合にはステップS6に戻り、前方である場合には、第2の深度バッファー58の深度値を、処理対象ピクセルの深度値に更新するステップS10。即ち図7A~図9Bで説明したような第2の深度バッファー58の深度値DP2の更新処理を行う。そして、処理対象ピクセルが衝突検出対象オブジェクトならば、対応する描画バッファー54のピクセル位置に描画データ=1を描画するステップS11。これにより図12A、図12Bで説明したような衝突判定を実現できるようになる。図13のステップS6で、全ての処理対象ピクセルの処理1画面分の描画処理を終了したと判断した場合には、衝突判定処理を行うステップS12。そして衝突が検出されか否かを判断しステップS13、検出された場合には、衝突ありとして処理を終了するステップS14。一方、検出されなかった場合には、第2の深度バッファー58の深度値を、第1の深度バッファー56にコピーするステップS15。そして例えばステップS2に戻る。図14は図13のステップS12の衝突判定処理の詳細を示すフローチャートである。まず1回目の描画処理か否かを判断するステップS21。そして1回目の描画処理例えば図7Aの描画処理である場合には、得られた画像をマスクデータとしてマスクデータ記憶部60に記憶するステップS22。1回目の描画処理でない場合には、図11A、図11Bで説明したように、マスクデータと描画データの論理積をとり、マスク画像を生成するステップS23。次にマスクデータとマスク画像が一致しているか否かを判断しステップS24、一致していない場合には、衝突ありとして、衝突判定処理を終了するステップS25。一方、一致した場合には、マスクデータと描画データの排他的論理和をとり、得られたデータと描画データとの論理積をとり、得られたデータを次のマスクデータとして、マスクデータ記憶部60に記憶するステップS26。そして、衝突なしとして、衝突判定を終了するステップS27。なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。また衝突検出システム、ロボットシステムの構成動作や、深度値の更新手法、オブジェクトの描画手法、描画データの設定手法、衝突判定手法等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。