OpenGL学习
xhh22900
upgrading
展开
-
OpenGL学习(七)摄像机
OpenGL学习(七)摄像机参考官方文档:https://learnopengl-cn.github.io/01%20Getting%20started/09%20Camera/OpenGL本身没有摄像机的概念,我们通过把场景中的所有物体往相反方向移动的方式来模拟摄像机。首先我们设置摄像机的位置:glm::vec3 cameraPos = glm::vec3(0.0f, 0.0f, 3.0f);摄像机的方向为:glm::vec3 cameraTarget = glm::vec3(0.0f, 0原创 2020-06-09 01:08:43 · 526 阅读 · 0 评论 -
OpenGL学习 (六)坐标系统
OpenGL学习 (六)坐标系统参考官方文档https://learnopengl-cn.github.io/将坐标变换为标准化设备坐标,然后转换为屏幕坐标的过程是分布进行的。有5个比较重要的坐标系统:局部坐标世界坐标观察坐标裁剪坐标屏幕坐标坐标变换的过程中会用到几个变换矩阵:模型、观察、投影矩阵。现在我们可以进行3D绘图了。顶点着色器shader.vs#version 330 corelayout(location=0) in vec3 aPos;layout(locatio原创 2020-06-08 01:35:26 · 275 阅读 · 0 评论 -
OpenGL学习(五)变换
OpenGL学习(六)变换参考官方文档https://learnopengl-cn.github.io/那么现在有意思的来了。首先关于矩阵运算就不用多做介绍了。直接进入实战部分。先下载GLM。这个直接百度可以找到:https://github.com/g-truc/glm。(官方文档中给出的链接打不开,只能百度)下载解压。刚开始我以为需要用cMake,后面发现不用cMake,只需要在你当前的项目的属性中添加包含目录就行了。需要用到的大多数功能都可以在下面3个头文件中找到。#include <gl原创 2020-05-30 01:58:00 · 237 阅读 · 0 评论 -
OpenGL学习(四)给图案添加纹理
参考官方文档https://learnopengl-cn.github.io/文章目录纹理环绕方式纹理过滤多级渐远纹理加载与创建纹理生成纹理应用纹理纹理单元练习:纹理是一个2D图片,它可以用来添加物体的细节。为了能把纹理映射到三角形上,我们要指定三角形的每个顶点各自对应纹理的哪个部分。这样每个顶i点就会关联一个纹理坐标,用来标明该从纹理图像的哪个部分采样,然后在图形的其他片段上进行插值。用纹理坐标获取纹理颜色叫做采样。纹理坐标如下:float texCoords[]={ 0.0f,0.0f,原创 2020-05-28 21:58:58 · 2665 阅读 · 1 评论 -
OpenGL学习(三) 着色器
参考官方文档:https://learnopengl-cn.github.io/文章目录GLSL数据类型输入和输出Uniform更多属性写一个着色器类练习:我们知道,着色器是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。下面我们将进一步了解着色器以及着色器语言GLSL。GLSLGLSL是一种类C语言。它的开头声明版本,然后是输入输出变量、uniform和main函数。每个着色器的入口点都是main函数。一个典型的着色器原创 2020-05-28 00:56:55 · 623 阅读 · 1 评论 -
OpenGL学习(二)绘制一个三角形
参考官方文档:https://learnopengl-cn.github.io/首先,这个过程相当繁琐,需要做好思想准备。首先先看源代码:#include<iostream>#include<glad/glad.h>#include<GLFW/glfw3.h>void processInput(GLFWwindow* window) { if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) glf原创 2020-05-27 19:03:59 · 442 阅读 · 2 评论 -
OpenGL学习(一)创建窗口
参考官方文档:https://learnopengl-cn.github.io/一直对OpenGL很感兴趣,但每次找到网上各种教程,跟着教程做总是不知道哪里出错了总是运行不出来,可能是自己有某一步出错了,也可能是这些教程都漏了什么细节没交代。这里终于根据官方教程结合自己的探究总算成功完成了第一步:创建一个窗口。为此,必须把整个步骤详细交代以下,方便作为以后的参考。知识储备:这里是需要熟悉C++,虽然其他语言如C#也是可以通过安装OpenTK来进行OpenGL编程的,但OpenTK的相关资料太少了,所以感原创 2020-05-26 21:52:19 · 826 阅读 · 0 评论