1. 首页
  2. 问答社区

问答社区

关于EasyAR中设置投影矩阵以及人物显示的问题

花开富贵 发布于 5个月前 分类:EasyAR

问题背景:

再EasyAR中使用原生的引擎绘制虚拟人物。人物显示有问题。

EasyAR官网的SurfaceTracking例子中,开始跟踪之后,要绘制一个立方体,在绘制立方体之前,要设置两个矩阵:

Matrix44F projectionMatrix = cameraParameters.projection(0.01f, 1000.f, viewport_aspect_ratio, screenRotation, true,false);

SurfaceTrackerResult result = (SurfaceTrackerResult)oResult;
Matrix44F transform = result.transform();
在render函数里面,要将第二个矩阵transform进行翻转。

然后在render函数的时候使用了两个矩阵:
public void render(Matrix44F projectionMatrix, Matrix44F cameraview, Vec3F size)
第一个参数传的就是第一个矩阵,第二个参数传的就是被反转过的第二个矩阵。

按照render函数的参数定义,第一个是投影矩阵,第二个是摄影机矩阵,
但是我将这两个矩阵传到我自己引擎里面绘制人物的矩阵的时候,人物就绘制的很奇怪,
几乎是只能看见一点点的,好像还是反的。

所以关于EasyAR获取的这两个矩阵,
第一个我看文档写的是:计算渲染虚拟物体所需要的透视投影矩阵,理解应该是没有错的,
但是第二个矩阵我应该怎么理解呢?
或者说其实第一个矩阵我就已经理解错了。

在将这两个矩阵传到我自己的引擎里面绘制人物,需要注意的有哪些呢?
是需要注意左右手矩阵吗?

2个回复

  • 小梨
    cameraview是相机矩阵,可以给设置个初始值,
    人物只能看到一点点,可能是离得太近了,后退一点试试,
    如果是太小了,可以调整大小,方向也是一样 ~
  • 花开富贵

    关于EasyAR接入Android原生,我总结了一个小文章:

    https://blog.csdn.net/DY_1024/article/details/103883491

    大家可以看一下

联系我们

AR社区交流群:AR社区交流群

QR code