在接触Three.js之前,如果你接触过一些三维建模软件,学习Three.js的长方体、球体、圆柱等几何Geometry,可能会产生一些疑问,Threejs的这些三维几何体是空心的吗?
一般对于WebGL/Three.js底层而言,不会有实心或空心的概念,如果你对图形学比较了解,你应该知道网格模型Mesh
本身就是外部轮廓全部由三角形面构成,谈不上实心或空心。一般使用三维建模软件的时候,可能你会产生实心实体的感觉,其实无论实心还是空心,它都是空心的。
对于WebGL/Three.js知识而言虽然没有实心或空心的概念,但是开发Web3D应用的时候,你可以给一个三维模型定义这样一个概念,如果是空心的三维模型,剖切以后,可以看到一个空壳效果,如果一个网格模型Mesh
定义为实心实体,剖切该实体模型的时候,通过程序自动生成一个剖切面就行,如果是切除该实心模型部分的时候,自动封口就行。
如果你想深入理解这个问题,建议去学习原生WebGL和了解Threejs底层知识,建立顶点和三角形的概念。