//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(
[OpenGL]课后案例17:GLSL程序
最新推荐文章于 2022-05-11 21:47:47 发布
该博客介绍了如何使用OpenGL进行3D图形渲染,重点在于结合GLSL(OpenGL Shading Language)编写顶点和片段着色器。通过加载和编译GLSL程序,设置光照参数,并传递时间参数给着色器,实现对茶壶模型的动态渲染。
摘要由CSDN通过智能技术生成