1.屏幕坐标系、canvas坐标系和WebGL坐标系转换
2.有哪些材质,对灯光的感应强度
- MeshBasicMaterial:对光照无感,给几何体一种简单的颜色或显示线框
- MeshLambertMaterial:这种材质对光照有反应,用于创建暗淡的不发光的物体
- MeshPhongMaterial:这种材质对光照也有反应,用于创建金属类明亮的物体
3.UV映射
一个纹理图的原点在其左下方,坐标为(0,0),右下方为(1,0),左上方为(0,1),右上方为(1,1)
在Geometry中,faceVertexUvs决定了uv映射的关系,每一个三角面对应一个二维点数组
4.Geometry和BufferGeometry的区别
两者可以实现同样的功能,都可以用来描述几何体的顶点信息。
两者的数据结构不同,缓冲类型几何体BufferGeometry相比普通几何体Geometry性能更好。
var geometry = new THREE.BoxGeometry(10, 8, 9);
console.log('几何体数据结构',geometry);
console.log('顶点位置数据',geometry.vertices);
console.log('顶点纹理坐标',geometry.faceVertexUvs);
console.log('几何体三角形信息',geometry.faces);
var geometry = new THREE.BoxBufferGeometry(7, 6, 8);
console.log('几何体数据结构',geometry);
console.log('顶点位置、法向量、UV、颜色顶点等数据集合',geometry.attributes);
console.log('顶点位置数据',geometry.attributes.position);
console.log('顶点索引数据',geometry.index);
Geometry通过渲染器转化为BufferGeometry
Three.js的WebGL渲染器会把普通几何体对象Geometry转化为缓冲类型几何体对象 BufferGeometry,然后再提取 BufferGeometry包含的顶点信息,这里可以看出来直接使用BufferGeometry解析的时候相对Geometry少了一步,自然性能更高一些。
5.物体描边,Edges使用
将立方体对象传给EdgesGeometry的构造函数,此时就创建了边缘几何体对象
创建基础线条材质,并创建线框分段THREE.LineSegments
最后将创建的线框加入的几何体中
6.法向量
7.内存泄漏
算法:判断两条线段是否相交,并且取得相交的点
算法:判断一个直线是否和一个轮廓相交
算法:判断一组轮廓是顺时针还是逆时针
建立多个视图,透视,俯视图,左视图
建立多个场景
再物体本身有旋转的情况下,世界坐标和Local坐标怎么平移