`
daojin
  • 浏览: 690139 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

OpenGL书和资源

 
阅读更多


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);
}
 
分享到:
评论

相关推荐

    OpenGL经典学习书籍

    通过阅读这三本书,你可以系统地掌握OpenGL的核心概念和技术,无论你是希望入门还是提升,这些书籍都将为你提供坚实的理论基础和实战经验。在学习过程中,建议配合实际编码练习,以加深理解并提高解决问题的能力。...

    OpenGL教程之——OpenGL红宝书

    OpenGL教程之——OpenGL红宝书,是一份深入学习图形编程的重要资源,主要针对OpenGL这一广泛使用的图形库进行详细讲解。OpenGL是一种跨语言、跨平台的应用程序编程接口(API),用于渲染2D、3D矢量图形。它在游戏...

    一些学习OpenGL的书籍

    在学习OpenGL的过程中,有一系列经典的书籍和资源可以作为学习材料,下面详细叙述这些知识点。 ### OpenGL Shading Language (GLSL) GLSL是OpenGL的着色语言,它是专门用于编写GPU图形渲染程序的语言。GLSL在学习...

    openGL 红宝书第8版

    《OpenGL红宝书第8版》是一本针对OpenGL 4.x版本的权威指南,由Dave Shreiner、Graham Sellers、John Kessenich和Bill Licea-Kane等作者撰写,他们均是OpenGL领域的专家,对OpenGL的发展和演进有着深厚的贡献。...

    openGL红宝书源代码及电子书

    OpenGL红宝书是学习图形编程的必备资源,其源代码则提供了丰富的实例,帮助读者更好地理解和应用书中所讲解的概念。 OpenGL是一种跨语言、跨平台的应用程序编程接口,它允许程序员直接与显卡进行交互,绘制复杂的三...

    OpenGL资源及更新

    在学习和实践中,可以参考各种OpenGL教程和书籍,例如"OpenGL Programming Guide"(通常称为红宝书)和"OpenGL SuperBible"。此外,通过实践项目,如创建简单的3D场景、实现光照和阴影效果,或者开发交互式图形应用...

    OpenGL学习内容以及参考书籍和网站-2008.

    - **在线资源**:OpenGL官方网站([http://www.opengl.org](http://www.opengl.org))提供了大量的文档和技术规范,是学习OpenGL的重要资源之一。 - **社区论坛**:OpenGL相关的开发者社区和论坛也是获取帮助和支持...

    Opengl 红宝书所需要的库

    5. **SOIL**:Simple OpenGL Image Library,用于加载和管理图像资源,如纹理,简化了纹理映射的过程。 6. **GLEW-MX**:一个改进版的GLEW,提供了对多窗口的支持。 7. **glm**:OpenGL Mathematics,是一个C++...

    OpenGL编程指南(原书第7版pdf )[转载]

    OpenGL编程指南(原书第7版)是一本全面介绍OpenGL编程的权威书籍,由Dava Shreiner著作,李军和徐波翻译。本书对OpenGL及其函数库做了深入的讲解,内容涵盖了OpenGL3.0和3.1版本的最新特性,并对之前的版本进行了...

    OGLPG-9th-Edition.zip OpenGL编程指南代码(包括资源文件)

    OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程...

    OpenGL超级宝典第五版环境搭建资源和随书源码

    在提供的资源"oglsuperbible5-read-only-xcode"中,很可能包含了与Xcode项目相关的设置和配置文件,让你可以直接打开并运行书中示例代码。 其次,"SB5"可能包含了本书的所有源代码,这些代码是学习OpenGL的重要实践...

    Android OpenGL ES 2.0学习书籍.rar

    OpenGL ES2.0学习”这本书将引导读者全面掌握OpenGL ES 2.0在Android平台上的应用,从基础概念到高级技巧,涵盖3D图形编程的各个方面,对于想要进入移动游戏开发领域的开发者来说是一本宝贵的资源。

    OpenGL 着色语言(橙皮书)中文版1part.pdf

    同时,本书也包括了一个API参考部分,提供了与OpenGL着色语言相关的函数、宏、枚举类型和其他资源的详细信息。这样,开发者可以快速地找到所需的函数调用,并了解其用途与限制。在线索引的加入则使得查找这些API变得...

    OpenGL 好用电子书两本(OpenGL Programming Guide 7th、 OpenGL+ES+2.0+Programming+Guide)

    OpenGL Programming Guide 7th Edition 和 OpenGL ES 2.0 Programming Guide 是两本深入讲解OpenGL和OpenGL ES的重要书籍,对于想要学习或提升在图形编程方面技能的IT专业人士来说,它们是不可多得的资源。...

    OpenGL Programming Guide 红宝书(英文)

    - **OpenGL与SPIR-V集成**:第九版书中详细介绍了OpenGL如何与SPIR-V集成,以及这种集成带来的优势,如更好的兼容性和更高的性能。 - **SPIR-V示例**:提供了具体的SPIR-V示例代码,帮助读者理解如何在OpenGL程序中...

    Android 开发OpenGL图书.pdf

    - **学习资源**:分享了一些有助于学习OpenGL ES的资源和建议。 ### 总结 《Android 开发OpenGL图书》是一本非常适合想要深入了解Android平台上OpenGL ES开发的读者的书籍。通过阅读本书,你可以了解到Android的...

    OpenGL编程指南(第九版英文)

    在介绍基本概念之后,书中详细讲解了现代OpenGL中的资源管理,如缓冲区对象、纹理、帧缓冲和着色器程序。这些资源在GPU上存储和处理数据,对于高效的图形渲染至关重要。同时,作者会讨论不同的纹理类型和过滤选项,...

    OpenGL+着色语言(第三版)

    该书的内容可能会被分为多个章节,每个章节聚焦于不同的主题,例如:核心概念的介绍、顶点和片段着色器的编写、几何着色器的使用、计算着色器的应用、以及如何使用OpenGL的高级功能如变换反馈、统一缓冲区和多渲染...

Global site tag (gtag.js) - Google Analytics