Iphone OpenGLES单元

Iphone OpenGLES单元,iphone,objective-c,opengl-es,units-of-measurement,Iphone,Objective C,Opengl Es,Units Of Measurement,我正在为iPhone开发一个应用程序 我正在使用OpenGL在屏幕上显示一个3D对象,以相机视图为背景 我想知道如何将OpenGL ES单位更改为厘米/米 我该怎么做呢?OpenGL没有单位的概念。它只使用了无单位值。这些价值观意味着什么取决于你。他们只是需要始终如一。因此,如果您的对象坐标和查看参数都是以米为单位指定的,并且您有一个以厘米为单位的对象,只需将该对象缩放0.1倍。OpenGL没有单位概念。它只使用了无单位值。这些价值观意味着什么取决于你。他们只是需要始终如一。因此,如果您的对象坐

我正在为iPhone开发一个应用程序

我正在使用OpenGL在屏幕上显示一个3D对象,以相机视图为背景

我想知道如何将OpenGL ES单位更改为厘米/米


我该怎么做呢?

OpenGL没有单位的概念。它只使用了无单位值。这些价值观意味着什么取决于你。他们只是需要始终如一。因此,如果您的对象坐标和查看参数都是以米为单位指定的,并且您有一个以厘米为单位的对象,只需将该对象缩放0.1倍。

OpenGL没有单位概念。它只使用了无单位值。这些价值观意味着什么取决于你。他们只是需要始终如一。因此,如果您的对象坐标和查看参数都是以米为单位指定的,并且您有一个以厘米为单位的对象,只需将该对象缩放0.1倍。

您不需要。

思想实验时间

首先想象你有一个直径为1厘米的球体。你有一个10厘米远的摄像头。您将在框架的中心看到一个小球体

现在想象你有一个直径1公里的球体和一个10公里外的照相机。你认为图像会有什么不同

正确的答案是,您根本不希望图像发生变化。真正重要的是事物的相对大小。因此,您赋予数字的单元类型只对程序员重要,而对程序不重要


所以你只需在心里声明一个单位等于一厘米,然后根据这个比例创建你的对象和世界。没有代码级别的更改来实现这一点。这仅仅是一种惯例,你可以用它来帮助你在正确的维度上构建事物。你不需要这样做。

思想实验时间

首先想象你有一个直径为1厘米的球体。你有一个10厘米远的摄像头。您将在框架的中心看到一个小球体

现在想象你有一个直径1公里的球体和一个10公里外的照相机。你认为图像会有什么不同

正确的答案是,您根本不希望图像发生变化。真正重要的是事物的相对大小。因此,您赋予数字的单元类型只对程序员重要,而对程序不重要


所以你只需在心里声明一个单位等于一厘米,然后根据这个比例创建你的对象和世界。没有代码级别的更改来实现这一点。这仅仅是一个惯例,你可以用它来帮助你在正确的维度上构建事物。

那么,我必须将GLFloat缩放到0.1到厘米?谢谢,我不会缩放对象的坐标,而是调整它的变换矩阵(例如,使用固定函数时的glScale)。如果你不知道我在说什么,现在是学习OpenGL和实时图形的好时机,尤其是转换。是的,我理解。GlScale。谢谢,我必须将GLFloat缩放到0.1到厘米?谢谢,我不会缩放对象的坐标,而是调整它的变换矩阵(例如,使用固定函数时的glScale)。如果你不知道我在说什么,现在是学习OpenGL和实时图形的好时机,尤其是转换。是的,我理解。GlScale。谢谢,我就是这么做的。但我想知道还有没有别的办法。谢谢好吧,我就是这么做的。但我想知道还有没有别的办法。谢谢