- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 OpenGL 函数 glDrawPixels()
渲染体积数据
#define SIZE 480
unsigned int rgbPixels[SIZE][SIZE]
...
glDrawPixels(SIZE, SIZE, GL_RGB, GL_UNSIGNED_INT, rgbPixels);
如果我执行 sizeof(rgbpixels)
,它会返回 921600,也就是 480*480*4。
我试过 GL_RGBA
但效果不佳。最后,我在屏幕上看到了一些东西,而没有使用 glDrawPixels(SIZE, SIZE*0.81, GL_RGB, GL_UNSIGNED_INT, rgbPixels);
但这不是我预期的输出。那么在这种情况下有人可以帮助我吗?
最佳答案
你告诉 glDrawPixels
你的数据是 SIZExSIZE
像素,每个像素有 3 个 32 位无符号整数类型的分量 (GL_RGB
) 每个(GL_UNSIGNED_INT
)。如果 rgbPixels
不是这种情况(当您说它只是 SIZE*SIZE*4
而不是所需的 SIZE*SIZE*3 时可能不是*4
),那么这可能会导致访问冲突或其他未定义的行为。
当您说您的 rgbPixels
的大小为 SIZE*SIZE*4
时,我猜每个像素包含 4 个字节,每个字节都是一个颜色分量。如果是这种情况你需要
glDrawPixels(SIZE, SIZE, GL_RGBA, GL_UNSIGNED_BYTE, rgbPixels);
请始终记住,glDrawPixels
的所有参数都会告诉 OpenGL 指针参数 (rgbPixels
) 使用了多少内存以及它的布局格式。所以那些当然必须匹配 rgbPixels
包含(或指向)的实际内存。
关于c++ - glDrawPixels 访问违规读取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610870/
我一直在尝试使用 java 和 lwjgl 在 opengl 中绘制 320 x 240 全屏分辨率的图像。我将分辨率设置为 640 x 480,并将像素大小加倍以填充空间。经过大量的谷歌搜索后,我发
基本上我正在做一些测试来模拟场景中的各种窗口。一切正常,直到我尝试更好地定位我在场景中绘制的窗口。 重要代码在这里: // camFront = glReadPixels ... glMatrixMo
我是图形编程新手。我正在尝试使用 glDrawPixels 进行绘图,但我的程序没有任何输出。我在网上进行了研究,关于我应该将哪些数据传递给 glDrawPixels,我不断得到不同的答案。我看过 d
我正在尝试使用 OpenGL 函数 glDrawPixels() 渲染体积数据 #define SIZE 480 unsigned int rgbPixels[SIZE][SIZE] ..
我有一张像这样渲染的图像: glDrawPixels(image->width, image->height, GL_BGR, GL_UNSIGNED_BYTE, image->imageData);
我必须使用 glDrawPixels 来实现光栅算法。 现在我只是想得到一个 glDrawPixels 工作但有问题的简单示例。 GLint height, width, size = 0; GLby
这是代码。输出是一个灰色的方 block ——一直都是,不管输入是什么,而且明显是错误的。我的目标是能够将所有像素存储在某个地方并显示它们,这样我就可以继续使用简单的光线追踪器,但我似乎无法弄清楚这个
我已经使用 OpenGL 和 GLUT 编写了一个小示例程序,以使用 glDrawPixels 函数显示由四个彩色方 block 组成的 2×2 网格。不幸的是,我发现: 网格中的颜色显示不正确;和
将 glDrawPixels() 与 glRasterPos2*() 和 glPixelZoom() 结合使用时,我得到了非常奇怪的结果。我有一张照片,我想像过去的旧帧缓冲区一样显示它,即 (0,0)
我的团队目前仅限于在 opengl 1.4 平台上绘制图像,这意味着我们不能使用任何漂亮的纹理映射来绘制图像(是的,我们仅限于使用 intel 集成图形平台,这很烦人)。到目前为止,我们能够绘制、缩放
根据 opengl 规范 4.0 glDrawPixels 已弃用。 对于 cuda 互操作性,似乎最好使用“opengl 缓冲区对象”。 (替代方案可以是纹理或表面,但它们存在缓存/并发问题,因此无
我正在尝试用opengl画康威的生命游戏。它在常规 pygame 中工作得很好,但我读到 glTexImage2D 是快速绘制数组中已有内容的方法。我已经查看了the examples and doc
这个问题已经有答案了: glDrawArrays only updates when i exit (1 个回答) 已关闭 2 年前。 我创建了要使用 glDrawPixels 绘制的像素缓冲区。代码
以下代码不向 Intel 集成视频卡(例如 MacBook)的后台缓冲区写入任何数据。在 ATI 卡上,例如在 iMac 上,它绘制到后台缓冲区。宽度和高度正确(和 800x600 缓冲区)并且 m_
谁能看出这段代码有什么问题? SIZE_BG 是 6MB,因为我正在尝试绘制大型位图图像 (3366x600)。我使用 malloc 来防止我的图像溢出堆栈。我在调用 glDrawPixels() 时
我目前正在使用 OpenGL 开发适用于 Windows 的视频播放器。效果很好,但我的主要目标之一是准确性。也就是说,显示的图像应该与保存为视频的图像完全相同。 去掉所有与视频/文件/输入相关的东西
我现在对 glDrawPixels() 函数感到困惑。我知道函数签名是这样的:gl.glDrawPixels(int 宽度, int 高度, 格式, 类型, 数据); 我不知道如何使格式类型数据保持一
我正在尝试使用 numpy 和 OpenGL 可视化 mandelbrot 集。但是我在绘制代码时遇到问题,即 glDrawPixels。 当我使用 glDrawPixels 绘制时,我得到一些黑色的
我有一个函数可以在窗口上逐一绘制像素,但我想知道的是如何让像素以红色以外的其他颜色绘制。提前致谢。我已经尝试了一些东西,例如 glSetColor、glColor3f 等。只是尝试让像素以不同的颜色显
我有一个三维数组 unsigned int window_RGBData[3][640][480]; void display(){ glClear(GL_COLOR_BUFFER_BIT |
我是一名优秀的程序员,十分优秀!