[英]J3D - How to use a UV mapping of an object to convert 2D coordinates to 3D ones
我目前正在尝试将2D坐标转换为3D坐标。 基本上,我具有2D纹理,并且我希望能够在3D对象上显示,并且将相同的纹理应用于我所指向的位置。
假设我拥有世界的2D纹理。 我想要知道的是,给定纹理上的U,V坐标,从而获得具有相同纹理的球体上的X,Y,Z坐标。
我正在使用J3D,现在我正在使用Blender,并找出解决此问题的最佳方法。
任何想法?
编辑 :
这是我要实现的图形化想法:
您可以获取2D纹理上的点的(X,Y)坐标,并且借助某些功能,可以获取并可视化将其放置在3D对象上的位置(我同时定义了贴图和对象本身)。
我不是J3D用户,我以前从未使用过它,而是在Blender和OpenGL中使用过它们,所以我想我可以尝试这个问题。
我认为您在理解3D纹理时遇到了一些麻烦。 您不会从UV坐标生成顶点,而是将在顶点上使用UV坐标(为清晰起见,我将其称为texCoords
)将纹理应用到它们。 如果您不知道如何在Blender中进行UV贴图,则可以在此处观看我的视频。
然后,您将按照本教程中的说明执行一些步骤。
首先,您需要创建一个多边形。 希望您已经知道了,在这里跳过。 然后像这样将纹理坐标设置到该多边形上。
polygon1.setTextureCoordinate (0, new Point2f(u1, v1));
polygon1.setTextureCoordinate (1, new Point2f(u2, v2));
polygon1.setTextureCoordinate (2, new Point2f(u3, v3));
polygon1.setTextureCoordinate (3, new Point2f(u4, v4));
假设坐标在UV中(有些也称为ST)。
然后,使用TextureLoader
类加载纹理图像。
Texture texImage = new TextureLoader("brick.jpg", this).getTexture();
然后使用它的setTexture()
方法在appearance
进行设置。 就是这样。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.