3d 正交图像的自动纹理映射

3d 正交图像的自动纹理映射,3d,textures,texture-mapping,3d,Textures,Texture Mapping,所以我在我的3d程序中对这个物体进行了建模,我在现实世界中拍摄了这些物体的照片,从各个侧面,以及俯视图和俯视图,使用绿色屏幕,使用色度键控技术进行分割 在没有人为干预的情况下,如何将这些正交图片应用于对象?也就是说,我不想自己使用photoshop构建纹理贴图,而是使用图片作为输入,让我的程序为我处理贴图 有可能吗?我知道重叠区域会有接缝和空白,但如果我设法做到第一个,这是我以后必须解决的第二个问题 第部分:P 我考虑了立方体贴图,但是我的对象必须是反射的和镜面反射的,有点像金属,旋转对象时反射

所以我在我的3d程序中对这个物体进行了建模,我在现实世界中拍摄了这些物体的照片,从各个侧面,以及俯视图和俯视图,使用绿色屏幕,使用色度键控技术进行分割

在没有人为干预的情况下,如何将这些正交图片应用于对象?也就是说,我不想自己使用photoshop构建纹理贴图,而是使用图片作为输入,让我的程序为我处理贴图

有可能吗?我知道重叠区域会有接缝和空白,但如果我设法做到第一个,这是我以后必须解决的第二个问题 第部分:P

我考虑了立方体贴图,但是我的对象必须是反射的和镜面反射的,有点像金属,旋转对象时反射会发生变化


我还读过关于将网格划分成许多小三角形,然后将每个三角形着色为相应图片中的投影颜色,但是如何找出照片中的相应像素?

我相信我可以回答部分问题。将网格划分为小三角形后,需要计算该小三角形在矩形上的投影,该矩形是与照片匹配的视图。因此,您需要:

  • 摄像机的位置和方向
  • 对象的位置和方向
  • 对于每个三角形,根据上述坐标计算透视投影
  • 作为在软件中计算这些点的替代方法,也许您可以使用特殊的颜色映射,其中每个三角形都有特定的颜色,使用正确的选项(无混合)在opengl中进行投影,然后从opengl中获取位图。然后位图中的颜色将映射到一个三角形,这样您就可以将图片中的位置映射到各个三角形

    我意识到这只是一个部分答案,但希望它是有用的

    --编辑-- OpenGL可以用screenshot类自己截图。如果您将其设置为无照明,只需使用glColor3f并将每个小三角形设置为自己的颜色,那么屏幕截图将是3D对象在相机上的投影。网格中的每个三角形都使用单独的不同颜色。然后在屏幕截图中查找该颜色

    因此: 1.照明关闭(可调整颜色) 2.对于每个三角形网格: -将此三角形设置为任意但唯一的颜色 3.截图 4.对于每个三角形网格: -在屏幕截图中找到其颜色的x,y坐标。 -使用x,y坐标查看照片并选择网格的颜色 -将三角形的颜色设置为您找到的颜色


    我不知道这是否足够有效-显然这取决于网格的大小。如果它太小,一些颜色将不会显示在屏幕截图中。如果它太大,你不会找到单个像素的颜色,而是找到照片的一部分,因此你必须使用三角形的法向量将该面片转换为纹理以应用于该三角形。

    立方体贴图和镜面反射/反射是完全不同的概念。是的,我想这不是正确的表达方式,我的意思是,通过立方体映射,你会得到类似于物体上反射的东西,所以如果你不旋转立方体映射器本身,这个“反射”会随着物体的旋转而变化。也许我弄错了。我理解你的第一个解决方案,我猜是通过将三角形坐标乘以变换矩阵,这将是相机参数,对吗?你提出的第二个建议是我不太明白的,你能再详细一点吗?