我想问一下Unity中的纹理。
我是Unity的新手,我需要你的帮助。我有一个想法,为我的3D重建网格制作自定义查看器。因此,对于不熟悉它的人来说,它基本上是一种使用称为运动结构的方法将2D照片序列转换为3D网格的方法。因此,SfM的输出是网格和摄像机数量。我的想法是将网格和摄像头(作为投影仪)加载到Unity。接下来,我希望如果单击与某个摄像机相关的按钮,则该摄像机看到的图像将投影到网格中。
example of reconstructed 3D model
相机看到的示例图片:
example image that seen by the camera
所以,我想问的问题是,哪种方法最好将图像作为纹理放到网格中?我应该为每个图像制作UV贴图,然后打开和关闭它,还是只使用投影仪将图像投影到每个投影仪的网格中?但我认为,如果我使用投影仪,纹理分辨率必须是方形的。由于我的图像不是正方形,所以不可能,不是吗?或者你们中有谁对如何做有不同的想法或建议?
非常感谢。
答案 0 :(得分:0)
在您的重建模型中,您的网格是跟踪点云而不是单个网格的摄像机的细分。
您需要每个点的确切信息,这是您使用UVmap获得的信息。
Proyection图像不使用此信息,您可以获得良好的效果,但需要移动,缩放,旋转到一个好位置。但是,如果你在图像中变形以适应原生项目(球形,盒形,圆柱形等)中的模型形状,你就不会得到精确的形状,只有近似。 在proyection中,如果在3d空间中移动模型,则需要重新调整纹理设置。
使用uvmap,您拥有"皮肤"你的模特 如果你做了一个漂亮的展开,你会得到你的模型的形状,具有非常低的变形,接近确切的形状。 您可以在3d空间中移动模型,而无需修改纹理上的任何设置。
另一个优点是您可以直接从照片中获取UVmap及其颜色信息。不需要另外一步,使得纹理纹理不能获得更好的效果。