
[OpenGL笔记]
桑来93
time will tell
展开
-
OpenGL基本概念
OpenGL基本概念OpenGL基本概念顶点(Vertex)3D图像的最小单位称为点(point)或者顶点vertex。它们代表三维空间中的一个点并用来建造更复杂的物体。多边形就是由点构成,而物体是由多个多边形组成。尽管通常OpenGL支持多种多边形,但OpenGLEs只支持三边形(即三角形)所以即使我们要绘制一个正方形也要把它拆分为两个三角形绘制。坐标(coordin...原创 2018-04-22 11:09:18 · 1148 阅读 · 0 评论 -
OpenGL 帧缓冲的PingPong技术
OpenGL 帧缓冲的PingPong技术The ping pong technique乒乓是一种交替使用给定渲染输出作为输入的技术.主要有三种方式:Use one FBO with one attachment per texture that is rendered to, and bind a different FBO in each rendering pass usin...原创 2019-01-02 11:39:19 · 1807 阅读 · 0 评论 -
OpenGL几何着色器(geometry shader)
OpenGL几何着色器(geometry shader)除了顶点着色器(vertex shader)和片元着色器(fragment shader).OpenGL还提供了一个可选的几何着色器(geometry shader). 其位于顶点着色器和几何着色器之间.如没有使用几何着色器,则顶点着色器输出到片元着色器.若使用几何着色器,顶点着色器输出组成一个基础图元的顶点信息到几何着色器,经过几...原创 2019-02-03 15:03:58 · 889 阅读 · 0 评论 -
OpenGL 一些函数记录
OpenGL 一些函数记录OpenGL Context相关一些 GL 环境设置相关待续OpenGL APIglPixelStore : 用来设置像素存储模式(像素数据在存储空间中的布局方式)glEnableVertexAttribArray : 启用指定属性,才可在顶点着色器中访问逐顶点的属性数据glVertexAttribPointer : 用来描述缓冲区的布局glView...原创 2019-02-03 15:50:40 · 222 阅读 · 0 评论 -
纹理基础知识和过滤模式详解
转载自 纹理基础知识和过滤模式详解1. 为什么在纹理采样时候需要 texture filter (纹理过滤)我们的纹理 要贴到三维图形表面,而三维图形上的pixel中心与纹理上的texel中心并不一致(pixel不一定对应texture上的采样中心texel).大小也不一定一致.当纹理大于三维图形表面时,导致一个像素被映射到许多纹理像素上.当纹理小于三维图形表面时,导致许多个像素都映...转载 2019-03-16 22:06:25 · 2429 阅读 · 0 评论 -
“透视除法” —— 齐次坐标和投影
转载自 写给大家看的“透视除法” —— 齐次坐标和投影作者:StanGame链接:https://www.jianshu.com/p/7e701d7bfd79来源:简书术语在大多数3D工作中,我们参照的依据是欧几里得几何学中的三维空间(X, Y, Z)。但在某些情况下,参照投影几何更适用,除了 X, Y, Z 分量外,增加一个 W 分量,这个四维空间叫做**“投影空间”,在四维...转载 2019-03-17 10:19:40 · 2267 阅读 · 0 评论 -
深入探索透视投影变换
转载自 深入探索透视投影变换作者:Twinsen原文:https://blog.youkuaiyun.com/popy007/article/details/1797121感谢大神,让我对透视投影变换有了一点比较深刻的理解.一个顶点从相机空间到到视平面的坐标变化过程透视投影是3D固定流水线的重要组成部分.是将相机空间的点从 视椎体(frustum)变换到规则观察体(Canonical Vie...转载 2019-03-17 15:50:49 · 544 阅读 · 0 评论 -
OpenGL绘制半透明物体技巧
转载自绘制半透明物体一、使用混合来实现半透明效果混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新...转载 2019-03-13 17:07:51 · 2479 阅读 · 0 评论 -
OpenGL纹理映射与环绕模式
转载自 OpenGL超级宝典笔记——纹理映射基础过滤在纹理映射过程中,纹理元素与屏幕上的像素几乎不是一一对应的。一般情况下,在把纹理映射到几何图形的表面上时,我们需要对其进行拉伸或收缩。根据一个纹理贴图的拉伸或收缩来计算颜色片段的过程称为纹理过滤。OpenGL中有放大过滤器和缩小过滤器。这两种过滤器的pname参数分别为GL_TEXTURE_MAG_FILTER,GL_TEXTURE_...转载 2019-03-13 18:34:40 · 1975 阅读 · 1 评论 -
几何向量:计算光线反射reflect向量
https://blog.youkuaiyun.com/yinhun2012/article/details/79466517抽象成数学图来进行反射光的计算我们计算反射光线OB,则转换成了计算OP根据点积计算出cosθ,然后通过OA’ = |OA|cosθ单位法向量n就能得到,向量的投影公式。这个时候我们再回过来推导 OB = AO + 2OP的结果...原创 2019-03-22 12:01:27 · 1151 阅读 · 0 评论 -
计算机图形学笔记-视图矩阵推导过程
计算机图形学笔记-视图矩阵推导过程视变化,是将世界坐标系下的坐标变化到摄像机坐标系,视变换是通过乘以视图矩阵实现的。我们要知道视并不存在真正的摄像机,只不过是在世界坐标系里面选择一个点,作为摄像机的位置。然后根据一些参数,在这个点构建一个坐标系。然后通过视图矩阵将世界坐标系的坐标变换到摄像机坐标系下。我们先简单说一下我们的目标,在世界坐标系中选取一点作为观察点,并以观察点建立一个坐标系...转载 2019-03-22 22:44:31 · 2632 阅读 · 2 评论 -
OpenGL纹理空间开辟与绑定
glActiveTexture和glBindTexture的关系OpenGL API 之 glTexImage2DglTexImage2DglTexImage2D 用于开辟真正的GPU内存空间!函数原型如下:void glTexImage2D( GLenum target, GLint level, GLint internalFormat, ...转载 2019-05-06 22:14:19 · 1281 阅读 · 0 评论 -
OpenGL Shader Debugging
OpenGL Shader Debugging调试OpenGL和ShaderNVDIA Nsight Shader DebuggerNVIDIA Nsight Shader Debugger 工具可以让你对所有GLSL Shader进行源码级别的调试.除了OpenGL4.3的计算着色器.如何使用打开你要调试的图形学工程;从Nsight的菜单栏. 选择 Windows >...翻译 2019-05-08 08:43:57 · 811 阅读 · 0 评论 -
LearnOpenGL | 坐标系统
LearnOpenGL | 坐标系统https://learnopengl-cn.github.io/01 Getting started/08 Coordinate Systems/总共有5个不同的坐标系统:局部空间(Local Space,或者称为物体空间(Object Space))世界空间(World Space)观察空间(View Space,或者称为视觉空间(Eye S...原创 2018-09-22 22:52:01 · 349 阅读 · 0 评论 -
LearnOpenGL | 变换
https://learnopengl-cn.github.io/01 Getting started/07 Transformations/#_19线性代数的本质:https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab转载 2018-09-21 22:17:18 · 199 阅读 · 0 评论 -
GLSL 中文手册
转载自 GLSL 中文手册基本类型: 类型 说明 void 空类型,即不返回任何值 bool 布尔类型 true,false int 带符号的整数 signed integer float 带符号的浮点数 floating scalar vec2, vec3, vec4 n维浮点数向量 n-component...转载 2018-09-10 16:51:08 · 24318 阅读 · 3 评论 -
[转载]OpenGL渲染管线学习
http://www.cnblogs.com/liangliangh/p/4116164.html做记录~ 明天进行抄写一遍转载 2018-09-17 21:22:36 · 154 阅读 · 0 评论 -
OpenGL 编程指南(第八版)学习笔记——1 OpenGL概述
OpenGL 编程指南(第八版)学习笔记——1 OpenGL概述转载自 https://blog.youkuaiyun.com/wlk1229/article/details/79394115什么是OpenGLOpenGL是一种应用程序编程接口 API.OpenGL被设计为一个现代化的 / 硬件无关的接口.一个用来渲染图像的OpenGL程序需要执行的主要操作是:从OpenGL的几何图元中设...原创 2018-09-18 20:11:35 · 192 阅读 · 0 评论 -
OpenGL 编程指南(第八版)学习笔记——2 着色器基础
OpenGL 编程指南(第八版)学习笔记——2 着色器基础GLSL在notepad与VS2015中扩展:https://blog.youkuaiyun.com/wlk1229/article/details/79405682GLSL(GL Shading Language)使用GLSL构建着色器#version 330 corevoid main(){ // 在这里编写代码}变量...原创 2018-09-19 20:42:13 · 280 阅读 · 0 评论 -
OpenGL 编程指南(第八版)学习笔记——3绘制方式
OpenGL 编程指南(第八版)学习笔记——3绘制方式OpenGL的主要作用是将图元渲染到帧缓存中.为了实现这个要求,需要将复杂的物体分解为图元的形状(包括点,线,三角形)当它们分布密度足够高时,就可以表达2D以及3D的物体形状OpenGL图元点点实际不占面积,因此在GL中它是通过显示屏上的一个四边区域来模拟的.void glPointSize(GLfloat size); ...原创 2018-09-19 22:34:56 · 266 阅读 · 0 评论 -
NIVIDIA 硬解码学习3
NIVIDIA 硬解码学习3 今天主要学习的 Demo 是AppDecGL This sample application illustrates the decoding of media file and display of decoded framesin a window. This is done by CUDA interop with OpenGL. C...原创 2018-09-14 23:00:55 · 1682 阅读 · 0 评论 -
OpenGL 编程指南(第八版)学习笔记——4颜色 像素和帧缓存
OpenGL 编程指南(第八版)学习笔记——4颜色 像素和帧缓存缓存及其用途所有图形程序的共同目标,在屏幕上绘制图像(或者绘制到屏幕的一处缓存中)。帧缓存(通常就是屏幕)是由矩形的像素数组组成的,每个像素都可以在图像对应的点上显示一块方形的颜色值。颜色缓存只是记录像素信息的多个缓存中的一个。实际上,一个像素可能会关联多个颜色缓存,也就是渲染缓存(renderbuffer)。OpenGL...原创 2018-09-20 11:38:59 · 715 阅读 · 0 评论 -
LearnOpenGL | 你好,窗口
#include "glad/glad.h"#include "glfw3.h"#include <iostream>using namespace std;// 处理 exit键盘输入void processInput(GLFWwindow *window) { if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_...原创 2018-09-20 22:52:33 · 184 阅读 · 0 评论 -
LearnOpenGL | VAO VBO EBO
LearnOpenGL | VAO VBO EBOhttps://learnopengl-cn.github.io/01 Getting started/04 Hello Triangle/https://blog.youkuaiyun.com/dcrmg/article/details/53556664顶点缓冲对象(Vertex Buffer Objects,VBO)顶点缓冲对象VBO是在显卡...原创 2018-09-21 09:24:45 · 325 阅读 · 0 评论 -
LearnOpenGL | GLSL
LearnOpenGL | GLSL着色器语言输入与输出GLSL定义 in 和 out 关键字作为输入输出顶点着色器应该接受一种特殊形式的输入.否则回效率低下.顶点着色器直接从顶点数据中取数据.为了定义顶点数据该如何管理,用 location 这一元数据指定输入变量.主要GPU上配置顶点属性.layout(location=0) ...也可以通过OpenGL中的...原创 2018-09-21 11:49:24 · 207 阅读 · 0 评论 -
LearnOpenGL | Texture
LearnOpenGL | Texture纹理https://learnopengl-cn.github.io/01 Getting started/06 Textures/#_8纹理用来增加物体细,可以是2D的图片,也可以是1D和2D的纹理除了图片以外,纹理也可以被用来存储大量的数据,这些数据可以发送到着色器上。纹理坐标为了能将纹理映射到三角形上,需要指定三角形的每个顶点各...原创 2018-09-21 21:49:14 · 214 阅读 · 0 评论 -
OpenGL ES 和 EGL 介绍
转载自OpenGL ES 和 EGL 介绍OpenGL ES EGL介绍OpenGL ES什么是 OpenGL ES?OpenGL ES(OpenGL for Embedded Systems)是 OpenGL 三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,各显卡制造商和系统制造商来实现这组 API。EGL什么是什么是 EGL?EGL 是 OpenGL ES...转载 2019-07-10 15:32:46 · 3953 阅读 · 0 评论