图形学
文章平均质量分 64
sukhoi27smk
学习是为了探索这个世界的本质
展开
-
Logistic Regression:最基础的神经网络
一、什么是logictic regression下面的图是Andrew Ng提供的一个用logistic regression来识别主子的图片的算法结构示意图:「左边」的「x0到x12287「是输入(input),我们称之为」特征(feather)」,常常用「列向量x(i)「来表示(这里的i代表第i个训练样本,下面在只讨论一个样本的时候,就暂时省略这个标记,免得看晕了-_-|||),在图片识别中,特征通常是图片的像素值,把所有的像素值排成一个序列就是输入特征,每一个特征都有自己的一个」权重(we转载 2021-10-27 17:15:59 · 536 阅读 · 0 评论 -
从此明白了卷积神经网络(CNN)
卷积神经网络是一种曾经让我无论如何也无法弄明白的东西,主要是名字就太“高级”了,网上的各种各样的文章来介绍“什么是卷积”尤为让人受不了。听了吴恩达的网课之后,豁然开朗,终于搞明白了这个东西是什么和为什么。我这里大概会用6~7篇文章来讲解CNN并实现一些有趣的应用。看完之后大家应该可以自己动手做一些自己喜欢的事儿了。一、引子:边界检测我们来看一个最简单的例子:“边界检测(edge detection)”,假设我们有这样的一张图片,大小8×8:图片中的数字代表该位置的像素值,我们知道,像素值越大转载 2021-10-27 13:23:12 · 340 阅读 · 0 评论 -
二维坐标系的转换
旋转平移加旋转转载 2021-07-09 18:41:35 · 347 阅读 · 0 评论 -
顶点缺失问题
1. 发送缓冲区过小,模型过大,接收端接收缓冲区太小,并且接收数据与数据处理在一个线程,导致接收速度过慢。最终造成,发送缓冲区被撑爆,数据丢失。2. U3D端对单个mesh的顶点限制在了65000个。3. 对于超过65000个顶点的mesh,没有计算余数。4. 不同机器不同显卡抓取的顶点数据并不一致,有可能有10%到20%的差距。...原创 2021-07-09 10:01:59 · 334 阅读 · 0 评论 -
法线和法线贴图
法线和法线贴图法线和法线贴图是否作为单独的章节讲解,我是有过犹豫的。其实这部分的内容并没有那么多,也不至于说涉及到非常牛逼的图形学原理。但是,最终我还是决定把这部分列为一个单章,主要理由有两点:1、法线无处不在,这是图形学基础中的基础。2、法线贴图,凹凸图,位移图等等,在图形学历史上有着比较重要的位置,在很多图形学的架构中都有应用,典型的例如延迟渲染架构。法线法线,英文名normal。首先,要理解点法线和面法线。现在资料烂大街的年代,去寻找这个答案是比较容易的,估计连百度都能找到还不转载 2021-06-30 12:48:31 · 1130 阅读 · 0 评论 -
OpenGL-坐标系
笛卡尔坐标系二维绘图:笛卡尔坐标有一个X轴和一个Y轴组成,X轴为水平方向,Y轴为垂直方向,X和Y相互垂直二维笛卡尔坐标系三维绘图:笛卡尔坐标多了一个Z轴,Z轴同时垂直于X和Y轴。Z轴的实际意义代表着三维物体的深度三维笛卡尔坐标系坐标裁剪:窗口是以像素为单位进行度量的。开始在窗口中绘制点、线和形状之前,要把指定的笛卡尔坐标对翻译成屏幕坐标,我们可以通过指定占据窗口的笛卡尔区域来转换,这个区域叫做裁剪区域。PS:x,y,z,w:指的不是四维,其中w指的是缩放因子视口在..转载 2021-03-09 09:18:29 · 555 阅读 · 0 评论 -
惯性坐标系
转载 2020-03-02 11:16:23 · 900 阅读 · 0 评论 -
【Modern OpenGL】前言
说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。 强烈推荐原文,无论是内容还是排版。 原文链接 本文地址: http://blog.csdn.net/aganlengzi/article/details/50354140欢迎来到OpenGL欢迎来到OpenGL学习之旅,无论你是为学术研究,为了找工作还是仅仅为了兴趣,这个网站(原网站)都会基于现代core-...转载 2018-08-16 07:06:20 · 179 阅读 · 0 评论 -
OpenGL版本与OpenGL扩展机制
1 opengl的版本区别(在opengl官方文档中有详细说明) 针对Opengl不同版本的升级是主要是扩展指令集。 现在版本是4.0啦1.1 opengl1.11995年,SGI推出了更为完善的OpenGL 1.1版本。OpenGL 1.1的性能比1.0版提高甚多。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指...转载 2018-08-19 07:40:01 · 631 阅读 · 0 评论 -
OpenGL 4.0 Tutorials 第三章:初始化 OpenGL 4.0
原文地址: http://www.rastertek.com/gl40tut03.html Tutorial 3: Initializing OpenGL 4.0第三章:初始化 OpenGL 4.0 This tutorial will be the first real introduction to working with OpenGL 4.0. We will ...转载 2018-09-07 11:30:54 · 588 阅读 · 0 评论 -
【OpenGL】详解第一个OpenGL程序
写在前面 OpenGL能做的事情太多了!很多程序也看起来很复杂。很多人感觉OpenGL晦涩难懂,原因大多是被OpenGL里面各种语句搞得头大,一会gen一下,一会bind一下,一会又active一下。搞到最后都不知道自己在干嘛,更有可能因为某一步的顺序错误导致最后渲染出错,又或者觉得记下这些操作的顺序是非常烦人的一件事。那么,OpenGL为什么会长成这个样子呢?这篇文章旨在通过一个最简单的...转载 2018-09-07 14:22:21 · 271 阅读 · 0 评论 -
创建mip纹理链
(1)我们要做的是,根据原始纹理T0创建一系列的纹理(通常使用平均滤波):T1、T2…Tn,其中每个纹理的大小都是前一个纹理的1/4,即长度和宽度减半,如图12.40所示。要根据前一个mip纹理计算当前纹理中纹素的值,可以使用平均滤波器,即在RGB空间中,计算纹素(x,y)、(x+1,y)、(x+1,y+1)和(x,y+1)的平均值,然后将结果写入到当前纹理中,如图12.41所示。 ...转载 2019-05-13 17:21:08 · 556 阅读 · 0 评论 -
OpenGL 库 简介
OpenGL 库 简介 OpenGL库函数的命名方式为:<库前缀><根命令><可选的参数个数><可选的参数类型>。库前缀有gl、glu、aux、glut、wgl、glx、agl等等,表示该函数属于OpenGL哪个库。参数的类型:I代表int型,f代表float型,d代表double型,u代表无符号整型。例如glVertex3fv(...转载 2018-08-18 07:18:09 · 829 阅读 · 0 评论 -
【Modern OpenGL】纹理 Textures
说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。强烈推荐原文,无论是内容还是排版。 原文链接本文地址: http://blog.csdn.net/aganlengzi/article/details/50421006纹理 Textures为了使我们创建的对象(比如说三角形)更加生动,我们已经学习了为对象的每个像素点设置不同的颜色来使它变得更加有趣。但是,在...转载 2018-07-16 07:52:03 · 280 阅读 · 0 评论 -
OpenGL中各种坐标系的理解
OPENGL坐标系可分为:世界坐标系和当前绘图坐标系。 世界坐标系:在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的。你面对 屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)到(1,1),即屏幕左下角坐标为(-1,-1),右上角转载 2017-03-18 14:34:04 · 1201 阅读 · 0 评论 -
几个图形学的图
转载 2018-04-20 23:21:10 · 403 阅读 · 0 评论 -
OpenGL: 实现立体显示
立体显示原理:设没有立体显示的模型视图矩阵ModelView为Mv,投影矩阵为Mp,则、物体空间的任何一点为P,则变换到屏幕坐标P*=Mp×Mv×P;注意前面已经说过opengl里面坐标列优先,所以矩阵都是右乘。左眼和右眼的变换都是由中间的变换矩阵变换而来,则立体显示中左眼的变换矩阵公式为:P(L)*=Ms(L) × Mp(L) × Mt(L) × Mv(L) × P;右眼的矩阵变换公式为:P(R...转载 2018-05-13 16:59:09 · 2380 阅读 · 0 评论 -
【OpenGL】向Shader中传递数据
传递顶点属性信息之前讲过,vertex shader会被每个顶点调用,通常一个顶点会包含很多信息,例如顶点坐标、顶点法向量、纹理坐标等等,我们称这些信息为顶点的属性。在之前的OpenGL版本里,每个属性都对应了一个特定的通道,我们使用glVertex,glTexCoord,,glNormal(或者通过访问指针函数glVertexPointer, glTexCoordPointer, orglNor...转载 2018-07-09 08:21:08 · 929 阅读 · 0 评论 -
【OpenGL】GLSL中的函数和子程序(subroutines)
这篇文章里讲一下在GLSL如何使用函数和子程序(subroutines)。在GLSL中使用函数GLSL支持函数,它们的语法结构和C很相似。但是调用约定会有所不同。下面,我们以一个普通的ADS(ambient,diffuse,specular)shader为例,熟悉一下GLSL中函数的用法。Vertex Shader:#version 400layout (location = 0)in vec3 ...转载 2018-07-10 07:33:41 · 469 阅读 · 0 评论 -
【Modern OpenGL】转换 Transformations
说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。强烈推荐原文,无论是内容还是排版。 原文链接本文地址: http://blog.csdn.net/aganlengzi/article/details/50421159转换 Transformations我们已经学会了怎样创建对象,并且学会利用着色或者纹理使他们呈现出表面细节,但是它们还并不是十分有趣,因为它...转载 2018-07-17 07:48:02 · 244 阅读 · 0 评论 -
【Modern OpenGL】坐标系统 Coordinate Systems
说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。强烈推荐原文,无论是内容还是排版。 原文链接本文地址: http://blog.csdn.net/aganlengzi/article/details/50448453坐标系统 Coordinate Systems在上一次教程中,我们学习了怎样利用转换矩阵来帮助我们完成基于点的转换(缩放、平移和旋转)。前面已...转载 2018-07-17 07:55:44 · 570 阅读 · 0 评论 -
【Modern OpenGL】第一个三角形
>说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。>强烈推荐原文,无论是内容还是排版。 [原文链接](http://learnopengl.com/#!Getting-started/OpenGL)本文地址:http://blog.csdn.net/aganlengzi/article/details/50354237 并不简单的三角形绘制在OpenGL的世界...转载 2018-07-11 07:51:24 · 538 阅读 · 0 评论 -
【Modern OpenGL】摄像机系统 Camera
说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。 强烈推荐原文,无论是内容还是排版。 原文链接 本文地址:http://blog.csdn.net/aganlengzi/article/details/50448469摄像机 Camera在前面的教程中,我们讨论了视口矩阵和我们可以怎样利用视口矩阵让绘制的场景移动(我们在上次教程中成功将那个二维平面稍稍向后...转载 2018-07-18 21:47:34 · 482 阅读 · 0 评论 -
【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形
以前都是用Cg的,现在改用GLSL,又要重新学,不过两种语言很多都是相通的。下面的例子是实现绘制一个三角形的简单程序。采用了VBO(veretx buffer object)、VAO(vertex array object)等OpenGL的一些新特性。越往后发展,可编程管线肯定是大势所趋,OpenGL里原来的一些固定管线的内容肯定会被废弃掉。所以从现在开始写程序就要养成使用新特性、采用可编程管线技...转载 2018-07-14 08:23:04 · 351 阅读 · 0 评论 -
【Modern OpenGL】Shader
Shaders正如在上一篇教程中提到的,shader是在GPU中运行的小程序。如上一个教程中实现的最简单的vertex shader和fragment shader,一个shader基本上负责图形渲染流水线中的一个阶段的功能。从根本上来说,shader就是将输入转化成输出的操作。而且,它们之间是独立的,除了以输入和输出方式外,他们之间不允许进行通信。上一篇教程中我们仅仅是知道了关于shader最基...转载 2018-07-14 08:26:31 · 1499 阅读 · 0 评论 -
【Modern OpenGL】OpenGL简介
说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。 强烈推荐原文,无论是内容还是排版。 原文链接 本文地址: http://blog.csdn.net/aganlengzi/article/details/50354162OpenGL在真正开始我们的探索之旅时,我们应该首先知道:OpenGL是什么。OpenGL通常被定义为一组用于操作图形和图像的应用程序编程...转载 2018-07-14 21:51:29 · 325 阅读 · 0 评论 -
矩阵运算——平移,旋转,缩放
平时开发程序,免不了要对图像做各种变换处理。有的时候变换可能比较复杂,比如平移之后又旋转,旋转之后又平移,又缩放。直接用公式计算,不但复杂,而且效率低下。这时可以借助变换矩阵和矩阵乘法,将多个变换合成一个。 最后只要用一个矩阵对每个点做一次处理就可以得到想要的结果。 另外,矩阵乘法一般有硬件支持,比如3D 图形加速卡,处理3D变换中的大量矩阵运算,比普通CPU 要快上1000倍。转载 2017-02-23 14:59:19 · 3604 阅读 · 0 评论