我正在为 iPhone 开发一个应用程序。
我正在使用 OpenGL 在屏幕上显示一个 3D 对象,以相机视图为背景。
我想知道如何将 OpenGL ES 单位更改为厘米/米。
我怎样才能做到这一点?
我正在为 iPhone 开发一个应用程序。
我正在使用 OpenGL 在屏幕上显示一个 3D 对象,以相机视图为背景。
我想知道如何将 OpenGL ES 单位更改为厘米/米。
我怎样才能做到这一点?
你没有。
思想实验时间!
首先想象你有一个直径为 1 厘米的球体。你在 10 厘米外有一个摄像头。您会在框架的中心看到一个小球体。
现在想象一下,你有一个直径为 1 公里的球体和 10 公里外的照相机。您希望图像有何不同?
正确的答案是您根本不会期望图像发生变化。真正重要的是事物的相对大小。因此,您赋予数字的单位类型仅对程序员重要,与程序无关。
因此,您只需在脑海中声明一个单位等于一厘米,并根据该比例创建您的对象和世界。没有代码级别的更改可以实现这一点。它只是一种约定,用于帮助您以相对于彼此的正确尺寸构建事物。
OpenGL 没有单位的概念。它只使用无单位值。这些值的含义取决于您。他们只需要保持一致。因此,如果您的对象坐标和查看参数都以米为单位指定,并且您有一个坐标以厘米为单位的对象,则只需将该对象缩放 0.1 倍。