- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当声明为局部变量时,不会发生旋转 GLfloat 对象。当它被声明为全局时,它会相应地轮换,它背后要求全局的原因是什么? OpenGL 程序的 display() 函数是否调用其他东西?
最佳答案
我的想法是,您可能正在尝试做这样的事情(函数中的 rot
不是全局的):
GLfloat rot = 0.1;
glRotatef(rot, 0.0f, 1.0f, 0.0f);
不会旋转之后绘制的对象。
这是因为 glRotatef
使用绝对旋转。您正在对绘制的每个图像应用 0.1 的恒定旋转,因此它们不会移动。
你不必全局存储rot
,你可以将它与你旋转的对象的模型一起存储,像这样:
glRotatef(myObj->rotation, 0.0f, 1.0f, 0.0f);
... draw myObj->triangles ...
myObj->rotation += speed; // speed can be e.g. 0.1
请注意:请记住,如果您在渲染函数中执行 myObj->rotation += speed;
,您的旋转速度将与您的渲染速度成正比(更快计算机),这通常是不需要的。为避免这种情况,您可以检查耗时,并且仅在该时间超过 50 毫秒时才对其进行评估。
关于c - 为什么 GLfloat 需要全局作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256700/
有没有更快的方法将下面的数据转换成c风格的指针数组? GLfloat verticalLines [] = { 0.59, 0.66, 0.0, 0.59, -0.14, 0.0 } 我目前的方
我正在 OpenGL ES 2.0 中创建一个应用程序,想要设置一个 2D 投影矩阵来解决由屏幕纵横比引起的拉伸(stretch)和扭曲。我使用一个函数创建了一个具有所需值的矩阵。该函数的结果是一个
我在 Objective-C 中动态声明 GLfloat 数组时遇到了一些问题。这是c我正在使用的颂歌: GLfloat *m_bindPositions; @implementation int n
为什么我不能这样做? #include GLfloat posX; posX=0.0f; Visual Studio 说: error C4430: missing type specifier
我想在我创建的项目中添加一些光照,但出现以下编译器错误: error C2440: 'initializing' : cannot convert from 'float' to 'GLfloat [
当声明为局部变量时,不会发生旋转 GLfloat 对象。当它被声明为全局时,它会相应地轮换,它背后要求全局的原因是什么? OpenGL 程序的 display() 函数是否调用其他东西? 最佳答案 我
在使用此类声明时遇到一些问题,我正在尝试为 Dijktra 最短路径算法的 openGL 实现创建节点。 getX()、getY()、getZ() 方法导致错误: 错误:ISO C++ 禁止声明没有类
这个问题在这里已经有了答案: Do I have to use the OpenGL data types (GLint, CLchar, ...) for a cross platform game
我知道 CGFloat 应该在 Cocoa 应用程序中使用,以使它们成为 64 位干净的。但是,在一个简单的 OpenGL 游戏中,除了渲染(到 NSOpenGLView)之外,其他所有事情都使用 C
在使用 OpenGL 分配 VBO 之后,我使用 clCreateFromGLBuffer 从中创建了一个 OpenCL 缓冲区. 我将 VBO 用作 GLfloat 数组,将 OpenCL 缓冲区用
我尝试使用 创建 GLfloat 缓冲区数组 GLfloat mat_diffuse[] = { .2f, .2f, .6f, 1f }; 但是java找不到类GLfloat,当我尝试使用普通的 fl
我目前正在 iOS 中使用 OpenGL,我想听听是否有任何方法可以将向量转换为 GLfloat? 由于 glBufferData: void glBufferData(GLenum target,
我试图在这里做点什么,但出现了错误我真的不知道如何正确完成它我试图将 Figure.h 中的所有变量作为 GLfloat 而不是 float 并且相同的错误不断出现主意?这是我的图.h Class F
在 C++ 中,最好默认使用 double,只有当我们确实需要它们时才使用 float 或 long double。不过对于 OpenGL,我看到 GLfloat 似乎是默认值。考虑到 double
如何将 float 数组转换为 Glofloat 数组?我需要制作图表,并且需要发送 float 数组来显示函数。我的 float 组是全局变量/ 最佳答案 GLfloat 是 float 的类型定义
我有一个 GLKMatrix4 变量,并且想将它的 GLfloat *array 值用于 glUniformMatrix4fv 函数。我用谷歌搜索但没有找到任何有用的信息。 cocos3d SDK中有
最后Mr.Chris 帮我用GLKview 和drawInRect: 方法画了一条线。它工作正常。但是,我需要一些说明, 我们如何为 GLFloat 赋值? const GLfloat line[]
我正在使用 GLKit 绘制一个像素。我可以在 (10, 10) 坐标处成功绘制像素,如果我有: glClearColor(0.65f, 0.65f, 0.65f, 1.0f); glClear(GL
关于如何正确初始化 GLFloats 数组逐行,目前我的脑子里有个结。据我所知,数组可以这样写: int a[2][2] = {{1,2},{3,4}} 在我的例子中,我有数组 GLfloat tar
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to find the sizeof(a pointer pointing to an array)
我是一名优秀的程序员,十分优秀!