Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
完全渲染网格时的Three.js回调_Three.js - Fatal编程技术网

完全渲染网格时的Three.js回调

完全渲染网格时的Three.js回调,three.js,Three.js,我有一个大网眼。完全在屏幕上渲染需要3-4秒。渲染网格时是否可以调用three.js回调函数 const fbxLoader = new FBXLoader(); const model = await fbxLoader.load('xxx.fbx'); scene.add(model); // model.onRenderedCallback = () => { // do something } // callback like this ? FBXLoader有一个内置回调,用于

我有一个大网眼。完全在屏幕上渲染需要3-4秒。渲染网格时是否可以调用three.js回调函数

const fbxLoader = new FBXLoader();
const model = await fbxLoader.load('xxx.fbx');
scene.add(model);
//
model.onRenderedCallback = () => { // do something } // callback like this ?

FBXLoader有一个内置回调,用于在加载资源时进行回调。看看源代码

loader.load(
“models/fbx/Samba Dancing.fbx”,
功能(对象){
//这是您的回调,请在此处添加操作
场景。添加(对象);
}
);
然而,解析FBX数据和纹理资源并将其上传到GPU也可能需要一些时间,遗憾的是,当数据上传到GPU完成时,没有回调。有一些方法可以缓解这种延迟,您可以预编译材质和纹理,而不是等到第一帧:

  • 使用摄影机编译场景中的所有材质。这对于在第一次渲染之前预编译着色器非常有用
  • 初始化给定的纹理。用于预加载纹理而不是等待第一次渲染

我也在一条类似的船上。我认为处理这一问题的唯一真正方法是检查帧渲染时间,并试探性地确定何时海岸清晰。所以我们可以做一些事情,比如清理那里的旋转器。有这样的东西会很好,但是WebGL似乎没有为我们提供任何有用的API。