资源简介
这是一个用opengl实现的人物模型读取以及地面,以及光照,贴图,shader。
代码片段和文件信息
// Include standard headers
#include
#include
#include
// Include GLEW
#include
// Include GLFW
#include
GLFWwindow* window;
# include
# include
// Include GLM
#include
#include
using namespace glm;
#include
#include
#include
#include
int main( void )
{
// 初始化 GLFW
if( !glfwInit() )
{
fprintf( stderr “Failed to initialize GLFW\n“ );
getchar();
return -1;
}
//配置glfw
glfwWindowHint(GLFW_SAMPLES 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR 3);
//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT GL_TRUE); // Mac系统需要加这行代码
glfwWindowHint(GLFW_OPENGL_PROFILE GLFW_OPENGL_CORE_PROFILE);
// 创建窗口对象
int width = 1024;
int height = 768;
window = glfwCreateWindow( width height “Model Loading“ NULL NULL);
if( window == NULL ){
fprintf( stderr “Failed to open GLFW window. If you have an Intel GPU they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n“ );
getchar();
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// 初始化GLEW
glewExperimental = true; // Needed for core profile
if (glewInit() != GLEW_OK) {
fprintf(stderr “Failed to initialize GLEW\n“);
getchar();
glfwTerminate();
return -1;
}
// 按键
glfwSetInputMode(window GLFW_STICKY_KEYS GL_TRUE);
// 鼠标
glfwSetInputMode(window GLFW_CURSOR GLFW_CURSOR_DISABLED);
// 设置鼠标
glfwPollEvents();
glfwSetCursorPos(window width/2 height/2);
// 深度测试
glEnable(GL_DEPTH_TEST);
// 靠近时重新绘制帧缓存中对应像素的颜色值
glDepthFunc(GL_LESS);
// 加载着色器
GLuint programID = LoadShaders( “ObjVertexShader.vertexshader“ “ObjFragmentShader.fragmentshader“ );
GLuint programID2 = LoadShaders( “ObjVertexShader.vertexshader“ “ObjFragmentShader.fragmentshader“ );
GLuint programID3 = LoadShaders(“ObjVertexShader.vertexshader“ “ObjFragmentShader.fragmentshader“);
GLuint programID4 = LoadShaders(“ObjVertexShader.vertexshader“ “ObjFragmentShader.fragmentshader“);
GLuint group = LoadShaders(“GroupShader.vertexshader“ “GroupShader.fragmentshader“);
// 加载纹理
GLuint Texture = loadBMP_custom(“wall.bmp“);
GLuint Texture2 = loadBMP_custom(“cat.bmp“);
GLuint Texture3 = loadBMP_custom(“boy.bmp“);
GLuint Texture4 = loadBMP_custom(“wood.bmp“);
//给着色器传递常量uniform
GLuint MatrixID = glGetUniformLocation(programID “MVP“);//模视变换矩阵 传给顶点着色器
GLuint TextureID = glGetUniformLocation(programID “myTextureSampler“);//纹理 传给片元着色器
GLuint LightColorID = glGetUniformLocation(programID “lightColor“);//光源颜色 传给片元着色器
GLuint modelID = glGetUniformLocation(programID “model“);//模变换矩阵 传给顶点着色器
GLuint lightPositionID = glGetUniformLocation(programID “lightPos“);//光源位置 传给片元着色器
GLuint viewID = glGetUniformLocation(programID
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-02-28 22:54 Opengl_lab1\
目录 0 2018-02-28 22:56 Opengl_lab1\Opengl_lab1\
目录 0 2017-12-04 17:59 Opengl_lab1\Opengl_lab1\.vs\
目录 0 2017-12-04 17:59 Opengl_lab1\Opengl_lab1\.vs\Opengl_lab1\
目录 0 2017-12-04 17:59 Opengl_lab1\Opengl_lab1\.vs\Opengl_lab1\v14\
文件 64000 2017-12-05 00:26 Opengl_lab1\Opengl_lab1\.vs\Opengl_lab1\v14\.suo
目录 0 2017-12-07 15:37 Opengl_lab1\Opengl_lab1\Debug\
文件 424448 2017-12-07 15:37 Opengl_lab1\Opengl_lab1\Debug\Opengl_lab1.exe
文件 1307564 2017-12-07 15:37 Opengl_lab1\Opengl_lab1\Debug\Opengl_lab1.ilk
文件 2731008 2017-12-07 15:37 Opengl_lab1\Opengl_lab1\Debug\Opengl_lab1.pdb
目录 0 2017-12-07 15:39 Opengl_lab1\Opengl_lab1\Opengl_lab1\
文件 42860544 2018-02-28 22:56 Opengl_lab1\Opengl_lab1\Opengl_lab1.sdf
文件 900 2017-10-25 09:53 Opengl_lab1\Opengl_lab1\Opengl_lab1.sln
文件 46080 2017-11-17 11:30 Opengl_lab1\Opengl_lab1\Opengl_lab1.v11.suo
文件 61440 2018-02-28 22:56 Opengl_lab1\Opengl_lab1\Opengl_lab1.v12.suo
文件 42598400 2017-12-05 00:26 Opengl_lab1\Opengl_lab1\Opengl_lab1.VC.db
文件 3145784 2017-12-04 23:38 Opengl_lab1\Opengl_lab1\Opengl_lab1\111.bmp
文件 1389218 2017-11-15 16:14 Opengl_lab1\Opengl_lab1\Opengl_lab1\23.obj
文件 786488 2017-12-04 23:45 Opengl_lab1\Opengl_lab1\Opengl_lab1\boy.bmp
文件 158945 2017-12-04 21:09 Opengl_lab1\Opengl_lab1\Opengl_lab1\boy.obj
文件 3145784 2017-12-04 23:45 Opengl_lab1\Opengl_lab1\Opengl_lab1\cat.bmp
文件 137448 2017-12-04 21:09 Opengl_lab1\Opengl_lab1\Opengl_lab1\cat.obj
文件 16887 2017-12-07 08:41 Opengl_lab1\Opengl_lab1\Opengl_lab1\chair.obj
目录 0 2017-12-04 22:00 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\
文件 3269 2017-12-04 22:00 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\controls.cpp
文件 151 2017-07-17 01:25 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\controls.hpp
文件 5757 2017-11-15 17:13 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\objloader.cpp
文件 406 2017-07-17 01:25 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\objloader.hpp
文件 4247 2017-10-25 14:25 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\quaternion_utils.cpp
文件 248 2017-07-17 01:25 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\quaternion_utils.hpp
文件 3441 2017-07-17 01:25 Opengl_lab1\Opengl_lab1\Opengl_lab1\common\shader.cpp
............此处省略343个文件信息
相关资源
- Opengl实现旗帜飘扬效果
- OpenGL星星公转自转
- OpenGL显示三维点云图像
- opengl绘制太阳、地球、月球
- Qt通过控件控制立方体旋转
- OpenGL编程指南 第九版英文版 OpenGL P
- 三维游戏设计师宝典(经典!)——学
- OpenGL课程设计
- OpenGL飘动的雏菊画布
- OpenGL-篮球场.rar
- opengl显示兔子程序
- learnopengl-cn-2018年5月更新.pdf
- OpenGL超级宝典完整源码(第五版)
- OpenGL游戏程序设计+源码
- opengl编程指南第七版
- 基于OpenGL实现的各种粒子特效
- 3D模型obj文件导入渲染光照贴图
- OpenGL配置库与教程实现一个.
- 基于特征点匹配的三维重建OpenCV+Ope
- OpenGL编程指南原书第8版 中文PDF 高清
- glui批生成文件
- 利用opengl 读取建筑物模型 obj文件并加
- 学OpenGL编3D游戏含源代码
- openGL正方体贴图
- 用opengl写的一个保龄球游戏
- OpenGL完成对OFF文件的读取和使三维模
- OpenGL实验八犹他茶壶光照、阴影、纹
- opengl绘制花瓶演示
- 自己写的读取任意格式点云并读取的
- opengl加载off文件
评论
共有 条评论