4

cocos2d-iphone では、デフォルトの投影タイプは「3D」投影です。ただし、次のように投影を「2D」に設定することもできます。

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

舞台裏では、3D プロジェクションは透視投影を使用しますが、2D プロジェクションは OpenGL 正投影です。これら 2 つの投影モードに関する技術的な詳細は、ここで確認できますが、それは私が興味を持っていることではありません。

cocos2d ユーザーにとっての 2D プロジェクションの利点と欠点は何ですか? 2D プロジェクションに切り替える正当な理由は何ですか?

個人的には、2D プロジェクションを使用して、等角タイルマップに深度バッファリングを使用できるようにしました。アイソメ タイルマップでは、タイルマップ上のタイルとオブジェクトの正しい z 順序付けのためにこれが必要です。

また、非タイルマップ プロジェクトで深度バッファリングを使用した 2D プロジェクションを使用して、頂点 Z プロパティを介して完全な z オーダー制御を取得しました。このプロジェクトでは、オブジェクトの頂点 Z が Y 座標に基づく疑似アイソメ表示を使用しました。

これは、2D プロジェクションを使用して vertexZ プロパティを使用できるようにするためだけに使用してきたことを意味します。これには、深度バッファリングも有効にする必要があります。2D プロジェクションに切り替えたいと思う他の理由はありますか?

4

2 に答える 2

3

次のシナリオでは、2D プロジェクションへの切り替えが命の恩人です。

  1. 大きな CCRenderTexture を作成します

  2. [... visit] または OpenGL 描画関数を使用して、その上にたくさんのものを描画します

  3. たとえば、ポイント 2. で描いたものをゲームの背景として機能させるために、レンダー テクスチャをレイヤーに追加します。

3D プロジェクションでは、テクスチャは垂直および/または水平のフォールト ラインでレンダリングされます。たとえば、http://www.cocos2d-x.org/boards/6/topics/16197を参照してください。これは cocos2d-x 用ですが、cocos2d-iphone でも同じ効果が見られ、投影を 2D に設定すると、問題。

于 2012-11-23T06:33:26.077 に答える
1

フォントファイルとTTFベースのラベルの両方のCClabelsでのフォントレンダリングの問題を解決する唯一の手段として、2Dプロジェクションに切り替えました。これは必ずしもフォントの問題の原因ではありませんが、他のすべてが失敗したときのいくつかの問題を解決しました。

于 2012-06-17T14:18:20.410 に答える