在WebGL中渲染多面体上“内部”的最简单方法是什么?
换句话说,我想要一个八角形棱镜(像圆柱体),它是“空心的”,我想要“站立”在它内部。就是这样。
答案 0 :(得分:0)
我猜测你的问题,但通常是单边绘制多边形 - 也就是说,当你从后面看到它们时它们不会渲染。在大多数情况下,这种方法更有效。
如果相机在实心棱镜内部时多边形消失,请考虑将它们渲染为双面(如果您想在不同时间内部和外部渲染),或者只是反转您的绕组(顶点顺序)多边形,或反转OpenGL的单侧多边形剔除状态(后/前),以显示背面而不是前面。
答案 1 :(得分:0)
大多数WebGL框架都会开启剔除,因此WebGL / OpenGL会剔除面向三角形的内容。
您可以确保使用
关闭剔除gl.disable(gl.CULL_FACE);
您可以使用
启用剔除gl.enable(gl.CULL_FACE);
如果剔除,您可以选择面向WebGL的剔除。默认情况下,背面三角形是在屏幕空间中顶点按顺时针顺序排列的三角形。对于从模型内部查看时大多数3D模型。要剔除那些面向后方的三角形,您可以使用
gl.cullFace(gl.BACK);
或者你可以告诉WebGL用前面的三角形剔除。
gl.cullFace(gl.FRONT);
答案 2 :(得分:0)
根据您使用的框架,您可能会使用以下内容:
Doubleside
”属性作为对象three.sphere.translate