如何解决.obj纹理和颜色未在Three.js中显示
由于某种原因,当我在.obj和.mtl中将新模型添加到我的three.js代码中时,无论原始颜色或纹理如何,颜色都会变为白色。以下是负责Pig模型的代码片段:
// pigmodel
var objLoader = new OBJLoader();
var mtlLoader = new MTLLoader();
function loadpigmodel( x,y,z,ang,scale ) {
mtlLoader.setPath( './images/' );
mtlLoader.load( 'Pig1.mtl',function ( loadedMesh ) {
objLoader.setMaterials( loadedMesh );
objLoader.load( './images/Pig1.obj',function ( object ) {
switch ( scale ) {
case 'big':
object.scale.set( 100,100,100 );
break;
case 'small':
object.scale.set( 90,90,90 );
break;
default:
}
上面的代码模拟了带有一些堆肥箱的猪圈。如您所见,代码中显示的猪是白色的,即使它应该是粉红色的。篱笆也应具有木质纹理,但也应是白色。pig model image
我们怀疑变成白色的东西的mtl文件有问题。 hyperlink中包含完整的代码和mtl文件。
解决方法
在Pig1.obj
中,您有usemtl Pig1
(使用物料Pig1),它假定newmtl Pig1
中某处存在Pig1.mtl
(新物料Pig1),但是当您检查文件,没有这样的材料,只有newmtl pigskin
解决方案:
- 打开
Pig1.mtl
- 将
newmtl pigskin
更改为newmtl Pig1
或者在您的obj文件中将usemtl更改为pigskin,以使您更快乐。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。