- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Do I have to use the OpenGL data types (GLint, CLchar, ...) for a cross platform game?
(2 个回答)
6年前关闭。
我知道 Open GL 需要使用数字,但为什么不只使用常规的整数和浮点数或已经存在的包装类(无论哪个是整个 Open GL 世界很好地融合在一起所必需的)?除了名称和在 Open GL 中专门使用的名称之外是否有区别,或者它们几乎是相同的东西但名称不同?
最佳答案
因为 int 在 32 位系统上是 32 位(在这里过于简单化了),在 64 位系统上是 64 位 - 所以即使只是“一个 int”也不是一个普遍的概念。请记住,运行图形代码的硬件与您的 CPU 是不同的硬件,因此需要新的类型。通过使用自己的 typedef,OpenGL 可以确保在将数据发送到显卡时以正确的方式打包正确的位数。
可以使用抽象出“不同整数”的困惑的转换函数来做到这一点,但这会导致性能损失,当您谈论进出显卡的每个数字时,这通常是 Not Acceptable 。
tl; dr 使用“int”时,您在编写时要考虑到处理器的硬件。使用“GLInt”时,您在编写时要考虑到显卡的硬件。
编辑:正如评论中指出的,在 64 位处理器上,int
出于兼容性原因,可以(并且可能会)是 32 位。从历史上看,通过 8、16 和 32 位硬件,它一直是处理器的 native 大小,但从技术上讲,它是编译器在创建机器代码时感觉使用的任何东西。 @Nicol Bolas 和 @Mark Dickinson 的 Prop
关于class - 为什么有 GLint 和 GLfloat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326404/
有没有更快的方法将下面的数据转换成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)
我是一名优秀的程序员,十分优秀!