据我所知,对于A-Frame的初学者来说,这似乎是一个常见的问题,但是我很难在这个模型中获得一个材料。我可以成功地获得模型,但它始终是灰色的,控制台告诉我:
“提供.MTL时,将忽略材料组件属性。”
我在Blender中使用一个简单的光泽材料制作了这个并将其导出为带有相对路径的.obj(这是推荐的是吗?)
我不熟悉.mtl或.obj文件但是我还需要做些什么让他们在A-Frame中工作?或者这是代码还是CORS的问题?
html
//for eg. data array may be
var data = [1,2,3,4];
data.forEach(function(item, index){
$('#img-thumb-id' + (index+1)).attr('src', item);
});
OBJ
//Get index of column by header text.
int GetColumnIndexByName(GridViewRow row, string headerText)
{
int columnIndex = 0;
foreach (DataControlFieldCell cell in row.Cells)
{
if(cell.ContainingField is TemplateField){
if(((TemplateField)cell.ContainingField).HeaderText.Equals(headerText))
{
break;
}
}
if(cell.ContainingField is BoundField){
if (((BoundField)cell.ContainingField).HeaderText.Equals(headerText))
{
break;
}
}
columnIndex++;
}
return columnIndex;
}
MTL:
<!DOCTYPE html>
<html>
<head>
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
</head>
<body>
<a-scene stats>
<a-assets>
<!--Not working-->
<a-asset-item src="meh.obj" id="meh"> </a-asset-item>
<a-asset-item src="meh.mtl" id="mat"> </a-asset-item>
</a-assets>
<a-obj-model src="#meh" mtl="#mat" position ="0 0 5"> </a-obj-model>
</a-scene>
</body>
</html>
感谢帮助:)
答案 0 :(得分:0)
three.js obj / mtl加载器不能很好地工作,Maya生成的MTL文件(甚至可能是搅拌器)对于在a-frame材料系统中实现的加载器是不可读的。报告了多个问题here或here。
正如我在其中一个链接中建议的那样,最简单的方法是将模型上传到clara.io,并下载三个JSON模型,因为它看起来非常好用。也许你可以试试Don McCurdy's loaders(虽然它们似乎更多的是几何,而不是材料),但似乎3D格式非常复杂。
因为你完全按照official docs的建议去做,所以我不会说你的代码有问题。