【问题标题】:How can a texture render target be resized (after a window resize)?如何调整纹理渲染目标的大小(在窗口调整大小之后)?
【发布时间】:2018-11-05 15:14:42
【问题描述】:

我为纹理做了这个,但它不起作用,相同的纹理被拉伸到更大的区域导致楼梯伪影(我更新了相机、平面、四边形、渲染器)

我已经看到了这个 webgl 解决方案,但我不知道如何在 three.js 中执行此操作 - 我尝试使用新纹理重新定义相同的纹理变量,但它导致 webgl 冻结。 webl-updating width and height of render target on the fly

var Xtexture = new THREE.WebGLRenderTarget( w, h, { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat } );


window.addEventListener('resize', onResize, false);

function onResize() {

    w = window.innerWidth;
    h = window.innerHeight;

    Xtexture.width = w;
    Xtexture.height = h;
};

【问题讨论】:

    标签: three.js onresize rendertarget


    【解决方案1】:

    THREE.WebGLRenderTarget的大小可以通过setSize来设置和改变:

    var Xtexture = new THREE.WebGLRenderTarget( w, h, { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat } );
    
    function onResize() {
    
        w = window.innerWidth;
        h = window.innerHeight;
    
        Xtexture.setSize(w, h); 
    };    
    

    【讨论】:

    • 谢谢! three.js 的问题在于,永远不知道什么方法是正确的,编辑器(任何编辑器,我正在使用 vscode)永远不会阻止您使用错误的方法,并且在错误的方法时没有任何警告使用 - 我觉得非常令人沮丧。
    猜你喜欢
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多