三维引擎导入obj模型全黑总结

简介: 三维引擎导入obj模型全黑总结

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


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


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 也是文本文件,直接用文本编辑器可以打开查看:


微信图片_20220425141425.pngimage.png


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


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


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


微信图片_20220425141428.pngimage.png


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


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


微信图片_20220425141431.pngimage.png


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


导入的场景没有设置灯光


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


结语


上一张修改后的效果图


微信图片_20220425141404.pngimage.png

相关文章
|
9月前
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
172 0
|
存储 缓存 定位技术
ArcGIS Pro栅格数据批量预处理工具
ArcGIS Pro栅格数据批量预处理工具
589 0
|
存储
ArcGIS:模型构建器内变量的数据类型中栅格图层和栅格数据集的区别
ArcGIS:模型构建器内变量的数据类型中栅格图层和栅格数据集的区别
127 0
|
9月前
|
编解码 定位技术
Google Earth Engine谷歌地球引擎GEE图层投影信息与参考坐标系及其空间转换参数获取
Google Earth Engine谷歌地球引擎GEE图层投影信息与参考坐标系及其空间转换参数获取
174 1
|
9月前
|
存储 数据可视化 数据管理
Google Earth Engine谷歌地球引擎GEE外部栅格矢量数据导入管理与下载及数据与代码共享
Google Earth Engine谷歌地球引擎GEE外部栅格矢量数据导入管理与下载及数据与代码共享
195 1
|
9月前
|
定位技术 Python
ArcGIS中ArcMap通过模型构建器ModelBuilder导出地理与投影坐标系转换Python代码的方法
ArcGIS中ArcMap通过模型构建器ModelBuilder导出地理与投影坐标系转换Python代码的方法
148 2
|
9月前
|
存储 数据可视化 定位技术
Google Earth Engine谷歌地球引擎GEE栅格数据图层可视化设置代码嵌入
Google Earth Engine谷歌地球引擎GEE栅格数据图层可视化设置代码嵌入
188 1
|
9月前
|
Serverless 定位技术 C++
R语言raster包批量读取单一或大量栅格图像
R语言raster包批量读取单一或大量栅格图像
175 1
|
9月前
|
存储 数据格式 Python
Python中arcpy栅格创建与遥感影像多景数据批量拼接Mosaic
Python中arcpy栅格创建与遥感影像多景数据批量拼接Mosaic
133 1
|
9月前
|
编解码 定位技术 Python
Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置
Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置
244 1

热门文章

最新文章