像 Unity 中的 OpenGL“自由纵横比”

问题描述

我在 Visual Studio 中使用 OpenGL 和 C++ 制作了自己的简单关卡编辑器,为安卓手机创建游戏。但是我偶然发现了一个问题,即我放入编辑器中的某些对象在 android 上无法正确显示,有时甚至不显示。我一直在四处寻找,找不到解决方案。所以这是我的 lLevel 编辑器的正交相机和屏幕分辨率:

相机对象正交矩阵:

GoldState::aspectRatio = m_AspectRatio = (float)width / (float)height;
    float orthoLeft = 0.0f; //* m_AspectRatio;
    float orthoRight = 100.0f; //* m_AspectRatio;
    float orthoUp = 100.0f;
    float orthoDown = 0.0f;
    m_OrthoMatrix = glm::ortho(orthoLeft,orthoRight,orthoDown,orthoUp);

Android 也完全一样(使用 ndk)。

纵横比被注释掉了,因为我正在试验,如果不乘以纵横比,整个世界都会被拉伸。

现在unity的自由纵横比,我有一种感觉就像我的正射相机没有乘以纵横比。那究竟是什么,当我选择“自由纵横比”时,我放置在 Unity 上的每个对象如何保持 1:1 并且没有被拉伸或任何东西?如果有人能向我解释这一点,那真的会对我有很大帮助。

还有一件事。我已经使用 opengl 在 android 上制作了几款游戏,但我特别将背景图像制作为精确的宽度和高度,因为我一直在乘以正交矩阵中的纵横比。但这次我只想提取背景和物体的位置和大小,并让它们保持它们的外观,而不会在不同的分辨率下拉伸。

如果有任何其他通用解决方案,如果没有的话我想我应该在关卡编辑器上使用一些固定的分辨率并在android上使用相同的分辨率?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...