←
Threejs 笔记
最近在学习 three.js ,把相关的比较好的博客专门归纳一下吧,感觉 three.js 学习的中文资料比较少,可能用的还没有那么多。
关于相机 position、up、lookAt 的理解
关于这个 up 熟悉,第一次没有理解,看了一下这个博主的绘图,就明白了,这里面的这个三元组不是当坐标来用的,而是一个方向向量,表示相机向上的方向。
Three.js 基础
这个教程写的非常好,特别是还直接把在线的代码编辑器嵌进去了,有意思的是教程动画的写法很有意思,按照迭代来写的:
function render(time) {
time *= 0.001;
if (resizeRendererToDisplaySize(renderer)) {
const canvas = renderer.domElement;
camera.aspect = canvas.clientWidth / canvas.clientHeight;
camera.updateProjectionMatrix();
}
objects.forEach((obj) => {
obj.rotation.y = time;
});
renderer.render(scene, camera);
requestAnimationFrame(render);
}
requestAnimationFrame(render);
这个 requestAnimationFrame 是浏览器提供的方法,time 和显示器刷新的频率有关系,60Hz 的屏幕刷新时间就是 1000ms / 60 = 16.7ms 执行一次,然后这里的 time 是从加载到”此时此刻“的时间。所以实际上每一时刻的渲染都是以最初的那个 obj 为基础的,而不是以上一次渲染的 obj。
requestAnimationFrame 相关的博客:你知道的 requestAnimationFrame
BufferGeometry 属性讲解
BufferGeometry 基础讲解(position、normal、color、index)
教程这一块讲 BufferGeometry 的属性,属于讲了但没完全讲清楚,文档也找不到详细的解释,但是结合几个博客内容就很容易理解了。