TARDISは、非ユークリッドの幾何学の例です。団結では、真に非euclideanスペースを作成することはできませんが、視覚的に達成できます。
これを達成する1つの方法は次のとおりです。
同じスペースを占めるが、互いに衝突したり相互作用したりすることはできないシーンに2つのレイヤーを作成します。1つには、TARDISの外側のモデルが含まれます。もう1つは内部のモデルになります。
入り口にポータルを作成し、その平面が交差すると、ポータルはセクターに対応するレイヤーに渡るオブジェクトの層を変更します。
4つのステンシルバッファシェーダーを作成します：各レイヤーの読み取りと書き込み。読み取りシェーダーはゲームオブジェクトセクターに使用され、書き込みシェーダーはポータルゲームオブジェクトに使用されます。
シェーダーの1つは参照1に設定され、もう1つのセットは参照2に設定されます。
プレーヤーカメラがポータルプレーンを越えてセクターに入ると、読み取りシェーダーの比較は等しく変更されます。
A TARDIS is an example of non-euclidean geometry. In Unity, you cannot create a truly non-euclidean space, but it can be achieved visually.
Here is one method of achieving this:
Create two layers in the scene which occupy the same space, but cannot collide or interact with one another. One will contain the model of the outside of the TARDIS. The other will be the model for the inside.
Create a portal at the entrance and when its plane is crossed, the portal changes the layer of the object that crosses to the layer that corresponds with the sector.
Create four stencil buffer shaders: read and write for each layer. The read shader is used for the game object sector and the write shader is used for the portal game object.
One set of shaders is set to reference 1 and the other set is set to reference 2. Write shader 1 only references read shader 1 from behind the portal.
When the player camera crosses the portal plane and enters the sector, the read shader comparison is changed from equal to always.