为纹理创建棋盘图像
Creating checkerboard image for texture
请帮助我理解下面是怎么回事。具体来说,什么是变量'c',什么是第三个数组的维度(不是一个图像的二维像素矩形)?如果需要上下文,我会发布这个代码的链接,但是上下文通常是将这个棋盘模式映射到一个旋转立方体。
GLubyte image[TextureSize][TextureSize][3];
GLubyte image2[TextureSize][TextureSize][3];
// Create a checkerboard pattern
for ( int i = 0; i < 64; i++ ) {
for ( int j = 0; j < 64; j++ ) {
GLubyte c = (((i & 0x8) == 0) ^ ((j & 0x8) == 0)) * 255;
image[i][j][0] = c;
image[i][j][1] = c;
image[i][j][2] = c;
image2[i][j][0] = c;
image2[i][j][1] = 0;
image2[i][j][2] = c;
}
}
一个图像是2个空间维度和颜色-所以在某种程度上是3个维度。
最后一个[]是红、绿、蓝像素值
这只是使用'c'数组语法为您在内存中进行计算。
内存中的布局是[row1][col1][red], [row1][col1][green], [row1][col1][blue], [row1][col2][red], [row1][col2][green], [row1][col2][blue] ........
如果c
是0或255那么
// sets all red,green,blue to same value = black (c=0) or white (c=255)
image[i][j][0] = c;
image[i][j][1] = c;
image[i][j][2] = c;
// sets red and blue on but green off = purple
image[i][j][0] = c;
image[i][j][1] = 0;
image[i][j][2] = c;
相关文章:
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 在OpenCV C++中创建空白图像
- 如何快速创建一组覆盖两个图像的图像
- LoadImage 函数不适用于 ImageMagick 创建的位图图像
- Cuda 从黑/白图像创建纹理对象
- 创建位图图像未在窗口上打印
- 如何在 dlib 的 array2d 图像上从 dlib::rectangle 创建 cv::Mat<rgb_pixel> ?
- 使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题
- 用FWRITE创建图像后,将交换字节
- 张量流错误:执行器无法创建内核。没有注册'Snapshot' 适用于 GPU 设备的 OpKernel 运行图像标签示例
- SDL2 不将在单独函数中创建的图像渲染到SDL_RenderPresent (C++)
- 无法释放从iPlimage创建的垫子图像
- 从一系列图像创建 CvCapture
- 在 opencv 中从 Mat 图像创建多个子图像?尝试为每个连接的组件创建子图像
- 如何使用avcodec从OpenCV::Mat类型的jpeg图像创建视频
- 如何为图像创建唯一的指纹
- LibVLC从帧/图像创建流
- 从图像创建实时RTP流
- 如何在Visual c++中使用swflib库从多个.jpg图像创建.swf文件
- 使用VideoCapture (OpenCV)从图像创建视频