资源简介
OpenGL实验八犹他茶壶光照、阴影、纹理,光照效果源码、阴影效果源码、纹理效果源码,及实验截图、实验报告。
代码片段和文件信息
// glutEx1.cpp : 定义控制台应用程序的入口点。
//
#include
#include
#include
#include “glut.h“
#define BITMAP_ID 0x4D42
#define Height 16
#define Width 16
GLubyte image[Height][Width][3]; // 图像数据
float fTranslate;
float fRotate;
float fScale = 1.0f; // set inital scale value to 1.0f
int status = 0;
int status2 = 1;
bool bPersp = false;
bool bAnim = false;
bool bWire = false;
int wHeight = 0;
int wWidth = 0;
GLuint texture[3];
void Draw_Leg();
// 纹理标示符数组,保存两个纹理的标示符
// 描述: 通过指针,返回filename 指定的bitmap文件中数据。
// 同时也返回bitmap信息头.(不支持-bit位图)
//读纹理图片
unsigned char *LoadBitmapFile(char *filename BITMAPINFOHEADER *bitmapInfoHeader)
{
FILE *filePtr; // 文件指针
BITMAPFILEHEADER bitmapFileHeader; // bitmap文件头
unsigned char *bitmapImage; // bitmap图像数据
int imageIdx = 0; // 图像位置索引
unsigned char tempRGB; // 交换变量
// 以“二进制+读”模式打开文件filename
filePtr = fopen(filename “rb“);
if (filePtr == NULL) {
printf(“file not open\n“);
return NULL;
}
// 读入bitmap文件图
fread(&bitmapFileHeader sizeof(BITMAPFILEHEADER) 1 filePtr);
// 验证是否为bitmap文件
if (bitmapFileHeader.bfType != BITMAP_ID) {
fprintf(stderr “Error in LoadBitmapFile: the file is not a bitmap file\n“);
return NULL;
}
// 读入bitmap信息头
fread(bitmapInfoHeader sizeof(BITMAPINFOHEADER) 1 filePtr);
// 将文件指针移至bitmap数据
fseek(filePtr bitmapFileHeader.bfOffBits SEEK_SET);
// 为装载图像数据创建足够的内存
bitmapImage = new unsigned char[bitmapInfoHeader->biSizeImage];
// 验证内存是否创建成功
if (!bitmapImage) {
fprintf(stderr “Error in LoadBitmapFile: memory error\n“);
return NULL;
}
// 读入bitmap图像数据
fread(bitmapImage 1 bitmapInfoHeader->biSizeImage filePtr);
// 确认读入成功
if (bitmapImage == NULL) {
fprintf(stderr “Error in LoadBitmapFile: memory error\n“);
return NULL;
}
//由于bitmap中保存的格式是BGR,下面交换R和B的值,得到RGB格式
for (imageIdx = 0;imageIdx < bitmapInfoHeader->biSizeImage; imageIdx += 3) {
tempRGB = bitmapImage[imageIdx];
bitmapImage[imageIdx] = bitmapImage[imageIdx + 2];
bitmapImage[imageIdx + 2] = tempRGB;
}
// 关闭bitmap图像文件
fclose(filePtr);
return bitmapImage;
}
//加载纹理的函数
void texload(int i char *filename)
{
BITMAPINFOHEADER bitmapInfoHeader; // bitmap信息头
unsigned char* bitmapData; // 纹理数据
bitmapData = LoadBitmapFile(filename &bitmapInfoHeader);
glBindTexture(GL_TEXTURE_2D texture[i]);
// 指定当前纹理的放大/缩小过滤方式
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D
0 //mipmap层次(通常为,表示最上层)
GL_RGB //我们希望该纹理有红、
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 156311 2017-12-11 01:08 OpenGL实验八犹他茶壶光照、阴影、纹理\1500170434-杨美美-实验8犹他茶壶.docx
文件 31232 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\Debug\openGL_circle_test.exe
文件 344560 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\Debug\openGL_circle_test.ilk
文件 510976 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\Debug\openGL_circle_test.pdb
文件 2359296 2017-10-24 12:05 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\ipch\opengl_circle_test-7f0dc184\opengl_circle_test-e685a681.ipch
文件 1754 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\cl.command.1.tlog
文件 16410 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\CL.read.1.tlog
文件 1226 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\CL.write.1.tlog
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 2048 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 4586 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 1288 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\li
文件 500 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\mt.command.1.tlog
文件 462 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\mt.read.1.tlog
文件 462 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\mt.write.1.tlog
文件 406 2017-10-24 12:00 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\openGL_circle_test.exe.em
文件 472 2017-10-24 12:00 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\openGL_circle_test.exe.em
文件 381 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\openGL_circle_test.exe.intermediate.manifest
文件 74 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\openGL_circle_test.lastbuildstate
文件 2524 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\openGL_circle_test.log
文件 34927 2017-10-24 12:06 OpenGL实验八犹他茶壶光照、阴影、纹理\openGL_test(纹理)\openGL_circle_test\Debug\openGL_circle_test.obj
............此处省略135个文件信息
- 上一篇:OpenCL双边滤波实现美颜功能
- 下一篇:Hellocharts图表控件
评论
共有 条评论