最近有客户试用我们的三维平台,在导入模型的时候,会出现模型全黑和不可见的情况。本文说下全黑的情况。

经过测试,发现可能有如下几种情况。

obj 模型没有法线向量

如果obj模型导出的时候没有导出法线向量,会导致模型不能接受光照,从而导出的模型是全黑的。 此种情况下,高光反射也没有。

解决方案上,一种是让建模人员重新导出模型,导出的时候勾选上导出法线向量。

另外也可以从程序上兼容一下,判断模型是否有法线向量,如果没有,程序自己计算法线向量。
以threejs为例,调用computeVertexNormals计算法线向量代码如下:

 if(child.geometry && !child.geometry.hasAttribute('normal')) {child.geometry.computeVertexNormals();}

PS:如何判断模型是否有法线向量,只需要用文本编辑器打开*.obj文件,查看是否有“vn” 标记

mtl文件中设置模型颜色为黑色

一些建模人员在导出mtl文件时候, 参数Kd 是0 0 0, Kd参数会被解析成模型材质的color属性,既颜色。
此种情况下,虽然模型是全黑,但是高光的颜色是有的,也就是在特定的角度可以看到高光:

所以解决的 办法就是把Kd 0 0 0的设置全部去掉,或者建模师可以重新导出模型文件,让Kd 变成一个非全0的值。

mtl 也是文本文件,直接用文本编辑器可以打开查看:

PS mtl中 Kd 代表漫反射的颜色, Ks代表高光反射的颜色。

mtl文件中贴图引用了本地路径

有时候建模人员在导出mtl文件的时候,里面的贴图路径是本地的绝对路径,如下图所示:

此时导入的模型因为找不到贴图,而变成了黑色。此种情况下,虽然模型是全黑,但是高光的颜色是有的,也就是在特定的角度可以看到高光,同上。

解决方法就是把绝对路径改成相对路径,如下图:

可以手动编辑mtl文件修改,也可以建模人员导出的时候设置。

导入的场景没有设置灯光

还有一种情况,模型都没有问题,但是由于场景没有设置任何灯光,导致模型看不见,此种情况需要程序上添加灯光即可。

#结语

上一张修改后的效果图

如果对可视化感兴趣,可以和我交流,微信541002349。 关注公号“ITMan彪叔” 可以及时收到更多有价值的文章。

三维引擎导入obj模型全黑总结相关推荐

  1. 【Three.js】解决使用Three.js导入obj模型不可见问题详细记录

    问题描述: 近期在做三维重建项目,需要把最终生成的obj文件导入到web端浏览,这里使用的是three.js(另一个是babylon.js),但博主发现导入meshlab生成的obj时无法显示模型,但 ...

  2. 解决导入obj模型时出现模型镂空的问题

    解决导入obj模型时出现模型镂空的问题 这实际上是因为导入的模型采用四边形而非三角形的面片,导致splish采样不全. 使用houdini的divide节点就能将任意面片转化为三角形面片.从而解决问题 ...

  3. Java 3D导入obj模型后颜色显示 出错显示白色,或者笔记本电脑显示彩色,但是台式机仍为白色

    Java 3D导入obj模型后颜色显示 出错显示白色,或者笔记本电脑显示彩色,但是台式机仍为白色 代码问题 首先,确保代码中编辑了给模型导入颜色 //function:读取.obj文件,并将其添加到S ...

  4. 解决在OpenGL中导入.obj模型所遇一些问题的方法

    解决在OpenGL中导入.obj模型所遇一些问题的方法 相对路径格式 "/"与"\" 相对路径起始 导入模型的限制 最近在学习 LearnOpenGL CN,学 ...

  5. zbrush导入obj模型不显示_ZBrush中如何导入和导出OBJ文件—ZBrush教程

    原标题:ZBrush中如何导入和导出OBJ文件-ZBrush教程 ZBrush中如何导入和导出OBJ文件 ZBrush软件中对于文件的导出与储存格式是多样的.OBJ格式是如何导入和导出ZBrush的, ...

  6. 使用three.js导入OBJ模型,变更、修改成其他OBJ模型和模型不可见原因说明

    最近的一个项目需要在HTML中对OBJ模型进行大量的变更,修改为其他模型.基于这个需求下,这里有一种解决方案. 另外在各大论坛上的相关博客基本都是那几种导入obj例子····并没有对后续操作进行说明. ...

  7. ArcGIS Pro2.7 导入obj模型后贴图丢失问题

    .mtl文件已经修改贴图为相对路径,import模型后仍然丢失贴图. 可能是模型中文导致的.测试,mtl,obj及obj内的mtl都修改为英文后,可以正常导入贴图. 建议:在3dsMax中建模的时候模 ...

  8. zbrush导入obj模型不显示_zbrush软件怎么导入obj格式文件?Zbrush2018教程在哪可以看?...

    回答: 关于ZBrush的学习,我大致整理了一些经常会被问到的问题和我的见解,可以参考一下. Q1:次世代ZB到底难不难?因为技术要求的全面升级,次世代确实不简单,但是新手能不能学习次世代呢? A1: ...

  9. 3Ds Max 精模obj模型导入ArcGIS Pro

    一.检查模型贴图路径 首先找到文件夹下mtl文件,检查贴图路径是不是都是相对路径,如果是绝对路径需要修改,例如: 批量查找替换,将贴图路径都修改为相对路径. 如果修改为相对路径后还是出现丢贴图的问题, ...

  10. threeJs导入3D皮卡丘.obj模型,使用.jpg贴图,实现缩放旋转查看功能

    先来看下最终的效果. 导入obj模型 如果仅使用Mesh几何而不加载任何外部资源,则网页应直接在文件系统中运行,只需双击HTML文件打开即可以预览.而由于3D模型是从外部加载进来的,由于浏览器的原始策 ...

最新文章

  1. 大快搜索城市运河大数据政务管理平台案例解读
  2. android常用代码
  3. 160 - 4 ajj.1
  4. 武汉理工大学计算机学院2018复试,武汉理工大学2018年自主招生复试揭秘
  5. Java:下拉列表绑定后台数据
  6. 从虚拟化到软件定义--重新定义IT产业格局
  7. opencv 指定分辨率_使用opencv拉伸图像扩大分辨率示例
  8. 某医院病房计算机管理数据库,毕业论文_数据库某医院病房计算机系统.doc
  9. STM32的选型参考
  10. 对象转为json形式
  11. html里怎么画斜线表头,excel里斜线表头怎么做
  12. vue-awsome-swiper安装和css引入问题
  13. ios个人小游戏开发者如何做到年收益过百万?
  14. 超链接 与众不同的鼠标滑过超链接下划线动画效果
  15. python识别ppt文件格式 ——(专栏:基于python编写简单office阅卷程序③)
  16. css3复习P2(文本属性+列表属性+其他样式)
  17. hash碰撞处理方法
  18. pytorch-lightning踩坑记录
  19. 微信公众平台安全模式消息体签名及加解密PHP代码示例
  20. ORA-00600:[qctcte1]内部错误一例

热门文章

  1. 偏最小二乘法PLS(matlab自带代码)
  2. chrome插件开发基础以及如何防止劫持
  3. 英语口语 MP3 下载网址
  4. word转化为html操作步骤
  5. linux获取电信超级密码吗,最新中国电信光猫超级密码获取方法
  6. 教你如何轻松玩转自媒体淘客,赚大钱!
  7. JanusGraph安装和配置教程
  8. pycharm专业版的破解
  9. fgo服务器维护更新,fgo命运冠位指定活动维护公告 12月2日更新
  10. markdown下载以及安装详情