Я делаю некоторые приложения с QCAR,JPCT-AE
Привет, я делаю несколько приложений с QCAR и JPCT-AE. Кто-то может увидеть мой исходный код и посоветовать мне? если вы можете, я вышлю вам свой исходный код. мой адрес электронной почты lyhdra99@gmail.com.
Пожалуйста, помогите мне ^^
первый
- Я отправляю modelViewMatrix(QCAR::Matrix44F) из JNI в JAVA ex) JNIEXPORT jfloatArray JNICALL Java_jp_may_com_VirtualButtonsRenderer_getNowMatrix(JNIEnv* env, jobject obj)
- используйте эту модель ViewMatrix, как показано ниже
public class VirtualButtonsRenderer implements GLSurfaceView.Renderer {
public VirtualButtonsRenderer(Activity act) {
Config.maxAnimationSubSequences = 999;
// TODO Auto-generated constructor stub
this.act = act;
_Object3D = Loader.loadMD2(act.getResources().openRawResource(R.raw.tris), 1.0f);
_Object3D.setName("MyTarget");
}
public native float[] getNowMatrix();
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
initRendering();
QCAR.onSurfaceCreated();
world = new World();
world.setAmbientLight(20, 20, 20);
TextureManager tm = TextureManager.getInstance();
com.threed.jpct.Texture Cover = new com.threed.jpct.Texture(BitmapFactory.decodeStream(act.getResources().openRawResource(R.raw.skin)));
tm.addTexture("Cover", Cover);
_Object3D.setTexture("Cover");
world.addObject(_Object3D);
world.buildAllObjects();
sun = new Light(world);
sun.setIntensity(250, 250, 250);
Camera cam = world.getCamera();
cam.moveCamera(Camera.CAMERA_MOVEOUT, 100);
cam.lookAt(_Object3D.getTransformedCenter());
SimpleVector sv = new SimpleVector();
sv.set(_Object3D.getTransformedCenter());
sv.x -= 300;
sv.z -= 0;
sun.setPosition(sv);
MemoryHelper.compact();
}
public void onDrawFrame(GL10 gl) {
if (!mIsActive)
return;
if (renderFrame()) {
Matrix NowMatrix = new Matrix();
NowMatrix.fillDump(getNowMatrix());
world.getCamera().setBack(NowMatrix);
world.renderScene(fb);
world.draw(fb);
fb.display();
return;
} else {
mIsTouch = false;
}
}
}
здесь у меня проблема. я думал, что Object3D может двигаться как чайник (образец объекта QCAR) на маркер с modelViewMatrix. но это не могло
это моя проблема ^^;;
1 ответ
Я хотел бы помочь вам с вашим приложением, пожалуйста, пришлите мне ваш родной код imagetarget.cpp,
до этого я думаю, что вы видели эту страницу, сослаться на этот раз
http://www.jpct.net/wiki/index.php/Integrating_JPCT-AE_with_Vuforia
его исходный код проекта https://github.com/sidneibjunior/vuforia-jpct
получить вашу модель ViewMatrix из renderframe и отправить ее в java, вот так
const QCAR:: TrackableResult * result = state.getTrackableResult (tIdx);
QCAR:: Matrix44F modelViewMatrix = QCAR:: Tool:: convertPose2GLMatrix (result-> getPose ());
SampleUtils:: rotatePoseMatrix (90.0f, 1.0f, 0, 0, & modelViewMatrix.data [0]);
// инвертировать матрицу QCAR:: Matrix44F inverseMV = SampleMath:: Matrix44FInverse (modelViewMatrix);
// транспонирование инвертированной матрицы QCAR::Matrix44F invTranspMV = SampleMath::Matrix44FTranspose(inverseMV);
отправить обратную транспонированную матрицу в код Java. Это будет работать нормально... я надеюсь:)