- 博客(43)
- 资源 (27)
- 问答 (1)
- 收藏
- 关注
原创 LearnGL - 学习笔记目录
有些人可能觉得 OpenGL 要过时了,种种限制(没有多线程?这个我还没去确定,之前看到一个 CTO 这么说的,说是时候抛弃 OpenGL ,开始 Vulkan,Metal,或是 DirectX)。其实我觉得,学习嘛,要学习他的原理,不要只停留在 API 的使用(这也是多年前我浪费了很多年的地方)。只要原理学好,其他架构,我们可以详细的看,但你会发现很多都是差不多,这样你在学习其他系统的时候会快速非常多。因为原理差不多,只是设计有一丢丢差异。而我之所以选择学习 OpenGL 系列,因为资料比较多
2020-06-05 21:33:25 1069
原创 LearnGL - 08.1 - Camera - GLM 版
文章目录ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上些篇:LearnGL - 08 - Camera - linmath.h 版,了解OpenGL 的一些几何变换,其中包含了摄像机的封装。LearnGL - 08.0.1 - Camera - GLM版前置篇,了解 GLM 的简单介绍,是很适合 OpenGL 数学库使用的。这一篇:我们还是实现一样的功能,只不过是:GLM 线性数学库版本的(这个库不有线性代数库,也包含了其他的)。Refer
2020-06-30 11:26:57 427
原创 LearnGL - 08.0.1 - Camera - GLM版前置篇
文章目录GLM 简单介绍Git 仓库使用ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 08 - Camera - linmath.h 版,了解OpenGL 的一些几何变换,其中包含了摄像机的封装。这一篇:因为 上次封装使用的 Camera 使用的线性代数库 是: linmath.h ,使用起来很不方便,所以这边我们先了一下:GLM,后面再实现一篇 GLM 的 Camera,并将之前所有用到 linmath.h 的地方的内容,都
2020-06-29 23:37:58 283
原创 LearnGL - 08 - Camera - linmath.h 版
文章目录ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 07 - DrawCube - 旋转Cube、深度缓存/测试,了解如何绘制一个Cube立方体、旋转3D 几何体、深度缓存、深度测试都了一些基础的认识。这一篇搬砖:矩阵来实现 摄像机/镜头 类,便于测试项目中对镜头的:位移,和部分轴向的旋转。看了一下 摄像机 这篇实现的够详细的,再搬砖一下。References摄像机...
2020-06-29 19:57:57 673
原创 LearnGL - 07 - DrawCube - 旋转Cube、深度缓存/测试
文章目录构造顶点、索引、uv数据绘制 36 个索引对应的顶点让 Cube 旋转起来绘制效果深度测试开启深度测试设置深度比较枚举清理缓存再次绘制效果ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上些篇:LearnGL - 06 - Matrix - 矩阵01,了解了矩阵就是定义一个坐标空间的轴向LearnGL - 06.1 - Matrix - 矩阵02,了解了一些矩阵的乘法的维度限制LearnGL - 06.2 - Matrix - 矩阵03,了解
2020-06-28 16:58:36 931
原创 LearnGL - 06.2 - Matrix - 矩阵03 - 逆矩阵、行列式、伴随矩阵、余子式、代数余子式、练习
文章目录逆矩阵-inverse matrix行列式-determinant伴随矩阵-adjugate、adjoint matrix余子式-Cofactor、Minor余子项余子式代数余子式-Algebraic cofactor、Minor伴随矩阵-二维的例子ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上些篇:LearnGL - 06 - Matrix - 矩阵01,了解了矩阵就是定义一个坐标空间的轴向LearnGL - 06.1 - Matrix
2020-06-24 22:15:05 1842
原创 CG中DCC什么是?
CG:Computer Graphics,计算机图形/图像,这是大家熟悉的。那什么是DCC?我相信疑惑的你肯定也去搜索过。因为这是一个术语,或是一个描述的缩写。DCC 的全写是:Digital Content Create 或是 Digital Content Creating,就是数字内容创建,前者是一个动作结尾,后者现在进行时形容词结尾的意思。我是在CryEngine的一篇手机版的文档上在到的:DCC Tool Basics - DCC 工具基础,这篇文档是2009年写的,年代久远。你也
2020-06-23 10:39:28 10290
原创 LearnGL - 06.1 - Matrix - 矩阵02 - 向量空间、向量空间的维度、为何矩阵乘法要有 [M x N] * [N * P] 的 N 要相等的限制
文章目录矩阵乘法为何有维度限制?什么是向量空间?什么是向量空间的维度?理解为何有这个限制LearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 06 - Matrix - 矩阵01,了解了矩阵就是定义一个坐标空间的轴向这一篇:这篇再讲一丢丢关于矩阵的乘法内容,这些都是个人看的零散资料总结的内容。矩阵乘法为何有维度限制?就是 3x3 不能和 4x1 的矩阵相乘。但是3x3 的矩阵可以和 3x1 的矩阵向量。第一次遇到这个限制的同学,在看教科书上可能只会
2020-06-22 15:43:48 347
原创 LearnGL - 06 - Matrix - 矩阵01 - 齐次坐标、缩放、旋转矩阵(欧拉 Euler 角)
文章目录点在坐标系下的定位3x3扩展4x4添加偏移量齐次坐标缩放矩阵旋转矩阵在 Shader 中实现一些旋转旋转顶点运行效果旋转纹理 UV运行效果总结ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 05.3 - 封装 Main.cpp 中重复 GLFW代码,让新建的项目更方便的开展。这一篇:这篇我们在讲一丢丢关于矩阵的内容。本来我不想写关于矩阵的内容。因为要排版很多内容(Katex挺多),-_-!!!,但是想了一下,还是加上
2020-06-19 22:20:06 1268
原创 LearnGL - 05.3 - 封装 Main.cpp 中重复 GLFW代码
文章目录my_init.hmy_gl_check_error.hmy_simple_load_tex.h外部使用LearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 05.2 - Texture - 实现类似2D UI流光动画。这一篇:到这篇,我终于忍不了了,太多重复代码了。所以我们将一些可复用代码整理一下,一些通用型比较强的功能都统统封装一下。这次先提取 Main 中的重复代码。后面再提炼:GameObject、Mesh、Camera、Mater
2020-06-16 21:13:12 226
原创 LearnGL - 05.2 - Texture - 实现类似2D UI流光动画
文章目录思路着色器创建三个纹理对象绑定到纹理单元加载三个纹理对象设置采样器采样对应的纹理单元传入 time 时间控制 uv 纹理坐标动画运行效果完整代码LearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 05.1 - Texture Wrap Mode,了解到可以使用纹理坐标来滚动动画。这一篇:我们使用纹理坐标滚动动画 + 多纹理,实现类似 2D UI 流光动画实现过程与思路的参考可以查看我之前写的:Unity Shader - 实现类似UI遮罩流
2020-06-16 16:54:18 447
原创 LearnGL - 05.1 - Texture Wrap Mode
文章目录LearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 05 - Texture,对纹理的使用有了一个大致的了解。这一篇:我们将记录在纹理上做一些有趣的应用:了解 纹理作为的 Wrap Mode使用多张纹理,对部分纹理坐标移动,部分纹理做遮罩,实现:类似2D UI流光效果...
2020-06-16 15:24:17 692
原创 LearnGL - 05 - Texture
文章目录为何要有纹理?纹理坐标ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 04.2 - 封装 ShaderProgram 类,对 Shader、Program 封装了类,便于后续使用。这一篇:继续我们的 OpenGL 学习主线内容:Texture 纹理。为何要有纹理?想让我们的几何体(模型)看起来更丰富,除了之前我们说过的 添加顶点(由 三角形 到 四边形,再多一些就甚至可以是原型,甚至是各种几何体,只要顶点数量足够多
2020-06-15 22:34:48 1097
原创 LearnGL - 04.2 - 封装 ShaderProgram 类
文章目录使用方式直接加载源码字符串直接加载源码文件路径完整源码shader.h - ShaderProgramMain.cpp 调用 ShaderProgram总结ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。前面几篇,我们都用到多多少少的 shader。其中 shader 代码中的编译、检测编译错误、附加着色器、链接程序、链接错误检测、等,可重用新比较高,所以封装起来会减少后续的劳动力。先在之前的文章有介绍的:Dependencies/Includ
2020-06-12 23:48:05 604
原创 LearnGL - 04.1 - DrawDoubleQuad - UsingVAO
文章目录ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 03 - DrawQuad,学会了如何使用 EBO/IBO 画一个四边形。这一篇:使用 VAO 来绘制两个不同材质的 Quad(Quadrilateral) 四边形。ReferencesOpenGL.Vertex Array Object (VAO)....
2020-06-11 18:44:45 317
原创 LearnGL - 04 - VAO 探究
文章目录VAO 结构GL LIKE 测试项目gl_like.hgl_like_gv.hgl_like.cppMain.cpp运行效果LearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 03 - DrawQuad - VBO/EBO,学会了如何使用 EBO/IBO 画一个四边形。这一篇:我将使用C++写个类似 OpenGL 在使用 VAO 期间的使用:VAO 结构VAO的结果差不多就如下图:GL LIKE 测试项目我模仿 OpenGL 一部分
2020-06-11 00:21:40 365
原创 LearnGL - 03 - DrawQuad - VBO/EBO - 理解 CW, CCW 的正背面
文章目录如何绘制?先画第一个直角三角形绘制效果再画第二个直角三角形绘制效果查看正面的顺/逆时针、ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上一篇:LearnGL - 02 - DrawTriangle、LearnGL - 02.1 - DrawTriangle_Extension,学会了如果画一个三角形。这一篇:画一个 Quad(Quadrilateral) 四边形。如何绘制?之前已经画了一个三角形了。那么画四边形就简单多了,两个三角形组合成一
2020-06-08 11:26:25 805
原创 LearnGL - 02.1 - DrawTriangle_Extension - VBO/Shader
文章目录LearnGL - 学习笔记目录本人才疏学浅,如果什么错误,望不吝指出。上一篇:LearnGL - 02 - DrawTriangle,学会了如果画一个最最基本的三角形。这一篇:我将在上一篇简单的例子的基本上添加一些功能,便于学习。...
2020-06-07 00:10:17 458
原创 LearnGL - 02 - DrawTriangle - VBO/Shader
文章目录ReferencesLearnGL - 学习笔记目录在OpenGL中,我们可以看到很多相关的博客,或是开源项目中都可以看到,VAO,VBO,EBO/IBO,到底是什么鬼。这几个玩意都是一些英文的缩写:VAO : Vertex Array Object,顶点数组对象VBO : Vertex Buffer Object, 顶点缓存对象EBO/IBO : Element/Index Buffer Object, 索引缓存对象References 文章也有讲到。关于 OpenGL 渲染管
2020-06-05 21:42:26 768
原创 LearnGL - 01.1 - OpenGL 概述 & 管线概述
文章目录什么是OpenGLOpenGL 命名规律OpenGL 渲染管线准备向 OpenGL 传输数据将数据传输到 OpenGL顶点着色细分着色几何着色图元装配剪切光栅化片元着色逐片元的操作ResourcesReferencesLearnGL - 学习笔记目录本人才疏学浅,如果什么错误,望不吝指出。下面部分内容引用《OpenGL 编程指南》 第9版的内容。什么是OpenGLOpenGL 是一种应用程序编程接口(Application Programming Interface, API),它是一种可
2020-06-05 21:33:58 422 2
原创 LearnGL - 01 - CreateWindow
文章目录GLFWCMakeBuilding GLFWGLADUsing GLFW、GLADReferences学习资料参考了:LearnOpenGL.CN,这也是我目前觉得最好的资料,而且这个有中文翻译的版本。OpenGL的学习资料所搜看过一些,要么是收费,要么是教程质量没那么好。(在线资料收费就不太应该,完全是阻碍知识传播,你编辑好发布成书籍拿去卖都还好,大家都愿意的)学习目的:工作需要,之前面试有也考量的点;顺便看看OpenGL的一些简单使用;我之前自学图形学是在去年2019.5月初
2020-06-05 21:33:43 549
翻译 OpenGL API - glBufferData, glNamedBufferData
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBufferData.xhtmlOpenGL API - 笔记汇总名称glBufferData, glNamedBufferData ---- 创建与初始化缓存对象的储存数据。原型void glBufferData( GLenum target, GLsizeiptr size, const void * data,
2020-06-05 21:27:41 1528
翻译 OpenGL API - glBindBuffer
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBindBuffer.xhtmlOpenGL API - 笔记汇总名称glBindBuffer ---- 绑定带名称的缓存对象。原型void glBindBuffer( GLenum target, GLuint buffer);参数target绑定指定的缓存对象,绑定的类型必须是以下表格的:Buffer Binding Targ
2020-06-05 21:27:35 632
翻译 OpenGL API - glGenBuffers
文章目录名称原型参数描述https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGenBuffers.xhtmlOpenGL API - 笔记汇总名称glGenBuffers ---- 生成缓存对象的名称原型void glGenBuffers( GLsizei n, GLuint * buffers);参数n指定要生成的缓存对象名称的编号。buffers指定要生成用于储存缓存对象名称的数组。描述glGenBuffe
2020-06-05 21:27:28 871
翻译 OpenGL API - glClear
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glClear.xhtmlOpenGL API - 笔记汇总名称glClear ---- 清理指定的缓存。原型void glClear(GLbitfield mask);参数mask按位的“或”(OR) 的掩码来代表要清理的缓存。有三个掩码 GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, 和 GL_STE
2020-06-05 21:27:08 589
翻译 OpenGL API - glViewport
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glViewport.xhtmlOpenGL API - 笔记汇总名称glViewport ---- 设置视口。原型void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);参数x, y指定矩形视口的左下角,像素单位。初始值为 (0, 0)。
2020-06-05 21:27:03 250
翻译 OpenGL API - glDrawArrays
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glDrawArrays.xhtmlOpenGL API - 笔记汇总名称glDrawArrays ---- 从缓存数组数据中渲染图元。原型void glDrawArrays( GLenum mode, GLint first, GLsizei count);参数mode指定需要渲染什么图元。符号常量 GL_POIN
2020-06-05 21:26:58 380
翻译 OpenGL API - glGetAttribLocation
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetAttribLocation.xhtmlOpenGL API - 笔记汇总名称glGetAttribLocation ---- 返回 attribute 属性变量的 location(索引值)。原型GLint glGetAttribLocation( GLuint program, const GLchar *name);
2020-06-05 21:26:51 1183
翻译 OpenGL API - glEnableVertexAttribArray
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glEnableVertexAttribArray.xhtmlOpenGL API - 笔记汇总名称glEnableVertexAttribArray ---- 启用 或 禁用 通用顶点 attribute 数组。原型void glEnableVertexAttribArray(GLuint index); void glDisableVertex
2020-06-05 21:26:43 2788
翻译 OpenGL API - glVertexAttribPointer
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glVertexAttribPointer.xhtmlOpenGL API - 笔记汇总名称glVertexAttribPointer ---- 定义通用的顶点 attribute 数组数据。原型void glVertexAttribPointer( GLuint index, GLint size, GLenum
2020-06-05 21:26:35 599
翻译 OpenGL API - glDeleteShader
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glDeleteShader.xhtmlOpenGL API - 笔记汇总名称glDeleteShader ---- 删除一个 shader 对象原型void glBindBuffer( GLenum target, GLuint buffer);参数target绑定指定的缓存对象,绑定的类型必须是以下表格的:Buffer Bindi
2020-06-05 21:26:27 738
翻译 OpenGL API - glUseProgram
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glUseProgram.xhtmlOpenGL API - 笔记汇总名称glUseProgram ---- 安装一个程序对象作为当前渲染状态的一部分。原型void glUseProgram(GLuint program);参数program指定带有可执行对象的程序对象句柄,用于当前渲染状态的一部分。描述glUseProgram 安装指定的
2020-06-05 21:26:20 2712
翻译 OpenGL API - glCreateProgram
文章目录名称原型描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glCreateProgram.xhtmlOpenGL API - 笔记汇总名称glCreateProgram ---- 创建着色器程序对象。原型GLuint glCreateProgram(void);描述**glCreateProgram ** 创建一个空的着色器程序对象,并返回一个可用于引用的非0值。着色器程序对象是用于附加着色器对象的。提
2020-06-05 21:26:13 1040
翻译 OpenGL API - glGetProgramInfoLog
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetProgramInfoLog.xhtmlOpenGL API - 笔记汇总名称glGetProgramInfoLog ---- 绑定带名称的缓存对象。原型void glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *length,
2020-06-05 21:25:57 638
翻译 OpenGL API - glGetProgramiv
文章目录名称原型参数描述错误注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetProgramiv.xhtmlOpenGL API - 笔记汇总名称glGetProgramiv ---- 返回程序对象参数。原型void glGetProgramiv(GLuint program, GLenum pname, GLint *params);参数program指定要查询的程序对象。p
2020-06-05 21:25:29 452
翻译 OpenGL API - glLinkProgram
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glLinkProgram.xhtmlOpenGL API - 笔记汇总名称glLinkProgram ---- 链接一个程序对象。原型void glLinkProgram(GLuint program);参数program指定要被链接的程序句柄。描述glLinkProgram 链接指定的 program 程序对象。如果有任意的 GL_
2020-06-05 21:25:18 1900
翻译 OpenGL API - glAttachShader
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glAttachShader.xhtmlOpenGL API - 笔记汇总名称glAttachShader ---- 附加一个 shader 对象到程序对象。原型void glAttachShader(GLuint program, GLuint shader);参数program指定用于接受附加着色器的程序对象。shader指
2020-06-05 21:25:05 1053
翻译 OpenGL API - glGetShaderInfoLog
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetShaderInfoLog .xhtmlOpenGL API - 笔记汇总名称glGetShaderInfoLog ---- 返回 shader 对象的日志信息。原型void glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length
2020-06-05 21:24:54 787
翻译 OpenGL API - glGetShaderiv
文章目录名称原型参数描述注意错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetShaderiv.xhtmlOpenGL API - 笔记汇总名称glGetShaderiv ---- 从一个 shader 对象中返回一个 指定 pname 的 params 参数。原型void glGetShaderiv( GLuint shader, GLenum pname, GLint *params)
2020-06-05 21:24:45 459
翻译 OpenGL API - glCompileShader
文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glCompileShader.xhtmlOpenGL API - 笔记汇总名称glCompileShader ---- 编译 shader 对象。原型void glCompileShader(GLuint shader);参数shader指定要编译的 shader 对象。描述glCompileShader 编译指定的储存有字符串源码的 s
2020-06-05 21:24:36 1802
正则表达式教程World2007版
2011-12-29
原创:C# xna 3.1 小游戏 Beta 1.1 已完成装备系统
2011-04-18
原创:C# xna 3.1 小游戏 Beta 1.0
2011-04-14
WebCrack 4.0 教程DOC
2010-11-29
Jave_Study_08_KeysRotateYXAxis C# + Managed DirectX
2010-08-21
Jave_Study_07_RotateTriangleContinuously C# + Managed DirectX
2010-08-20
Jave_Study_06_RotateTriangle C# + Managed DirectX
2010-08-20
Jave_Study_05_WVPP_App C# + Managed DirectX
2010-08-20
Jave_Study_04_DrawByVertexBuffer C# + Managed DirectX
2010-08-19
Jave_Study_03_DrawPointLineTriangle C# + Managed DirectX
2010-08-19
Jave_Study_02_DrawTriangle C# + Managed DirectX
2010-08-19
Jave_Study_01_CreateDeviceAndRender C# + Managed DirectX
2010-08-19
C# NPOI FarPoint Win Spread 报表制作工具
2010-04-28
C# Socket ET 聊天系统之 客户端 (新手入门级)
2010-04-28
C# Socket ET 聊天系统之 毕业论文 (新手入门级)
2010-04-28
C# Socket ET 聊天系统之 数据库 (新手入门级)
2010-04-28
C# Socket ET 聊天系统之 服务端 (新手入门级)
2010-04-28
高仿WinXp标准计算器.
2009-09-29
C# 高仿WinXP计算器四则运算,附加公式,算式功能.
2009-09-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人