Как назначить текстуру для загруженного файла OBJ в java3d - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть Java-приложение 3D, и в этом приложении я загружаю OBJ-файл в мою сцену. Как я могу назначить текстуру (файл jpg) этой модели? Чтобы быть более точным, когда я хочу присвоить текстуру примитивному объекту Java (например, сфере), я использую следующее:

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

Однако при загрузке и добавлении файла obj я делаю:

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

А во втором случае я не могу найти способ назначения текстуры. Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 19 марта 2013

Вы должны будете использовать программу, которую вы создали в файле 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.setAppearance(ap);
0 голосов
/ 12 сентября 2011

IIRC вам нужно получить узел Shape3D, к которому вы хотите применить текстуру (вызов setAppearance(...)) из вашей группы ветвей, например, используя getChild(index) и т. д. Обратите внимание, что вы можете рекурсивно выполнять итерации по дочерним элементам, поскольку полученная вами группа ветвей может фактически содержать другие группы, поэтому вы можете найти фигуры ниже по дереву групп.

В качестве альтернативы вы можете добавить объект AlternateAppearance в группу филиалов.

...