问题描述:当前threejs是92版本 但是当前版本还没有能够直接加载带贴图文件的drc格式的loader;

解决办法:先加载mtl文件将obj文件分解(按照mtl文件内材质贴图信息进行分解)再将分解的obj文件转成drc全部加载一遍就能解决贴图的办法 ;

代码:

 THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
var modelObject = new THREE.Object3D();
var loadNum = 0;
var mtlLoader = new THREE.MTLLoader();
// new THREE.MTLLoader()
mtlLoader.setPath( '__PUBLIC__/wap/dracoModel/0518xialian/' );
mtlLoader.load( 'cs.mtl', function ( materials ) {
materials.preload();
new THREE.OBJLoader()
.setMaterials( materials )
.setPath( '__PUBLIC__/wap/dracoModel/0518xialian/' )
.load( 'cs.obj', function ( object ) { // object.position.x = -0.55;
// object.position.y = -0;
// object.position.z = 1.1;
object.scale.x = 0.0005;
object.scale.y = 0.0005;
object.scale.z = 0.0005;
scene.add( object ); }, onProgress, onError ); // dracoLoader.load( '__PUBLIC__/wap/images/bunny.drc', function ( geometry ) { // dracoLoader.load( '__PUBLIC__/wap/dracoModel/9015/1.drc', function ( geometry ) {
// geometry.computeVertexNormals();
// var material = new THREE.MeshStandardMaterial( { vertexColors: THREE.VertexColors } );
// var mesh = new THREE.Mesh( geometry, material );
// mesh.castShadow = true;
// mesh.receiveShadow = true;
//// mesh.position.x = -10;
//// mesh.position.y = -5;
//// mesh.position.z = -10;
// mesh.scale.x = 0.005;
// mesh.scale.y = 0.005;
// mesh.scale.z = 0.005;
// scene.add( mesh );
//
// // Release decoder resources.
// THREE.DRACOLoader.releaseDecoderModule();
//
// } ); //将素材加载到场景中回掉函数
var loaderCallback = function(geometry) { var material = null;
// console.log(loadNum);
if(loadNum === drcNameArray.length-1){
scene.add(modelObject);
}else{
geometry.computeVertexNormals();
var midName = drcNameArray[loadNum].split('.')[1];
// midName = midName.slice(0,2);
material = materials.materials[midName];
console.log(midName);
// console.log(drcNameArray[loadNum].split('.')[1]);
// console.log(materials.materials);
var mesh = new THREE.Mesh( geometry, material );
mesh.castShadow = true;
mesh.receiveShadow = true;
mesh.scale.x = 0.0003;
mesh.scale.y = 0.0003;
mesh.scale.z = 0.0003;
// // Release decoder resources.
// THREE.DRACOLoader.releaseDecoderModule();
modelObject.add(mesh);
loadNum++;
// console.log(loadNum)
dracoLoader.load("__PUBLIC__/wap/dracoModel/hongpei01/drc/" + [drcNameArray[loadNum]],loaderCallback,function(){});
}
// item.halfSize = getObjectHalfSize(modelObject); };
// dracoLoader.load("__PUBLIC__/wap/dracoModel/hongpei01/drc/" + drcNameArray[0],loaderCallback,function(){});
//将素材加载到场景中回掉函数end
} );

描述:目前我们是这么解决的;

最新文章

  1. [转]IntelliJ IDEA 使用心得与常用快捷键
  2. 理解Bitcode
  3. 简单理解在Mac OS X上运行ASP.NET程序
  4. Oracle递归查询
  5. 对SharePreference的封装
  6. POJ-1273 Drainage Ditches 最大流Dinic
  7. JAVA题目
  8. 如何将开源项目部分代码作为private放在github上?
  9. (转)Spark 算子系列文章
  10. java中文件操作
  11. Android名词解释
  12. localStorage和sessionStorage区别(包括同源的定义)
  13. Laravel 入口文件解读及生命周期
  14. linux shell 变量子串
  15. git批量恢复所有删除的文件
  16. makefile中 $@, $^, $<, $?含义
  17. python第三十课--异常(异常对象传递过程)
  18. javascript之构造函数的继承(引用网络)
  19. image的关闭和开启
  20. jquery promise

热门文章

  1. 如何安装和配置RabbitMQ(转载)
  2. 转: 日期格式参考extjs api文档中的Date类型
  3. LeetCode OJ 80. Remove Duplicates from Sorted Array II
  4. 217/219. Contains Duplicate /Contains Duplicate II
  5. C#调用Delphi接口(ITest = interface)
  6. 第五次Scrum冲刺
  7. Java解决小孩围圈问题
  8. 我理解的BFC(块级格式化上下文)
  9. linux下WIFI的AP搜索、连接方法
  10. nltk的使用