1.屏幕坐标系、canvas坐标系和WebGL坐标系转换
    2.有哪些材质,对灯光的感应强度

    • MeshBasicMaterial:对光照无感,给几何体一种简单的颜色或显示线框
    • MeshLambertMaterial:这种材质对光照有反应,用于创建暗淡的不发光的物体
    • MeshPhongMaterial:这种材质对光照也有反应,用于创建金属类明亮的物体

    3.UV映射
    一个纹理图的原点在其左下方,坐标为(0,0),右下方为(1,0),左上方为(0,1),右上方为(1,1)
    image.png
    在Geometry中,faceVertexUvs决定了uv映射的关系,每一个三角面对应一个二维点数组
    4.Geometry和BufferGeometry的区别
    两者可以实现同样的功能,都可以用来描述几何体的顶点信息。
    两者的数据结构不同,缓冲类型几何体BufferGeometry相比普通几何体Geometry性能更好。

    1. var geometry = new THREE.BoxGeometry(10, 8, 9);
    2. console.log('几何体数据结构',geometry);
    3. console.log('顶点位置数据',geometry.vertices);
    4. console.log('顶点纹理坐标',geometry.faceVertexUvs);
    5. console.log('几何体三角形信息',geometry.faces);
    6. var geometry = new THREE.BoxBufferGeometry(7, 6, 8);
    7. console.log('几何体数据结构',geometry);
    8. console.log('顶点位置、法向量、UV、颜色顶点等数据集合',geometry.attributes);
    9. console.log('顶点位置数据',geometry.attributes.position);
    10. console.log('顶点索引数据',geometry.index);

    Geometry通过渲染器转化为BufferGeometry
    Three.js的WebGL渲染器会把普通几何体对象Geometry转化为缓冲类型几何体对象 BufferGeometry,然后再提取 BufferGeometry包含的顶点信息,这里可以看出来直接使用BufferGeometry解析的时候相对Geometry少了一步,自然性能更高一些。
    5.物体描边,Edges使用
    将立方体对象传给EdgesGeometry的构造函数,此时就创建了边缘几何体对象
    创建基础线条材质,并创建线框分段THREE.LineSegments
    最后将创建的线框加入的几何体中
    image.png
    image.png
    6.法向量
    7.内存泄漏
    image.png

    算法:判断两条线段是否相交,并且取得相交的点
    算法:判断一个直线是否和一个轮廓相交
    算法:判断一组轮廓是顺时针还是逆时针
    建立多个视图,透视,俯视图,左视图
    建立多个场景
    再物体本身有旋转的情况下,世界坐标和Local坐标怎么平移