如果相机要接近网格,则FPS低

时间:2018-02-17 18:05:20

标签: javascript three.js webgl

我有一个有8棵树的小场景(每棵树由3k tris组成)。当网格尺度为0.5并且树很小时,它没关系:enter image description here 但是使用默认比例看起来像这样(FPS减半):enter image description here 我还使用着色器来获得风效果。我试过使用默认着色器,但它没有帮助。因此,如果相机足够接近网格,则会造成滞后。

着色器代码:

twigDefault.onBeforeCompile = function ( shader ) {
    shader.uniforms.time = { value: 0 };
    shader.vertexShader = 'uniform float time;\n' + shader.vertexShader;
    shader.vertexShader = shader.vertexShader.replace(
        '#include <begin_vertex>',
        [
            'float theta = sin( time + position.y ) / 300.0;', //300
            'float c = cos( theta );',
            'float s = sin( theta );',
            'mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );',
            'vec3 transformed = vec3( position ) * m;',
            'vNormal = vNormal * m;'
        ].join( '\n' )
    );
    meshes.tree.shader = shader;
};

在render()中:

if (meshes.tree.shader) {
    meshes.tree.shader.uniforms.time.value = performance.now() / 1000;
}

0 个答案:

没有答案