y. As an additional reference, you might look at the chapter on texture mapping in
《Fundamentals of Three-Dimensional Computer Graphics by Alan Watt (Reading, Mass.: Addison-Wesley, 1990).》
Textures are simply rectangular arrays of data - for example, color
data, luminance data, or color and alpha data. The individual values in
a texture array are often called texels
.
Example 9-1 : A Texture-Mappedfs Checkerboard: checker.c
#include <GL/gl.h>
#include <GL/glu.h>
#include "aux.h"
#define checkImageWidth 64
#define checkImageHeight 64
GLubyte checkImage[checkImageWidth][checkImageHeight][3];
void makeCheckImage(void)
{
int i, j, r, c;
for (i = 0; i < checkImageWidth; i++) {
for (j = 0; j < checkImageHeight; j++) {
c = ((((i&0x8)==0)^((j&0x8))==0))*255;
checkImage[i][j][0] = (GLubyte) c;
checkImage[i][j][1] = (GLubyte) c;
checkImage[i][j][2] = (GLubyte) c;
}
}
}
void myinit(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
makeCheckImage();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
&checkImage[0][0][0]);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_FLAT);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
glTexCoord2f(0.0, 1.0); glVertex3f(-2.0, 1.0, 0.0);
glTexCoord2f(1.0, 1.0); glVertex3f(0.0, 1.0, 0.0);
glTexCoord2f(1.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
glTexCoord2f(1.0, 1.0); glVertex3f(2.41421, 1.0, -1.41421);
glTexCoord2f(1.0, 0.0); glVertex3f(2.41421, -1.0,-1.41421);
glEnd();
glFlush();
}
void myReshape(GLsizei w, GLsizei h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h, 1.0, 30.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -3.6);
}
int main(int argc, char** argv)
{
auxInitDisplayMode (AUX_SINGLE | AUX_RGBA | AUX_DEPTH);
auxInitPosition (0, 0, 500, 500);
auxInitWindow (argv[0]);
myinit();
auxReshapeFunc (myReshape);
auxMainLoop(display);
}
分享到:
相关推荐
OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程...
该资源是花了不少时间查阅资料处理的,最终实现仅依赖系统带的OpenGL和GLUT,在Mac上运行红宝书的第一个程序-triangles。 文件(格式.tar.gz压缩包)包含的清单如下: LoadShaders.cpp LoadShaders.o triangles ...
这本书有些资源地址已经失效,所以将lib和include所需文件压缩上传
最近开始学习OpenGL超级宝典(第五版),书上提供的网站下载不到所需要的环境配置和源码,搞了一天,终于跑起来了,将资源提供给大家,避免卡在学习的开始。
《Open GL编程指南(原书第7版)》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉,资源为本书源代码
这是一个关于 OpenGL超级宝典 第五版的原书的源码包加上可运行的EXE文件与需要环境搭建的库资源,方便初学OpenGL蓝宝书的快速入门。
本资源是opengl红宝书上的例子源代码,对学习opengl的人来说,是很好的资源~
本学期上图形学编程课,老师提供的辅助材料,无任何版权问题,可以拿去边看书,边翻阅,里面包含ppt,以及程序的参考答案。
☆ 资源说明:☆ [Addison-Wesley Professional] OpenGL 开发超级圣经 (英文版) [Addison-Wesley Professional] OpenGL SuperBible Comprehensive Tutorial and Reference 5th Edition (E-Book) ☆ 图书概要:☆ ...
《Open GL编程指南》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。《Open GL编程指南》以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、...
<<OpenGL编程技术详解>>书中的所有示例程序,学习与练习过程中按照书中示例编写,VS.NET直接通过编译,与大家共享资源,如果大家有更好的建议或编程技巧等希望也与我共享,共同进步
OpenGL ES 3.x开发上下册,高清可用,是学习OpenGL 开发很好的资源,以及随书源码
OpenGL编程指南(第八版)(红宝书) 高清中文完整版! 内含资源下载地址。
OpenGL Programming Guide(8th) 英文无水印pdf 第8版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...
android开发者学习Opengl ES的绝好资料,书中所有代码均有整理,Github地址:https://github.com/1531074759/OpenGL
Android OPenGl ES 2.0 的开发文档,不可多得的书哦。。 很火的一本书,搞出来不容易 。。
opengl编程指南第八版,中文,高清,有目录,全本,pdf,由于文件过大,分四部分上传,下载的时候需要将五部分全部下载下来放在一起,然后才可以解压。随书源码可在我本人的资源空间进行下载全部都是免费的
opengl编程指南第八版,中文,高清,有目录,全本,pdf,由于文件过大,分四部分上传,下载的时候需要将五部分全部下载下来放在一起,然后才可以解压。随书源码可在我本人的资源空间进行下载全部都是免费的
☆ 资源说明:☆ [Packt Publishing] OpenGL 开发经典实例 (英文版) [Packt Publishing] OpenGL Development Cookbook (E-Book) ☆ 出版信息:☆ [作者信息] Muhammad Mobeen Movania [出版机构] Packt ...