繁体   English   中英

J3D-如何使用对象的UV映射将2D坐标转换为3D坐标

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM