2

私の個人的なプロジェクトでは、次のことを行う必要があります。

  1. 3Dオブジェクトから2D平面への透視投影を生成します(空間で定義されたポイント上で、カメラになります)。

  2. パースペクティブprojectioの正確なエリア/ポイント座標を取得します

  3. 一部のオブジェクトが他のオブジェクトの背後にある可能性がある複数の3Dオブジェクトの透視投影を生成します。

  4. シーンをレンダリングします(画像は1つだけで、アニメーションはないため、リアルタイムレンダリングは必要ありません)。

ポイント1、2、4については、PyGameを使用してこれを行う方法を見つけたと思います: http://codentronix.com/2011/04/21/rotating-3d-wireframe-cube-with-python/

しかし、ポイント3については、各オブジェクトの透視投影を取得できたとしても、実際に表示されているオブジェクトと表示されていないオブジェクト(オブジェクト全体またはその一部)をどのように知ることができるので、行き詰まっています。

オブジェクトのどの部分が表示され、どの部分が表示されないかを正確に知る必要があります。したがって、最終的な目標は、すべてのオブジェクトの投影の領域が明確に定義された画面イメージのマトリックスを作成することです。

たとえば、マトリックスに画面イメージのすべてのピクセルが含まれていて、オブジェクトが10個ある場合、オブジェクトがない場合は0、オブジェクトn1が表示される場合は1、オブジェクトn2が表示される場合は2などになります。

私はPythonや他の多くの言語で熟練した開発者であることを付け加えなければなりませんが、これまでゲーム関連の開発やレンダリング開発を行ったことはありません。

誰かが私が正しい軌道に乗るのを手伝ってくれる?

PS:副次的な質問:PyGameよりも最適化されたパースペクティブプロジェクションとレンダリングの実装を教えていただければ、非常に興味があります。

4

1 に答える 1

1

このようなタスクにはOpenGLを使用することをお勧めします。基本的なOpenGLを学ぶこと(そしてこれは非常に基本的に見えます)はそれほどの努力ではありません。ここ(よく知られているチュートリアル)とここ(Python、Qt、OpenGLを使用した基本的な例)を見てください。少し努力すれば、始めるのに1日かかるかもしれません。

于 2012-10-18T20:22:37.263 に答える