![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opengl
文章平均质量分 75
yan17iiiiii
这个作者很懒,什么都没留下…
展开
-
OpenGL模型加载三 opengl 加载模型Model
一、.h#pragma once#include #include #include #include #include <assimp/Importer.hpp>#include <assimp/scene.h>#include <assimp/postprocess.h>#include “Mesh.h”//#include “stb_i...原创 2020-04-05 00:05:36 · 268 阅读 · 0 评论 -
OpenGL模型加载二 opengl 网格Mesh
一、编写Mesh类h文件#pragma once#include <glm/glm.hpp>#include <GL/glew.h>#include #include #include “Shader.h”using std::vector;using std::string;struct Vertex {glm::vec3 Position;glm...原创 2020-04-02 19:40:45 · 565 阅读 · 0 评论 -
OpenGL模型加载一 opengl 设置环境加载assimp库
一、新建工程OpenGLLoadMode二、设置环境1、新建项目OpenGLLoadMode01_Assimp用于环境配置2、在项目属性管理器中添加新项目属性表3、在项目属性表中配置环境C/C++ ->常规 附加包含目录 添加glew glfw glm的include目录链接器->常规 附加库目录 添加glew glfw glm的库目录链接器->...原创 2020-04-02 19:23:14 · 234 阅读 · 0 评论 -
OpenGL光线六 opengl多光源 MultipleLights
一、定义短多个光源//平行光LightDirectional lightD(glm::vec3(10.0f, 10.0f, -5.0f), glm::vec3(glm::radians(90.0f), glm::radians(0.0f), 0));//点光源LightPoint lightP0(glm::vec3(1.0f, .0f, .0f), glm::vec3(glm::radia...原创 2020-04-01 20:42:04 · 214 阅读 · 0 评论 -
OpenGL光线五 opengl投光物Light Casters (平行光、点光源、聚光灯)
一、平行光LightDirectional::LightDirectional(glm::vec3 _position, glm::vec3 _angles, glm::vec3 _color):postion(_position),angles(_angles),color(_color){UpdateDirection();}void LightDirectional::Upd...原创 2020-03-29 23:57:03 · 323 阅读 · 0 评论 -
OpenGL光线四 opengl光照贴图Lighting Maps
一、从VBO数据中读取贴图的uv坐标//uv坐标glVertexAttribPointer(7, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));glEnableVertexAttribArray(7);二、在Material类中添加记录贴图ID的成员变量unsigned int diffuse;...原创 2020-03-29 19:32:52 · 2931 阅读 · 0 评论 -
OpenGL光线三 opengl材质Material
一、定义材质Material类Material::Material(Shader* _shader, glm::vec3 _diffuse, glm::vec3 _specular, glm::vec3 _ambient, float _shininess):shader(_shader),diffuse(_diffuse),specular(_specular),ambient(_am...原创 2020-03-28 01:27:20 · 218 阅读 · 0 评论 -
OpenGL光线二 opengl光照模型 Phong Lighting Model
一、Phong Lighting Model 光照模型的计算方式二、计算步骤1、给定环境色ambient2、计算漫反射diffuse2.1、根据灯光位置和物体某点的位置计算光源的指向vec3 lightDir = normalize(lightPos - FragPos);2.2、根据光源的指向和法向量的内积(均为单位向量)计算反射的百分比,最后乘上光源vec3 diffuse = ...原创 2020-03-27 01:52:04 · 280 阅读 · 0 评论 -
OpenGL光线一 opengl 颜色色彩叠加(ColorA*ColorB)
一、通过uniform传递两个颜色值//传递物体颜色和环境光颜色glUniform3f(glGetUniformLocation(pshader->ID, “objColor”), 1.0f, .5f, .31f);glUniform3f(glGetUniformLocation(pshader->ID, “ambientColor”), 1.0f, 1.0f, 1.0f);二...原创 2020-03-26 21:49:15 · 597 阅读 · 0 评论 -
OpenGL光线零 opengl(早期代码重构 Refactor)
一、安装GLSL插件,对glsl语法提示1、在vs扩展中搜索GLSL插件并安装2、更改文件fragmentShader.txt ->fragmentShader.frag更改文件vertexShader.txt ->vertexShader.vert3、修改对应的调用函数的参数二、重构加载贴图的代码unsigned int loadImageToGPU(const char...原创 2020-03-26 16:11:08 · 151 阅读 · 0 评论 -
OpenGL随笔十三 opengl 用鼠标和键盘的输入控制相机移动
一、控制相机的视角//禁用光标glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);//注册鼠标事件回调函数glfwSetCursorPosCallback(window, mouse_callback);void mouse_callback(GLFWwindow* window, double xpos, double...原创 2020-03-26 01:56:57 · 1680 阅读 · 0 评论 -
OpenGL随笔十二 opengl 世界坐标转相机坐标的方法(获取viewMatrix矩阵)
方式一、根据相机坐标、观察坐标、世界的上方向获取世界坐标转相机坐标的转换矩阵方式二、根据相机坐标、相机仰角、相机的水平转角、世界的上方向获取世界坐标转相机坐标的转换矩阵代码展示`Camera::Camera(glm::vec3 postion,glm::vec3 target,glm::vec3 wordup){ Position = postion; WorldUp = word...原创 2020-03-26 00:04:00 · 1205 阅读 · 0 评论 -
OpenGL随笔十一 opengl 绘制多个3D立方体
1、定义10个平移向量,将已知立方体平移十次,产生十个立方体//10个立方体的平移向量glm::vec3 cubePositions[] = {glm::vec3(0.0f, 0.0f, 0.0f),glm::vec3(2.0f, 5.0f, -15.0f),glm::vec3(-1.5f, -2.2f, -2.5f),glm::vec3(-3.8f, -2.0f, -12.3f...原创 2020-03-25 01:03:44 · 887 阅读 · 0 评论 -
OpenGL随笔十 opengl 绘制一个3D立方体
1、获取立方体顶点信息//VBO数据float vertices[] = {…}2、顶点信息设置到VBOunsigned int VBO;glGenBuffers(1, &VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_...原创 2020-03-24 23:16:30 · 711 阅读 · 0 评论 -
OpenGL随笔九 opengl使用glm 3D转2D投影
1、定义并初始化转换矩阵//局部坐标转世界坐标 模型矩阵glm::mat4 modelMat;modelMat = glm::rotate(modelMat, glm::radians(-55.0f),glm::vec3(1.0f,0,0));//世界坐标转相机坐标 观察矩阵glm::mat4 viewMat;viewMat = glm::translate(viewMat, gl...原创 2020-03-24 12:05:55 · 520 阅读 · 0 评论 -
OpenGL随笔八 opengl使用glm数学库对图形进行变换(位移旋转缩放)
1、使用glm对图形进行变换需要遵守位移->旋转->缩放 的变换顺序否则图形会扭曲变形2、步骤2.1//包含OpenGL数学运算库#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include <glm/gtc/type_ptr.hpp>2.2 变换矩阵g...原创 2020-03-23 15:23:05 · 1039 阅读 · 0 评论 -
OpenGL随笔七 opengl从外部读取texture 纹理/贴图
1、在VBO顶点数据中增加需要填充纹理的uv坐标值2、指定绑定到某个纹理单元(15个)GL_TEXTURE0 ~GL_TEXTURE15glActiveTexture(GL_TEXTURE13);3、绑定纹理到这个单元glBindTexture(GL_TEXTURE_2D, TexBufferB);4、使用stb_image.h库读取填充的纹理贴图数据,unsigned char *...原创 2020-03-23 12:22:36 · 1950 阅读 · 0 评论 -
OpenGL随笔六 opengl通过读取外部文档读取vertexShader和fragmentShader的程序代码
#include “Shader.h”#include #include #include #define GLEW_STATIC#include <GL/glew.h>#include <GLFW/glfw3.h>using namespace std;Shader::Shader(const char* vertexPath, const char* f...原创 2020-03-22 20:39:50 · 309 阅读 · 0 评论 -
OpenGL随笔五 opengl通过图形顶点传入颜色值实现图形颜色渐变
#define GLEW_STATIC ////////////////////4#include <GL/glew.h>#include <GLFW/glfw3.h>#include //VBO绘制两个共边的三角形需要六个点float vertices[] = {//第一个三角形-0.5f, -0.5f, 0.0f, 1.0f, 0.0f...原创 2020-03-22 20:33:32 · 701 阅读 · 0 评论 -
OpenGL随笔四 opengl通过uniform实现图形颜色动态变化
#define GLEW_STATIC ///////////////////////////////////3#include <GL/glew.h>#include <GLFW/glfw3.h>#include //VBO绘制两个共边的三角形需要六个点float vertices[] = {/...原创 2020-03-22 20:27:32 · 910 阅读 · 0 评论 -
OpenGL随笔三 opengl通过EBO绘制三角形
#define GLEW_STATIC /////////////////////////////////////////////2#include <GL/glew.h>#include <GLFW/glfw3.h>#include //VBO绘制两个共边的三角形需要六个点float vertices[] = {//第一个三角形...原创 2020-03-22 20:23:35 · 201 阅读 · 0 评论 -
OpenGL随笔二 opengl绘制三角形
#define GLEW_STATIC ////////////////////1#include <GL/glew.h>#include <GLFW/glfw3.h>#include //VBO绘制两个共边的三角形需要六个点float vertices[] = {//第一个三角形-0.5f, -0.5f, 0.0f, ...原创 2020-03-22 20:19:16 · 133 阅读 · 0 评论 -
OpenGL随笔一 opengl环境配置
一、下载glew, http://glew.sourceforge.net/下载glfw,https://www.glfw.org/或者使用NuGet下载上述包二、配置opengl环境1.新建一个c++工程视图->其他窗口->属性管理器添加新项目属性表C/C++ 常规->附加包含目录 添加glew和glfw的include目录链接器 常规->附加库目...原创 2020-03-22 20:01:32 · 85 阅读 · 0 评论