|
|
绑定纹理图片_24 | | | |
图片 | 字节集 | | | | 图片宽度 | 整数型 | | | | 图片高度 | 整数型 | | | | 纹理号 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 图2 | 字节集 | | | 图3 | 字节集 | | | i | 整数型 | | | 临时像素 | 字节型 | | 3 | 绑定纹理号 ( #GL_二维纹理, 纹理号 )纹理控制 ( #GL_二维纹理, #GL_放大纹理滤波, #GL_线性 )纹理控制 ( #GL_二维纹理, #GL_缩小纹理滤波, #GL_线性 )图2 = 指针到字节集 (取变量数据地址 (图片 ) + 54, 图片宽度 × 图片高度 × 3 )图3 = 取空白字节集 (图片宽度 × 图片高度 × 3 ) i = 1 计次循环首 (图片宽度 × 图片高度, ) 临时像素 [1 ] = 图2 [i ] 临时像素 [2 ] = 图2 [i + 1 ] 临时像素 [3 ] = 图2 [i + 2 ] 图3 [i ] = 临时像素 [3 ] ÷ 2  图3 [i + 1 ] = 临时像素 [2 ] ÷ 2  图3 [i + 2 ] = 临时像素 [1 ] ÷ 2  i = i + 3 计次循环尾 ()定义二维纹理图片 (0, 3, 图片宽度, 图片高度, 6407, 图3 )
OpenGL绘图.e
(387.87 KB, 下载次数: 0)
下载示例看看吧,求最佳。“定义二维纹理图片()” 命令要求输入原始像素数据格式RGB或者RGBA,图2 = 指针到字节集 (取变量数据地址 (图片) + 54, 图片宽度 × 图片高度 × 3)这部分很关键是删除位图的头部(54个字节),只保留原始像素数据,24位bmp格式像素是BGR,Opengl的输入格式是RGB,需要交换R和B通道,后面那个循环就是干这个的,易语言OpenGL这里还有个坑,就是像素数据是0~128的,正常图像是0~255,所以后面的一个循环除了交换R和B通道还对像素值除以2。另外32位bmp是4通道,像素格式是RGBA,示例程序里面也写了。
|
|