美文网首页
THREEJS关于多顶点坐标,非单一材质的处理方式

THREEJS关于多顶点坐标,非单一材质的处理方式

作者: aibinMr | 来源:发表于2020-03-02 14:55 被阅读0次

其实学习webgl后不就我就有个疑问,当一个顶点数非常多,颜色却是由几个单色组成的模型,应该如何处理数据呢。无疑用索引或者数组的方式都会造成很多冗余的数据,这时如何处理呢,知道我看到下面threejs的做法时候我才恍然大悟,threejs先判断模型是否包含多个材质,如果包含多个材质就按照材质来拆分顶点索引,把每个材质拆分成小的模型对象逐一渲染,这样数据就不会过多重复冗余。下面时具体的代码,版本r114

//WebGLRenderer.js 
if ( Array.isArray( material ) ) {

    var groups = geometry.groups;

    for ( var i = 0, l = groups.length; i < l; i ++ ) {

        var group = groups[ i ];
        var groupMaterial = material[ group.materialIndex ];

        if ( groupMaterial && groupMaterial.visible ) {

            currentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector3.z, group );

        }

    }

} else if ( material.visible ) {

    currentRenderList.push( object, geometry, material, groupOrder, _vector3.z, null );

}

相关文章

网友评论

      本文标题:THREEJS关于多顶点坐标,非单一材质的处理方式

      本文链接:https://www.haomeiwen.com/subject/cnbmkhtx.html