基于全景照片和场景模型计算导出纹理贴图

Posted lovebay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于全景照片和场景模型计算导出纹理贴图相关的知识,希望对你有一定的参考价值。

基于全景照片和场景模型计算导出纹理贴图

  首先,假设全景的位姿是已知,一般可以通过传感器测量或者相关标定方法计算得到;另外,还假设相机中心与模型坐标中心重合(只有这样才能将全景和模型映射到标准球上);这里重点介绍如何基于全景照片和场景模型(.obj)计算导出纹理贴图(.png)。主要用到一种球面映射的思想,具体实现如下:

一、实现思路

  1、全景照片标准化,扩大填充为2:1大小的全景照片,如果已经是2:1的全景无需这种扩充变换。

  2、标准全景照片映射到标准球面上。(标准球是半径为1m的空间球体)

  3、场景模型映射到标准球面上。

  4、场景模型的分割以及分割线计算,一般曲面分割的较小块,平面分割为较大块。

  5、基于分割块计算球面上对应的全景照片的区域,并将该局部全景数据拾取出,copy到纹理照片(png)中,计算顶点在纹理照片中的坐标。即为纹理坐标。

  6、遍历所有分割块,重复第五步,知道分割块的纹理计算完毕为止。

  7、导出obj格式(包含顶点坐标、纹理坐标、法线、面),纹理照片。( 一般为obj+mtl+png照片)

二、实现代码(略)

三、效果

技术图片

球映射

 

技术图片

 纹理区域计算

 

 

 

 

 

 

 

以上是关于基于全景照片和场景模型计算导出纹理贴图的主要内容,如果未能解决你的问题,请参考以下文章

使用vue学习three.js之加载和使用纹理-使用CubeCamera创建反光效果,动态环境贴图实现,立方体全景贴图

关于多站点全景纹理贴图问题

ThreeJS——创建纹理贴图

导出只有一个贴图纹理的 FBX 文件

计算机图形学基于WebGL的纹理贴图

(四)Unity纹理、贴图和材质