2

ThreeJS では、OrthographicCamera を使用しています。これは、遠近法の歪みなしで正面から表示する必要があるオブジェクトがいくつかあるためです。これは 1 つの問題で問題なく動作します。作成したオブジェクトの束は常に画面をほぼ埋め尽くす必要がありますが、それほど小さくも大きくもなりません。例を使用して

var factor = 4.5;
this.camera = new THREE.OrthographicCamera(-window.innerWidth / factor, window.innerWidth / factor, window.innerHeight / factor, -window.innerHeight / factor, 1, 1000);

... 1920x1080 ピクセルの解像度で問題なく実行できますが、ウィンドウのサイズを小さくしてページをリロードすると、オブジェクトが修正されたかのように動作するため、オブジェクトが大きくなりすぎます。(CombinedCamera を遠近法で使用すると、サイズ変更は動的でうまく機能します。) OrthographicCamera を使用してこれを修正するにはどうすればよいですか? または、CombinedCamera でパースペクティブをオフにできるトリックはありますか?

ありがとう!

4

1 に答える 1

9

これがあなたの特定の問題に役立つかどうかはわかりません。これが正しいかどうか、またはこれを処理するためのより良い方法またはより標準的な方法があるかどうかはわかりません。しかし、これはこれまでの正書法コードで使用しているものです。決して完璧には機能しませんが、試してみることはできます。返信して、何か良いことがわかったらお知らせください。

        $(window).on('resize', function () {
            // notify the renderer of the size change
            renderer.setSize(window.innerWidth, window.innerHeight);
            // update the camera
            camera.left = -window.innerWidth / camFactor;
            camera.right = window.innerWidth / camFactor;
            camera.top = window.innerHeight / camFactor;
            camera.bottom = -window.innerHeight / camFactor;
            camera.updateProjectionMatrix();
        });
于 2012-06-25T02:35:22.490 に答える