Three.js ребенок игнорирует родительское преобразование

1

Скажем, у меня есть родительский и n дочерние объекты родителя в сцене.

Изменение: добавлен код для создания сетки (при условии, что у меня есть базовая сцена и настройка камеры)

создание родительской группы:

var geometry = new THREE.PlaneGeometry( 0, 0 );
var surface = new THREE.Group();
surface.geometry = geometry;

Детская сетка:

surface.add(new Sprite());
scene.add(surface);

Есть ли способ, которым я могу игнорировать матрицу родительского преобразования только для дочерних элементов (но сохранить его преобразование целым в качестве родителя)?

Я знаю, что matrixAutoUpdate = false; позволяет мне обновить матрицу преобразования дочерних элементов вручную, но она по-прежнему применяет матрицу родительского преобразования.

Я хочу полностью игнорировать его для детей, но все же могу сохранить его мировое преобразование и извлечь его значения поворота, трансляции и масштабирования.

  • 0
    Можете ли вы поделиться своим кодом для сетки, созданной для лучшего ответа.
  • 0
    Да, я разместил код создания сетки.
Показать ещё 4 комментария
Теги:
matrix
three.js
transform

1 ответ

0

В смысле, в группе есть только один объект, поэтому группа будет вести себя как единая сущность. И вы не можете связать геометрию с группой, поэтому мое предложение добавит плоскость в виде сетки, а затем сделает все, что вы захотите.

Поэтому обновленный код должен выглядеть следующим образом:

var geometry = new THREE.PlaneGeometry( 0, 0 );
var material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
var plane = new THREE.Mesh( geometry, material );
var surface = new THREE.Group();
surface.add(plane);
surface.add(new Sprite());
scene.add(surface);
  • 0
    Это не отвечает на вопрос. Независимо от того, группа это или нет, я хочу сохранить матрицу преобразования родительского элемента без изменений, но игнорировать матрицу преобразования родительского элемента для каждого дочернего элемента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню