提交 c6b1bd8c 编写于 作者: J Jeff Terrace

Fix collada loader to load faces with multiple materials properly, setting materialIndex

上级 bd2f75b4
......@@ -594,6 +594,7 @@ THREE.ColladaLoader = function () {
var instance_materials = instance_geometry.instance_material;
var geometry = geometries[instance_geometry.url];
var used_materials = {};
var used_materials_array = [];
var num_materials = 0;
var first_material;
......@@ -619,7 +620,8 @@ THREE.ColladaLoader = function () {
var shader = effects[effect_id].shader;
shader.material.opacity = !shader.material.opacity ? 1 : shader.material.opacity;
used_materials[inst_material.symbol] = shader.material;
used_materials[inst_material.symbol] = num_materials;
used_materials_array.push(shader.material)
first_material = shader.material;
num_materials ++;
......@@ -634,11 +636,12 @@ THREE.ColladaLoader = function () {
if ( num_materials > 1 ) {
material = new THREE.MeshFaceMaterial();
geom.materials = used_materials_array;
for ( j = 0; j < geom.faces.length; j ++ ) {
var face = geom.faces[ j ];
face.materials = [ used_materials[ face.daeMaterial ] ];
face.materialIndex = used_materials[ face.daeMaterial ]
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册