读书笔记/Reading Notes
文章平均质量分 83
CoderLing
这个作者很懒,什么都没留下…
展开
-
OpenGL学习笔记-2015.3.24——transform feedback缓存&粒子系统示例分析
transform feedback是OpenGL中比较酷炫的特性之一,他让客户端应用程序可以获取到渲染流水线上的顶点数据。基于这一特性实现了基于z-pass场景决策渲染技术,当然在此并没有去了解何为z-pass场景决策渲染技术,总之是一个可以有效减少渲染数据的输送。这里只是通过一个简单的例子系统,去了解transform feedback对象的使用方法。原创 2015-03-30 03:03:15 · 8170 阅读 · 1 评论 -
OpenGL 学习笔记-2015.4.18——立方体纹理映射-天空盒子-环境映射
立方体映射(cube-map)纹理是一种特殊类型的纹理,用于环境映射,使用一组图像并把他们作为立方体的面。立方体映射的6个面用正方形并且大小相同的6个子纹理表示。要从立方体纹理中采样的时候,使用的纹理坐标是3维,并且被看做来自原点的方向!方向指向用来读取纹理的立方体映射表面的位置。在这里例子中,有关于环境映射的代码,主要思想是通过观察向量和表面的法向量反射来确定采样的纹理坐标。 通过将一原创 2015-04-24 01:48:52 · 6653 阅读 · 0 评论 -
【Reading Notes】CP1-Create a basic Standard Shader
开篇每一个使用Unity的开发人员都应该熟悉components(组件)这个概念。在Unity游戏中所有的Object(对象)都包含的一定数量的的components,这些components实际影响了Oject的显示和行为。Scripts(脚本)决定了Object的行为,renderers(渲染器)决定了它们如何显示在屏幕上。Unity当中有几种渲染器,使用那种这取决于我们想要显示对象的类型。每一原创 2017-04-27 01:00:59 · 419 阅读 · 0 评论 -
【Reading Notes】CP4-Physically Based Rendering in Unity5 (基于物理的渲染)
写在前面相对于unity4,unity5其中一个最大的改变是基于物理的渲染,简写PBR。前面的章节多次提到PBR但是从来没有深入去探讨,如果想要了解PBR是如何工作并且灵活运用PBR那么你应该阅读这一章节。在这一章节,你讲了解一下几点:懂得Metallic(金属材质)的设置为PBR添加透明创建一个镜子一般的反射表面为你的场景烘焙光照(Bake lights)Introduction 简介理原创 2017-07-04 08:22:16 · 454 阅读 · 0 评论 -
【Reading Notes】CP2-Surface Shaders and Texture Mapping
Introduce在这一章节,我们将探索Surface Sshader.将会从非常简单的材质开始,最后完成一个全息投影?和地形纹理融合(Blending)。还可以使用纹理动画,混合,以及其他任何我们想要的属性。本章知识点: + Diffuse shading 漫反射 + Using packed arrays 使用数组 + Adding texture to a shader 为shader添原创 2017-05-07 19:56:49 · 835 阅读 · 0 评论 -
【Reading Notes】CP3-Understanding Lighting Models
了解光照模型在前一章节我们学习了Surface Shader,知道怎么样去改变物理材质计算不同的纹理,那么他们到底是怎么工作的呢,这个核心的部分就是光照模型。光照模型是一个计算每一个像素最终的颜色的函数。Unity总是去隐藏了光照函数的实现,因为去编写一个光照模型函数你需要了解光是怎么样从物体表面反射。这一章节将介绍光照模型是如何工作的原创 2017-06-24 10:03:24 · 557 阅读 · 0 评论 -
【Reading Notes】CP5-Vertex Functions (着色器顶点处理)
写在前面Shader主要是用来模拟3D对象光照的真实情况,但不仅仅如此,他不仅仅定义了Objects看起来怎么样,还可以完全的重定义Objects的形状。在这一章节,将学到: + 在Surface Shader访问顶点颜色 + 在Surface Shader实现顶点动画 + 挤压使模型变形 + 实现雪 + 实现体积爆炸效果简介在第一章节,创建了第一个shader,解释了3D模型不仅仅是三角原创 2017-08-05 16:25:29 · 1075 阅读 · 0 评论 -
【Reading Notes】cp6-Fragment Shaders and Grab Pass
写在前面到目前为止,我们都是基于Surface Shaders来实现功能。Surface Shader的设计提供了一种简单的shader编码实现方法,给艺术家提供了十分有意义的工具。如果我们想要更进一步的了解Shader,是时候踏进Vertex(顶点)和Fragment(片元)着色器的领域了。本章内容: + 明白顶点着色和片元着色的基本 + 使用Grab pass + 实现Grab 着色 +原创 2017-08-07 01:00:14 · 447 阅读 · 0 评论 -
【Reading Notes】cp7-Mobile Shader Adjustment(移动平台下的shader)
写在前面在接下来两个章节,将要学习怎样使Shader在不同平台下都有良好的表现。我们不去讨论任何一个特定的平台,而是去分解Shader中我们可以进行调整的各个部分,讨论一般情况下的移动平台优化。这其中包括了,Unity内置变量的介绍,如何减少Shader内存等等。 + 什么是Cheap shader + 分析你的shader + 为移动平台修改shaderIntrodudctionshader原创 2017-08-20 02:31:40 · 417 阅读 · 0 评论 -
OpenGL学习笔记-2015.4.1——纹理加载与控制
在纹理贴图技术问世之前,虚拟3维世界只能通过几何模型去模拟现实,可想而知,现实世界的错综复杂,计算量之大并不能满足实时显示的需求。纹理映射带来了革命性的变换,简单的使得虚拟的3维世界得以无限接近于现实。纹理映射技术最早是由Catmull 在1947年率先提出的,Catmull首先找到了以(u,v)表示的双变量实数空间(纹理空间)和以参数(s,t)表示的三维曲面之间的对应关系(映射关系)。原创 2015-04-05 18:18:37 · 6242 阅读 · 0 评论 -
OpenGL学习日记-2014.12.21--光照
一、光照和颜色密切相关,光照也是由不同颜色的光去描述,所以由于颜色的表示有两种模式:rgba模式和颜色索引模式,所以光照也分为rgba下的光照,和颜色索引模式下的光照。不过同样的是rgba模式下的光照灵活方便,主要还是使用rgba下的光照模式。二、隐藏表面消除工具。三、现实世界和OpenGL关照四、材料和颜色 五、创建光源六、选择光照模型七、定义材料属性原创 2015-01-21 21:46:56 · 2317 阅读 · 0 评论 -
OpenGL学习日记-2015.3.13——多实例渲染
实例化(instancing)或者多实例渲染(instancd rendering)是一种连续执行多条相同渲染命令的方法。并且每个命令的所产生的渲染结果都会有轻微的差异。是一种非常有效的,实用少量api调用来渲染大量几何体的方法。OpenGL提供多种机制,允许着色器对不同渲染实例赋予不同的顶点属性。原创 2015-03-14 04:22:15 · 4046 阅读 · 0 评论 -
OpenGL学习日记-2014.12.2--颜色
颜色这章还挺有意思的,感觉上了节物理和生物课样。从光子理论,光谱,到光子作用视网膜上的锥细胞,而人终于感知了色彩。计算机表示颜色有两种模式:RGBA模式和颜色索引模式。无论是那种模式,每个像素都存储雷丁的颜色数据。这个数量由缓冲区的位平面决定。在每个像素中,1个位平面表示1位数据。如果每个像素用8位表示则他可以最多表示2的8次方颜色。一、RGBA模式: 硬件为R,G,B,A成分保原创 2014-12-02 02:34:46 · 728 阅读 · 0 评论 -
OpenGL学习日记-2015.3.5——Hello glsl(着色器)
过年前忍不住买了本新版的OpenGL编程指南,主要的目的还是为了系统的学习着色器编程,另外就是接触新版的OpenGL技术和思想。看了几页,就过年了QAQ.回来后也是各种不在状态,不想上班,不想工作,不想写代码。。。昨天终于强迫自己继续看书,也找回了些状态。 书本基础知识的全面性和权威性就不用说了,不过这个源代码就。。。。这第一个例子照着代码来抄结果。。。我想应该是原来的代码一个参原创 2015-03-08 04:44:50 · 3644 阅读 · 2 评论 -
OpenGL学习日记-2014.11.23--OpenGL变换
由于是重温系列,只是简单记录下迷惑的地方和,以前不知道的地方。1,观察坐标系的确定,以前一直迷惑摄像机的up向量的确定,由于定位三个向量互相垂直是必须的,而我们在调用gluLookAt()指定的向量都是比较随意,对于摄像机变换并没有很好的理解。终究是由于远离没懂,所以前天特意研究了下,摄像机坐标系的确定:1.首先确定摄像机的位置。2.确定视线方向view。2.接下来只需要在确定其他两个原创 2014-11-26 01:47:58 · 730 阅读 · 0 评论 -
透视投影(Perspective_Projection)变换推导
原文作者我也不知道是谁。。偶尔在论坛上看到,然后搜了一下,在百度文库下了个文档。不管怎样,感谢原作者的辛勤劳动。透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。转载 2015-01-21 19:25:35 · 2507 阅读 · 0 评论 -
OpenGL学习日记-2014.1.21--混合
混合可以实现很多效果,笔记单纯的记录混合的原理,和混合公式,混合函数的使用。最后分析书中的两个混合代码例子,两个例子结合起来说明了绘图顺序对混合最终效果的影响,及如何去规避这样的问题。在颜色中之前一直忽略的第四个分量alpha终于派上用场。在启用混合情况下,alpha常常用于把被处理片断的颜色值与已经存在帧缓冲区的像素颜色值进行组合。混合操作是在场景进行了光栅化并转换为像素之后,但是在最终的像素绘原创 2015-02-13 02:39:11 · 1208 阅读 · 3 评论 -
OpenGL学习日记-2014.11.6--OpenGL缓冲区对象
1.何为OpenGL缓冲区对象,他有什么作用 其实在字面意义上来看,就应该知道缓冲区对象的大体做那个,多半是用来解决数据传输问题。在OpenGL,由于OpenGL是按照客户机-服务器模式设计的,在OpenGL中任何时候需要数据,都必须从客户机内存存到服务器,如果数据并没有修改,或者客户机和服务器位于不同的计算机(分布式渲染--不懂。。),就会产生不必要的传输,或者传输比较缓慢。缓冲区对象原创 2014-11-26 01:45:58 · 729 阅读 · 0 评论 -
OpenGL学习日记-2014.11.26--简单裁剪
Opengl中,除了视景体的立方体裁剪平面之外,另外还可以额外指定多达6个裁剪平面,对视景体做进一步限制。每一个平面都由平面公式定义:Ax+By+Cz+D = 0.裁剪平面的指定通过函数:glClipPlane(GLenum plane,const GLdouble* equation)确定。plane可能值为:GL_CLIP_PLANE0--GL_CLIP_PLANE6。。。equation为大原创 2014-11-27 01:24:37 · 882 阅读 · 0 评论 -
【Reading Notes】cp8-Screeen Effects with Unity Render Textures
写在前面在本章节,将学习一下内容: + 建立简单的screen effects 脚本系统 + 使在screen effects中用亮度,饱和度,对比度 + 实现照片风格的screen effects + 在screen effect中使用Overlay Blend介绍要想更深刻地理解着色器的过程,是去创建我们自己的着色器,同样对于screen effects。通过编写screen effec原创 2017-08-28 01:06:16 · 579 阅读 · 0 评论