Три.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Три.

Сообщение Anonymous »

Я спросил на другом форуме, но я подумал, что хотел бы быть более ясным в своей проблеме. < /p>

Что мое намерение? Моя камера должна быть интерактивной с моим устройством Android, что означает, что я установил положение, динамически перемещая устройство. Эти векторы поступают из Slam-Algorithmn, названной прямой редкой одометрией, которая воссоздает положение камеры, я также могу вызвать эти значения JavaScript, используя предоставленную WebViewInterface от Android. Моя цель состоит в том, чтобы «ходить» по ящику динамически, не используя камеру. Моя цель состоит в том, чтобы разместить объект над объектом реального мира с тремя. Вся визуализация должна быть создана с помощью Three.js. < /P>

Что такое DSO? Это отправило мне матрицу преобразования 4x4 с текущей позой, которую я пытаюсь применить в положении камеры Three.js. Из -за сложности этого алгоритма давайте притворяемся, что это дает мне надлежащие значения (в метрах, но я также пытался умножить значения на 10 или 100, чтобы получить большие результаты, чем 0.xx). < /P>

Какова моя проблема?
. Коробка, кажется, не имеет абсолютной позиции, даже если значения, кажется, исправлены. Каждый раз, когда я размещаю коробку, она, кажется, движется в противоположном направлении. После многих настройки значений DSO я кристально ясно, что эта проблема происходит с Three.js.
Я также попытался применить матрицы сцены/камеры и/или использование коробки в детстве (из-за объекта-ирита), но коробка, похоже, не имеет абсолютной позиции внутри сцены. Также я не могу повернуть объект, который кажется реалистичным. < /P>

прилагается, вы найдете мой код, но p
аренда. Я использую динамически фиктивные значения в качестве замены для значений DSO. < /P>






// Var Init
var renderer, scene, camera, box, transformControl, orbitControl, geometry, material, poseMatrix;
var mPoints = [];
//Box coordinate
var xBCordinate, yBCordinate, zBCordinate, isScaled, posVec, startPosVec, lookPos, helper;
var process = false;
var scanActive = false;
var pointArr = [];

init();
animate();

function init() {

// renderer
renderer = new THREE.WebGLRenderer({canvas: document.getElementById("mCanvas"),
alpha: true});
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
renderer.setClearColor(0xffffff, 0);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// scene
scene = new THREE.Scene();

// camera
camera = new THREE.PerspectiveCamera(
45,
window.innerWidth / window.innerHeight,
0.1,
1000
);

camera.up.set(0, 0, 1); // Definition of coordinationsystem

// set initial scale position of camera
camera.position.x = 0;
camera.position.y = -0.5;
camera.position.z = 0.15;

scene.add(camera);

// set position to look at
camera.lookAt(0,2.5,-0.2);

// apply values
camera.updateMatrix();

// light
var light = new THREE.HemisphereLight( 0xeeeeee, 0x888888, 1 );
light.position.set( 0, -0.75, 2.5 );
scene.add(light);

placeBox();

}
function placeBox()
{

geometry = new THREE.BoxGeometry(0.5, 1, 0.5); //3,5,3
material = new THREE.MeshLambertMaterial({color: 0xfece46});

box = new THREE.Mesh(geometry, material);

box.position.set(0, 2.5, -0.2);
box.updateMatrix();
scene.add(box);

}
function animate() {
requestAnimationFrame(animate);
if(process == false){
setCurrentPose();
}

renderer.render(scene, camera);
}

function setCurrentPose(){
process = true;

// this is where I receive the position data via Android
// but lets try using random numbers between 0.01 - 0.99 (which are the results interval of dso)

moveRotateCamera();
}
function moveRotateCamera(){
// Create Vector to work with
posVec = new THREE.Vector3();

posVec.x = getRandomFloat(0.01, 0.99);
posVec.y = pgetRandomFloat(0.01, 0.99);
posVec.z = getRandomFloat(0.01, 0.99);

camera.position.x = posVec.x;
camera.position.y = (posVec.y) - 0.50; // minus initial scale position
camera.position.z = (posVec.z) + 0.15;

// camera.updateMatrix();

ссылка на мою скрипку < /p>

У вас есть какие -либо предложения? < /p>

Большое спасибо>

Подробнее здесь: https://stackoverflow.com/questions/598 ... the-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»