
OpenGL
衣带渐宽人憔悴
学习笔记
展开
-
VS2017环境下配置OpenGL的简单方法(glut,glew,freeglut,gltools)
写在前面:最近要用到OpenGL,光是在VS2015下配置就费了很大的劲,现在将我的成果直接贡献给大家,希望能为需要在VS2015下配置OpenGL的读者省去一些麻烦。正文:资源地址1:https://pan.baidu.com/s/1yuLgX3p9EDrUweppOSqOIA 提取码:anjc资源地址2:http://down.51cto.com/data/2300181...转载 2018-10-04 12:28:12 · 4243 阅读 · 5 评论 -
OpenGL之——Fragment shader contains a user varying, but is linked without a vertex shader.Out ofsource
首先报的是这个错误:Fragment shader contains a user varying, but is linked without a vertex shader.Out of resource error.已解决,附下 在没有添加纹理之前一切正常。下面是注释掉TextureCood的所有代码:shader.vs#version 330 corelayo...原创 2019-01-18 09:50:50 · 1210 阅读 · 0 评论 -
OpenGL之——多纹理,混合纹理设置渲染
实现下面三种纹理的组合和混合: 一、首先,获取纹理顶点坐标#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec2 aTexCoods;out vec2 TexCoods;void main(){ gl_Position = vec4(aPos, 1.0f); Te...原创 2019-01-18 21:43:16 · 8886 阅读 · 1 评论 -
OpenGL之——天空盒
main.cpp// Std. Includes#include <string>#include <algorithm>using namespace std;// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// G...原创 2019-01-14 16:55:57 · 1506 阅读 · 1 评论 -
OpenGL着色器编译问题:ERROR: 0:10: 'assign' : l-value required "texCoord" (cannot modify an attribute)
#include <iostream>#define GLEW_STATIC#include <GL/glew.h>#include <GLFW/glfw3.h>#include <SOIL.h>#include <GL/glut.h>#pragma comment(lib,"glfw3.lib")#pragma co...原创 2019-01-09 11:24:00 · 1969 阅读 · 0 评论 -
OpenGL之——Texture
通过着色器添加纹理,完整代码如下主程序:main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>#include <GL/glut.h>#include <SOIL.h...原创 2019-01-09 16:58:45 · 1410 阅读 · 0 评论 -
OpenGL之——3D漫游(金字塔)
简易版3D漫游金字塔效果如下: 面重合部分的纹理争夺战: 代码:main.cpp#include <iostream>#include <glad/glad.h>#include <GLFW/glfw3.h>#define STB_IMAGE_IMPLEMENTATION#include <stb_image.h>...原创 2019-01-21 16:57:50 · 1496 阅读 · 0 评论 -
OpenGL之——画不同颜色的三角形(uniform简便方法)
这里有两种渲染方法:(一) 一种是建立两套着色器,两个着色器程序,分别渲染两种颜色;(二) 另一种是简单方法,通过定义在片段着色器中的uniform标志值可以随意切换不同的颜色,用不同的颜色状态来同时渲染不同的图形。 先看笨方法也就是第一种,代码如下:#include <iostream>#include <glad/glad.h>#inclu...原创 2019-01-16 15:40:25 · 3684 阅读 · 0 评论 -
OpenGL之——多光源
竖直向上的平行光,四个点光源,还有与摄像头方向一致的手电筒光源 主要代码:#include <iostream>#include <glad/glad.h>#include <GLFW/glfw3.h>#define STB_IMAGE_IMPLEMENTATION#include <stb_image.h>#includ...原创 2019-02-02 12:47:17 · 530 阅读 · 0 评论 -
OpenGL之——冯氏基础光照
冯氏光照模型的主要结构由3个分量组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。下面这张图展示了这些光照分量看起来的样子: 下图为冯氏光照实验结果: 主要代码:main.cpp#include <iostream>#include <glad/glad.h>#include <GLFW/glfw3...原创 2019-01-29 19:10:27 · 781 阅读 · 0 评论 -
OpenGL之——光照贴图(纹理贴图)
上一节中的那个材质系统是肯定不够的,它只是一个最简单的模型,所以我们需要拓展之前的系统,引入漫反射和镜面光贴图(Map)。这允许我们对物体的漫反射分量(以及间接地对环境光分量,它们几乎总是一样的)和镜面光分量有着更精确的控制。 主要代码:#include <iostream>#include <glad/glad.h>#include <GLFW...原创 2019-01-29 19:20:48 · 2639 阅读 · 0 评论 -
OpenGL之——模板检测 stencilTest
LearnOpenGL上用模板检测做的一个选定3D物体的Demo(即选取特定物体的轮廓) 核心代码:#include <iostream>#include <string>#include <glad/glad.h>#include <GLFW/glfw3.h>#define STB_IMAGE_IMPLEMEN...原创 2019-02-23 21:49:40 · 592 阅读 · 0 评论 -
OpenGL之——混合(png图片discard的应用)
vegetation.fs#version 330 coreout vec4 FragColor;in vec2 TexCoords;uniform sampler2D texture3;void main(){ vec4 TexColor = texture(texture3, TexCoords); if(TexColor.a<0.1) discard...原创 2019-02-24 18:59:44 · 1068 阅读 · 0 评论 -
OpenGL之——assimp加载模型
主要代码:main.cpp// Std. Includes#include <iostream>#include <string>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// GL includes#incl...原创 2019-01-12 15:40:39 · 1465 阅读 · 3 评论 -
OpenGL之——光照模型(三)光照贴图
主要代码:main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h&...原创 2019-01-11 21:46:18 · 394 阅读 · 0 评论 -
计算机图形学算法(OpenGL实现)
一、直线中点算法(完整程序)//绘制斜率大于0且小于1的线段#include <GL/glut.h>#include <iostream>#include <cmath>using namespace std;void init(){ glClearColor(1.0, 1.0, 1.0, 1.0); glMatrixMode...原创 2018-11-19 19:58:09 · 2254 阅读 · 0 评论 -
OpenGL3之——着色器
#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>#pragma comment(lib,"glew32s.lib")// GLFW#include <GLFW/glfw3.h>#pragma comment(lib,"glfw3.lib")#include &...原创 2018-12-19 15:25:35 · 295 阅读 · 0 评论 -
OpenGL3之——三角形(无法解析的外部符号 __imp__glClear@4,该符号在函数 _main 中被引用)
如果上面想用glew32s.lib静态库而不是用动态库,就得加上glut.h,否则出现严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 __imp__glClear@4,该符号在函数 _main 中被引用 个人认为这些函数在glew和glfw中找不到,而这些函数定义在glut.h实用库中,在下面加...原创 2018-12-18 11:46:05 · 9125 阅读 · 5 评论 -
error LNK2026: 模块对于 SAFESEH 映像是不安全的
转自VC错误:http://www.vcerror.com/?p=162错误描述:在使用VS2012编译工程时,提示错误:" error LNK2026: 模块对于 SAFESEH 映像是不安全的"解决方法:1.打开该项目的“属性页”对话框。2.单击“链接器”文件夹。3.单击“命令行”属性页。4.将 /SAFESEH:NO 键入“其他选项”框中,然后点击应用。 ...转载 2018-12-18 11:55:57 · 203 阅读 · 0 评论 -
OpenGL之——变换矩阵(旋转的木箱)
主要代码如下:#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// G...原创 2019-01-11 08:59:16 · 405 阅读 · 0 评论 -
OpenGL之——摄像机(一)
main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// ...原创 2019-01-11 10:00:42 · 1035 阅读 · 0 评论 -
OpenGL之——摄像机(二)自由移动,简易3D漫游
主要代码:main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h&...原创 2019-01-11 10:22:10 · 1664 阅读 · 0 评论 -
OpenGL之——摄像机(三)各种自由视角3D漫游
主要程序如下:#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// G...原创 2019-01-11 11:08:54 · 1998 阅读 · 0 评论 -
OpenGL之——摄像机类(四)
main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// ...原创 2019-01-11 11:26:15 · 719 阅读 · 0 评论 -
OpenGL之——摄像机(五)FPS漫游
main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// ...原创 2019-01-11 11:48:21 · 395 阅读 · 0 评论 -
OpenGL之——光照模型(一)
main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// ...原创 2019-01-11 20:48:02 · 1030 阅读 · 1 评论 -
OpenGL之——光照模型(二)不同颜色光源
main.cpp#include <iostream>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// Other Libs#include <SOIL.h>#include <GL/glut.h>// ...原创 2019-01-11 21:12:20 · 463 阅读 · 1 评论 -
OpenGL之——混合(Blending)
要想让混合在多个物体上工作,我们需要最先绘制最远的物体,最后绘制最近的物体。普通不需要混合的物体仍然可以使用深度缓冲正常绘制,所以它们不需要排序。但我们仍要保证它们在绘制(排序的)透明物体之前已经绘制完毕了。当绘制一个有不透明和透明物体的场景的时候,大体的原则如下:先绘制所有不透明的物体。 对所有透明的物体排序。 按顺序绘制所有透明的物体。排序透明物体的一种方法是,从观察者视角获取物体的...原创 2019-02-24 22:21:41 · 648 阅读 · 0 评论