【渲染管线】关于三角面正反和剔除cull

webgl中关于剔除cull

是否开启剔除
gl.enable(gl.CULL_FACE);/gl.disable(gl.CULL_FACE);

设置剔除哪一面
gl.cullFace,gl.cullFace()是WebGL中的一个方法,用于开启或关闭多边形面剔除(polygon face culling)。多边形面剔除是一种优化技术,用于排除不可见的几何体,从而提高渲染性能。
多边形面剔除根据多边形的绘制方向来判断其是正面还是背面。在OpenGL和WebGL中,默认情况下,正面是指逆时针绘制的面,背面是指顺时针绘制的面。通过开启多边形面剔除,我们可以剔除掉背面多边形,只绘制正面多边形,从而减少不必要的绘制开销。

gl.cullFace()方法接受一个参数,用于指定要剔除的多边形面。可以设置为以下预定义常量之一:

gl.FRONT: 剔除正面多边形。
gl.BACK: 剔除背面多边形。
gl.FRONT_AND_BACK: 剔除正面和背面多边形。

gl.frontFace用于设置多边形的正面方向。多边形的正面方向是指多边形的正面绘制方向,它决定了多边形的正面和背面的判断方式。

在OpenGL和WebGL中,默认情况下,正面是指逆时针绘制的面,背面是指顺时针绘制的面。通过调用gl.frontFace()方法,我们可以改变多边形的正面方向,以适应不同的场景需求。

gl.frontFace()方法接受一个参数,用于指定多边形的正面方向。可以设置为以下预定义常量之一:

gl.CCW:逆时针,即默认的正面方向。
gl.CW:顺时针,即将逆时针定义为背面,顺时针定义为正面。

unity中的剔除

是在ShaderLab中有Blend
可选参数有Back、Front、Off,决定剔除背面、正面,或者都不剔除

发现unity中默认正面是顶点顺时针,和webgl中正好相反,目前没有发现可以修改的地方,有朋友知道可以告知下哈

猜你喜欢

转载自blog.csdn.net/qq_22849251/article/details/129756242