0

我目前正在尝试将 2D 坐标转换为 3D 坐标。基本上,我有 2D 纹理,我希望能够在 3D 对象上显示,并在我指向的地方应用相同的纹理。

假设我拥有世界的 2D 纹理。我希望能够知道,给定纹理上的 U、V 坐标,以获得应用了相同纹理的球体上的 X、Y、Z 坐标。

我正在使用 J3D,现在我正在使用搅拌机并找出解决此问题的最佳方法。

任何想法?

编辑

这是我要实现的目标的图形化想法:在此处输入图像描述

您可以获得 2D 纹理上某个点的 (X,Y) 坐标,并且由于某些功能,如果将其放置在 3D 对象上(我定义了映射和对象本身),您可以获取并可视化它的位置。

4

1 回答 1

0

我不是 J3D 用户,以前从未使用过它,我在 Blender 和 OpenGL 中使用过这些,所以我想我可以尝试这个问题。

我认为您在理解 3D 纹理时遇到了一些麻烦。您不会从 UV 坐标生成顶点,您将使用顶点上的 UV 坐标(我称之为texCoords清晰)将纹理应用到它们。如果你不知道如何在搅拌机中进行 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();

然后将其设置为appearance使用它的setTexture()方法。就是这样。

希望这可以帮助。

于 2014-03-27T13:41:47.070 回答