
OpenGL学习
胡默
这个作者很懒,什么都没留下…
展开
-
OpenGL(8)- 坐标系统 2(立方体绘制)
直接上完整代码:#define GLEW_STATIC#define STB_IMAGE_IMPLEMENTATION#include<iostream>#include<GL/glew.h>#include<GLFW/glfw3.h>#include"Shader.h"#include "stb_image.h"#include <glm.hpp>#include <gtc/matrix_transform.hpp>#inc原创 2020-09-05 16:39:12 · 715 阅读 · 0 评论 -
OpenGL(7)- 坐标系统 1
MVP变换M变换是将物体空间的坐标转换到世界空间坐标的一个过程,可以有旋转平移缩放等操作V变换是用来将世界坐标变换到观察空间,一般为平移操作P变换指透视投影变换定义三个矩阵,分别代表MVP矩阵: glm::mat4 modelMat; modelMat = glm::rotate(modelMat, glm::radians(-60.0f), glm::vec3(1.0f, 0.0f, 0.0f)); //绕x轴顺时针旋转60度 glm::mat4 viewMat; viewMa原创 2020-08-31 16:20:13 · 312 阅读 · 0 评论 -
OpenGL(6)transform
矩阵变换在顶点着色器中添加一个变换矩阵transform,用矩阵uniform乘以位置向量#version 330 core layout (location = 7) in vec3 aPos; layout (location = 8) in vec3 aColor; layout (location = 9) in vec2 aTexCoord; out vec4 vertexColor; out vec2 TexCoord;uniform ma原创 2020-08-28 11:45:04 · 351 阅读 · 0 评论 -
OpenGL(5)Texture - 两张图片
为了能够让笑脸图片重叠到箱子图片上做如下修改:fragmentSource.txt#version 330 core in vec4 vertexColor; in vec2 TexCoord;uniform sampler2D ourTexture;uniform sampler2D ourFace; //加入第二张图片out vec4 FragColor; void main(){ // FragColor = vert原创 2020-08-11 10:40:43 · 1211 阅读 · 0 评论 -
OpenGL(5)Texture - 箱子
1. 下载stb_image.h编写格式(在main.cpp中):#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"2.修改着色器vertexSource.txt#version 330 core layout (location = 7) in vec3 aPos; layout (location = 8) in vec3 aColor; layout (location = 9) in vec原创 2020-08-10 17:29:41 · 553 阅读 · 0 评论 -
OpenGL(4)着色器 - 错误排查
Shader.h 中声明新函数:private: void checkCompileErrors(unsigned int ID, std::string type);Shader.cpp 中定义新函数:void Shader::checkCompileErrors(unsigned int ID, std::string type){ int success; char infolog[512]; if (type != "PROGRAM") { glGetShaderiv(ID,原创 2020-08-10 10:45:42 · 1093 阅读 · 0 评论 -
OpenGL(4)着色器 - 着色器的编写
main函数#define GLEW_STATIC#include<iostream>#include<GL/glew.h>//#include<glad/glad.h>#include<GLFW/glfw3.h>#include"Shader.h"//现在直接在顶点数据里加入颜色信息float vertices[] = {-0.5f, -0.5f, 0.0f,1.0f,0.0f,0.0f,//右上角0 0.5f, -0.5f,原创 2020-08-09 17:19:32 · 532 阅读 · 0 评论 -
OpenGL(4) 着色器 - 着色器文档的读入
新加项Shader.h#pragma once#include<string>class Shader{public: Shader(); Shader(const char * vertexPath, const char * fragmentPath); //cpu中的string 和 char* std::string vertexString; std::string fragmentString; const char* vertexSource; con.原创 2020-08-09 16:40:42 · 393 阅读 · 0 评论 -
OpenGL(3)着色器 - 顶点加入颜色信息插值绘制
修改部分:着色器中定义颜色信息:const char* vertexShadersource ="#version 330 core \n""layout (location = 7) in vec3 aPos; \n""layout (location = 8) in vec3 aColor; \n" //加入颜色属性位置是8;"out vec4 vertexColor; \n" //在 vertexShadersource 中定义并输出到fragment原创 2020-08-08 22:13:08 · 1415 阅读 · 0 评论 -
OpenGL三角形(2)-闪烁功能
重点部分:在顶点着色器中定义一个out扔到片段着色器中(in),片段着色器将顶点着色器中vertexColor的值赋给每一个像素;#mermaid-svg-DlLweXvQF1RV2pxB .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); fill: #333; color: #333; }#mermaid-svg-DlLweXvQF1R原创 2020-08-05 16:26:58 · 444 阅读 · 0 评论 -
游戏开发第一站之OpenGL(1)
OpenGL三角形绘制具体流程:版本号初始化glew将着色器附加到程序对象上初始化窗口创建窗口定义VBO VAO EBO创建着色器并编译创建程序对象绘制#define GLEW_STATIC#include<iostream>#include<GL/glew.h>//#include<glad/glad.h>#include<GLFW/glfw3.h>float vertices[] = {-0.5f, -0.5f, 0.0f,原创 2020-08-04 17:16:23 · 355 阅读 · 0 评论