[OpenGL]课后案例17:GLSL程序

该博客介绍了如何使用OpenGL进行3D图形渲染,重点在于结合GLSL(OpenGL Shading Language)编写顶点和片段着色器。通过加载和编译GLSL程序,设置光照参数,并传递时间参数给着色器,实现对茶壶模型的动态渲染。
摘要由CSDN通过智能技术生成
//A.17  GLSL程序
/* display teapot with vertex and fragment shaders */
/* sets up elapsed time parameter for use by shaders */
#include<stdio.h>
#include<stdlib.h>
#include<gl/glut.h>
const float nearVal     =1.0f;
const float farVal =300.0f ;
const float lightPos[3] ={3.0f,3.0f,3.0f};
int width =512;
int height =512;
GLint program =0;
GLint timeParam;
/* shader reader */
/* create nulll terminated string from file */
char *readShaderSource(const char *shaderFile)
{
    struct stat statBuf;
    FILE *fp =fopen(shaderFile,"r");
    char *buf;
    stat(shaderFile,&statBuf);
    buf=(char *)malloc(statBuf.st_size+1*sizeof(char));
    fread(buf,1,statBuf.st_size,fp);
    buf[statBuf.st_size]=' ';
    fclose(fp);
    return buf;
}
/* error printing function */
static void chechError(GLint status,const char *msg)
{
    if(!status)
    {
        printf("%s\n",msg);
        exit(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值