Three.js: Показать мировые координатные оси в углу сцены

Это, вероятно, очень простая проблема, но я не имеюпока не нашел решения и оноя не давал мне покоя Я'Хотелось бы показывать стрелки, указывающие направления мировых координат (x, y, z) в правом нижнем углу камеры, как это делается в Maya, так что при вращении камеры вокруг объекта или перемещении по сцене вы можете до сих пор определяют направления мировых координат. Я'Мы пытались сделать это, используя два разных подхода, и ни один из них не работал до сих пор.

У меня есть объект с тремя стрелками, как дети, использующиеTHREE.ArrowHelper класс, мыпозвонюXYZ на момент. Первый подход заключается в том, чтобы сделатьXYZ ребенок сцены и предоставить ему положение, рассчитанное по камере 's текущее положение плюс смещение в направлении, на которое указывает камера, и отрегулируйте его так, чтобы оно отображалось в углу, который я хочу видеть, а не в центре экрана. Я'у нас почти получилось, так как стрелки поддерживают правильное вращение, но положение немного забавное, и я перестал идти по этому маршруту, потому что это было действительнонервный» при перемещении камеры. Я'Я не уверен, была ли это проблема с производительностью или что-то еще.

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

м в настоящее время с помощью кодаXYZ.matrix.extractRotation( camera.matrixWorldInverse ); чтобы дать мне правильную ориентацию дляXYZ, но это's позиционирование выключено. Если я используюXYZ.matrixWorld.extractRotation( camera.matrixWorldInverse ); тогда позиция остается в порядке (привязана к камере), но ориентация нет изменить.

Если у кого-то есть быстрый взлом, чтобы заставить это работатьБуду очень признателен. Если ты'у нас есть лучший метод, чем тот,яЯ буду продолжать, это также будет полезно.

** - РЕДАКТИРОВАТЬ - ** Следует, вероятно, упомянуть, что вы можете найти рабочую версию здесь - (https://googledrive.com/host/0B45QP71QXoR0Mm9Mbkp3WGI1Qkk/) ЯЯ храню свой код на Google Диске, но работаю локально, используя wamp и псевдонимы, что означает, что любые изменения, которые я делаю локально, отражаются онлайн, как только Google Drive синхронизируется. И.Е. это может быть сломано, когда вы смотрите.

Ответы на вопрос(3)

Ваш ответ на вопрос