- 博客(16)
- 收藏
- 关注
原创 初学OpenGL(7):颜色和光照
1、颜色 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。当我们在OpenGL中创建一个光源时,我们希望给光源一个颜色。当我们把光源的颜色与物体的颜色值相乘,所得到的就是这个物体所反射的颜色(也就是我们所感知到的颜色)。glm::vec3 lightColor(1.0f, 1.0f, 1.0f);glm::vec3 toyC...
2018-05-03 23:04:48
2963
原创 初学OpenGL(6):坐标系统
1、概述 对我们而言比较重要的共有5个坐标系统:局部空间(Local Space,或者称为物体空间(Object Space))世界空间(World Space)观察空间(View Space,或者称为视觉空间(Eye Space))裁剪空间(Clip Space)屏幕空间(Screen Space) 为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别...
2018-05-01 20:09:59
339
原创 初学OpenGL(5):变换
1、坐标变换缩放: 我们下面会构造一个变换矩阵来为我们提供缩放功能。我们从单位矩阵了解到,每个对角线元素会分别与向量的对应元素相乘。如果我们把1变为3会怎样?这样子的话,我们就把向量的每个元素乘以3了,这事实上就把向量缩放3倍。如果我们把缩放变量表示为(S1,S2,S3)我们可以为任意向量(x,y,z)定义一个缩放矩阵:位移: 向量的w分量也叫齐次坐标。想要从齐次向量得到3D向...
2018-05-01 16:49:30
379
原创 初学OpenGL(4):纹理
1、纹理是什么 纹理(Texture)是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。因为我们可以在一张图片上插入非常多的细节,这样就可以让物体非常精细而不用指定额外的顶点。2、纹理的映射(Map) 为了把纹理映射到我们的图形上,需要给每个顶点关联一个纹理坐标(T...
2018-05-01 15:47:20
2511
2
原创 初学OpenGL(3):着色器
一、简述 着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。二、GLSL 着色器是使用一种叫GLSL的类C语言写成的。GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特...
2018-04-17 22:47:34
405
原创 初学OpenGL(2):绘制三角形
一、着色器 在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。 图形渲染管线接受一...
2018-04-17 20:34:58
3007
原创 初学OpenGL(1):准备工作
因为实验室要做一个三维眼球重建的项目,老板让我先熟悉一下OpenGL的编程,以下内容参考了LearnOpenGL CN,github地址戳我。 一、环境配置 GLFW+GLAD+VS2017,具体流程参考上面的教程。 GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。 ...
2018-04-15 11:40:28
413
原创 我的tensorflow学习笔记(11):RNN
一、从前馈网络到循环神经网络(Recurrent Neural Network,RNN) 尽管此前的前馈网络和卷积网络表现出色,但它们仍有很大的局限性。对于人类而言,输入不仅仅是离散的数据点,而是信息量巨大的序列,并且随时间变化。我们的语言、电视节目都是连续的,所以问题是,如何让我们的模型能够像人类一样处理复杂的输入序列。RNN正是为此而设计的。 RNN与前馈网络一样由运算单元,即神经...
2018-03-17 11:05:44
314
原创 我的tensorflow学习笔记(10):style transfer
一、概述 style transfer是CNN的一个相当有趣的应用,它的特别之处在于训练对象是图片而不是权重。详细介绍可以参考下面两篇博客:谈谈图像的style transfer(一)谈谈图像的style transfer(二) 简单来说,现在有两张图片:content image和style image,我们需要做的就是找到一张图片,让它的内容(content)与content im...
2018-03-15 19:50:05
1013
原创 我的tensorflow学习笔记(9):tf中的CNN
一、直接卷积 卷积在深度学习中非常常见。并且实际上我们可以不经过训练直接使用卷积,一个常见的用途是进行图片模糊: 为了在tensorflow中使用卷积,我们可以使用几个内置图层。你可以使用一维卷积(输入为2维),二维卷积(输入为3维),三维卷积(输入为4维)。我们主要关注二维卷积,关于其他维度卷积的介绍,参考runhani’s StackOverflow answer 。tf....
2018-03-12 09:36:25
1437
原创 我的tensorflow学习笔记(8):cnn简介
参考文档:CS231n一、概述 卷积神经网络(Convolutional Neural Network,CNN)与原始的fully connect neural network相似,由具有可训练的权重和偏差的神经元组成,每个神经元接受输入,执行点积,有选择性的用一个非线性函数处理它。整个网络仍表现为一个单一可微函数,并在最后一层具有损失函数。不同之处在于,CNN明确假定输入是图片,这使我们可...
2018-03-11 15:34:48
534
原创 我的tensorflow学习笔记(7):简单总结
一、如何建立tensorflow模型第一步:构建图1、得到输入数据(dataset或placeholder)2、定义权重(weight)和偏移(bias)3、定义推论模型(inference model)4、定义loss function5、定义Optimizer第二步:执行计算1、初始化所有变量2、初始化training data中的iterator/feed3、使用inference mode...
2018-03-10 10:20:58
554
原创 我的tensorflow学习笔记(6):word2vec,variable sharing
一、如何代表文字数据 one-hot representation:由0和1构成,容易导致过大的维度,计算低效。并且无法识别语义内容,如近义词。 word embedding(词嵌入):根据一个词的上下文去代表一个单词。相比上面的one-hot,有维度低、连续向量、能够识别语义信息等优点。参考知乎:有谁可以解释一下word embedding? word2vec是由Tomas M...
2018-03-08 17:18:28
400
原创 我的tensorflow学习笔记(4):logistic regression
logistic regression1、MNIST数据集 MNIST database(Mixed National Institute of Standards and Technology database)是手写数字的数据集。(摘自MNIST机器学习入门) 每一个MNIST数据单元有两部分组成:一张包含手写数字的图片和一个对应的标签。我们把这些图片设为“xs”,把这些标签设为“...
2018-03-04 16:32:08
1869
1
原创 我的tensorflow学习笔记(3)
一、小技巧1、查看tensorflow安装路径import tensorflow as tftf.__path__ #查看路径tf.__version__ #查看版本二、linear regression1、源码来自stanford-tensorflow-tutorials 03_linreg2、在自己写的时候发现一个问题,即tf.add与+的区别。百度后的结果: tf.add(a,b)...
2018-03-04 13:36:26
578
原创 我的tensorflow学习笔记(1)
主要参考:stanfordCS20 ;tensorflow官方文档一、graph和session tensorflow将运算的定义与执行分开,采用graph(图)来表示计算任务,在session(会话)中执行图中定义的操作。二、tensor tensorflow中使用tensor(张量)来表示数据。所谓的tensor,就是n维数组。 0-d:scalar,数字;1-d:vecto...
2018-03-03 16:47:15
310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人