java - 如何将纹理分配给 java3d 中加载的 OBJ 文件

标签 java 3d textures java-3d

我有一个 java 3d 应用程序,该应用程序将 OBJ 文件加载到我的场景中。如何为该模型分配纹理(jpg 文件)? 更准确地说,当我想将纹理分配给原始 java 对象(例如球体)时,我使用以下内容:

Sphere sphere = new Sphere(Radius, Primflags, Appearance);

但是,当加载和添加 obj 文件时,我会这样做:

Scene scene = getSceneFromFile("OBJ file");
myBranchGroup = scene.getSceneGroup();

在第二种情况下,我找不到分配纹理的方法。我该怎么做?

最佳答案

您必须使用制作 obj 文件的程序或者可以加载该文件。绘制它,然后导出该文件。然后将此代码添加到任何方法之外

static TextureLoader loader = new TextureLoader("C:\\Users\\Sawyera\\Desktop\\Paint Layer 1.jpg",
"RGP", new Container());
static Texture texture = loader.getTexture();

然后

texture.setBoundaryModeS(Texture.WRAP);
texture.setBoundaryModeT(Texture.WRAP);
texture.setBoundaryColor(new Color4f(0.0f, 1.0f, 0.0f, 0.0f));
TextureAttributes texAttr = new TextureAttributes();
texAttr.setTextureMode(TextureAttributes.MODULATE);
Appearance ap = new Appearance();
ap.setTexture(texture);
ap.setTextureAttributes(texAttr);
 int primflags = Primitive.GENERATE_NORMALS
    + Primitive.GENERATE_TEXTURE_COORDS;
    ObjectFile loader = new ObjectFile(ObjectFile.RESIZE);

然后在将模型分配给场景之前添加此内容。假设3D模型变量称为model

model.setAppearance(ap);

关于java - 如何将纹理分配给 java3d 中加载的 OBJ 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388530/

相关文章:

opengl - 具有养育问题的骨骼动画

opengl - 从 2D 投影映射回 3D 点云

android - 哪些 Android 设备不支持 draw_texture?

java - 在 Android 中删除或清除 SimpleAdapter 中的内容?

javascript - Three.js 使用鼠标绘制3D矩形

java - 如何避免 ExecutorService 覆盖 Runnable 的安全主体

java - libGDX - 在图像周围制作边框

Java 用纹理绘制线条

java - 拍照时如何开启原生编辑图片?

java - jackson 不穿 Jersey 工作