Three.js: Retinaディスプレイでテクスチャをシャープに見せるためにはどうすればよいですか?

作成日 2012年10月24日  ·  16コメント  ·  ソース: mrdoob/three.js

そのため、ラップトップをRetinaディスプレイMacBookに更新したところ、高解像度のテクスチャを繰り返し使用していても、非常にぼやけて見えます。

だから私はこの問題を解決するために何をすべきか疑問に思っていますか?

Question

最も参考になるコメント

これを見つけた他の人にコメントを残すだけです。答えを見つけようとしてほとんど怒って、Googleが私をここに連れてきてくれたからです。まったく同じ問題がありましたが、私の解決策は非常に単純で、 devicePixelRatio設定するだけdevicePixelRatio

renderer.setPixelRatio(window.devicePixelRatio ? window.devicePixelRatio : 1);

_オブジェクトの作成時にdevicePixelRatioを設定しても機能しないことに注意してください。 多分バグ?_

全てのコメント16件

異方性はおそらくあなたが求めているものです。
http://mrdoob.github.com/three.js/examples/webgl_materials_texture_anisotropy.html

わかりました、これは繰り返しテクスチャに関する私の問題を修正しました、thx :)しかし、それは非繰り返しテクスチャでは機能しませんでした、これをどのように修正できるかについてのアイデアはありますか?

それらはおそらく2つのテクスチャの力である必要がありますか?

テクスチャの解像度を上げてみましたが、改善が見られません。 増加した密度がどのように処理されるかを実際に知らなくても、テクスチャはジオメトリ面の適切なピクセルサイズに縮小されていますが、ディスプレイの密度に合わせてブラウザによって再度拡大されていると思います。

繰り返しテクスチャを詳しく見ると、異方性を最大に設定すると品質が大幅に向上しましたが、テクスチャは本来あるべきほどシャープではないことがわかります。

例または少なくともスクリーンショットを見ずに何が起こっているのかを知るのは難しいですが、これを見てみたいと思うかもしれません:

http://www.khronos.org/webgl/wiki/HandlingHighDPI

素晴らしいリンク@alteredq ! 私の問題を修正しました、すべてが今シャープに見えます:)

これを見つけた他の人にコメントを残すだけです。答えを見つけようとしてほとんど怒って、Googleが私をここに連れてきてくれたからです。まったく同じ問題がありましたが、私の解決策は非常に単純で、 devicePixelRatio設定するだけdevicePixelRatio

renderer.setPixelRatio(window.devicePixelRatio ? window.devicePixelRatio : 1);

_オブジェクトの作成時にdevicePixelRatioを設定しても機能しないことに注意してください。 多分バグ?_

_オブジェクトの作成時にdevicePixelRatioを設定しても機能しないことに注意してください。 多分バグ?_

それは少し前に削除されました。

@ mrdoob@ greggman参考までにrenderer.setSizeを呼び出す前にrenderer.setPixelRatioを呼び出さなければならないことはまったく明らかではありません。

@mietek実際、これはdevすでに意図せずに修正されている可能性があると思います...

renderer.setSizeを呼び出す前にrenderer.setPixelRatioを呼び出す必要があるかどうかはまったく明らかではありません。

それも役に立たない、またはそう思われます。 これは私がサファリコンソールで得るものです:

screen shot 2016-01-24 at 19 15 50

そしてこれはipadでどのように見えるかです:

screen shot 2016-01-24 at 19 21 05

ご覧のとおり、長方形は適切なサイズであるように見えますが、実際のビューポートは2倍大きくなっています。

物事はdpr = 2のchromeのシミュレーターでは正しく見えますが、ipadではそうではありません。

@makcリンクはありますか?

[削除]

他に何かが起こっています...

screen shot 2016-01-24 at 19 12 49

Safariの開発ツールを使用して、 style="width: 418pxstyle="width: 408px 、元に戻しましたが、正常に表示されます。 私は他のいくつかのcssルールが物事を台無しにしているに違いない。

物を前後に傾けるとこれも修正されるようです...とにかく、これ

        setTimeout (function () {
            renderer.domElement.style.width = (parseInt (renderer.domElement.style.width) - 1) + 'px';
            setTimeout (function () {
                renderer.domElement.style.width = (parseInt (renderer.domElement.style.width) + 1) + 'px';
            }, 0);
        }, 0);

まったく機能しませんでした。 製図板に戻る...

このページは役に立ちましたか?
0 / 5 - 0 評価