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