渲染Keynote

1、渲染图元(rendering primitives),可以是点、线、三角。

2、显卡对于显存的访问速度更快,而且大多数显卡对于RAM没有直接的访问权利 。

3、裁剪(Clipping)是将那些不在摄像机内的顶点裁剪掉。

4、OpenGL左下角为(0,0),右上角为(1,1)。

5、模板测试(Stencil Test)位于Fragment Shader之后。

6、Blend是最后一道工序。

7、一个形象的比喻是,我们在使用固定管线进行渲染时,就好像在控制电路上的多个开关我们可以选择打开或关闭一个开关,但永远无法控制整个电路系统。

8、OpenGL3.2中完全移除了固定管线。Unity5.2以后版本,固定管线也会被转化为shader管线。

9、计算机科学中的任何问题都可以增加一层抽象来解决。

10、三个轴互相垂直,且长度为1,这些矢量被称为标准正交基(orthonormal basis)。

11、Unity使用左手坐标系。而在Camera中,使用的是右手坐标系。

12、叉积不满足交换率,即axb!=bxa。

13、矩阵乘法不满足交换律。AxB!=BXA。

14、逆矩阵(inverse matrix)。不是所有的矩阵都有逆矩阵,该矩阵必须 是一个方阵。MM^(-1)=I。

15、正交矩阵(orthogonal matrix)。如果MM^T=I,则M是正交矩阵。显然,正交矩阵的M^T=M^(-1)。

16、满足以下公式的就是线性变换:f(x)+f(y)=f(x+y), kf(x)=f(kx)。

17、在齐次坐标下,点的w分量为1,向量的w分量为0。

18、裁剪空间(clip space),裁剪矩阵(clip matrix)也叫投影矩阵(projection matrix)。

19、透视投影后,z分量范围是[-w,w],而w是原z分量的取反。如果一个点在frustum之内,须满足-w<=x<=w,-w<=y<=w,-w<=z<=w。离摄像机越远,z值越大。

  投影后,近平面左下角为(-Near,-Near,-Near, Near),右上角为(Near, Near, -Near, Near),

远平面左下角为(-Far,-Far,Far,Far),右上角为(Far, Far, Far, Far)。

  所以投影后,坐标的原点变为了视锥体的中心。

20、正交投影后,w分量仍然为1

21、透视除法(perspective division),就是用投影后的w分量去除以x、y、z分量。转换后的坐叫归一化的设备坐标(Normalized Device Coordinats,NDC)。

此时,x、y、z都是[-1,1]。裁剪空间已经是一个立方体了。

22、Mv=vM^T

23、观察空间(view space)也被称为摄像机空间(camera spaace)。

24、观察空间和屏幕空间是不同的。观察空间是三维空间,屏幕空间是二维空间。从观察空间到屏幕空间的转换叫投影。

25、裁剪矩阵(clip matrix),投影矩阵(projection matrix)。

27、fixed范围为[-2.0,2.0],half为[-60000,60000]。

28、顶点着色器->裁剪->(透视除法)屏幕映射->片元着色器

29、一个显卡制作商为了让他们的显卡可以同时和OpenGL、DIrectX合作,就必须提供支持OpenGL和DirectX接口的显卡驱动。

30、OpenGL没有提供着色器编译器,而是由显卡驱动 来完成着色器的编译。也就是说,只要显卡驱动支持对GLSL的编译它主可以运行。

31、Cg则是真正意义上的跨平台,它会根据平台的不 ,编译成相应的中间语言。

32、使用固定管线进行渲染时,就好像在控制电路上的多个开关我们可以选择打开或者关闭一个开关,但永远无法控制 整个电路的排布。

33、Unity中可以在Default Maps中指定Shader默认纹理。当第一次使用该shader时,这些纹理就会自动被赋予到相应的属性上。

34、(AB)^T=B^T*A^T,(AB)^(-1)=A^(-1)*B^(-1)。

35、CBAv=vA^T*B^T*C^T

36、_ScreenParams,x=width,y=height。

37、遮罩纹理(mask texture)。采样得到遮照纹理的纹素值,然后使用其中某个通道的值(如texel.r)来与某种表面属性进行相乘。通过还会配套一个 mask-scale。

38、渐变纹理。

39、法线的变换矩阵为(M^T)^(-1),M的逆转置矩阵。

40、为了渲染非凹凸透明物体时物体自身不会重叠,需要通过两遍渲染。第一遍只写入深度,不输出颜色;第二遍利用深度,输出颜色 。

  ZWrite On

  ColorMask 0

41、渲染双面透明物体时,需要分为两个pass。第一遍只渲染背后,第二遍只渲染正面。

42、前向渲染中,环境光、自发光放在BasePass中只计算一次,而Addition Pass跟像素光源有关,每个像素光源会调用一次Addtion Pass。

43、延迟渲染不能处理半透明物体。

44、广告牌技术:使用 ViewDir 重建三个 Object 坐标轴(称为 Camera-Object 坐标轴),让所有 Object Vertex 新的 Camera-Object 坐标轴进行偏移。

45、

46、

渲染Keynote的更多相关文章

  1. 3D Math Keynote 4

    [3D Math Keynote 4] 1.三角带. 合并三角带能够提升渲染效率. 三角扇. 2.边缩坍,将边缩减为顶点 . 网格消减,使用边缩坍,可以实现渐进式网络. 3.下图左边是面拆分.右边是焊 ...

  2. Unity3D Physics Keynote

    [Unity3D Physics Keynote] 1.在哪设置Layer Collision Matrix? "Edit"->"Project Settings& ...

  3. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  4. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman

    美国时间 6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开,美国时间6.9 是第三天, Scott Hanselman 做Keynote.今天主题围绕的是.NET ...

  5. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 2 Keynote: Miguel de Icaza

    美国时间 6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开,美国时间6.8 是第二天, Miguel de Icaza 做Keynote,Miguel 在波士顿Xa ...

  6. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 1 Keynote: Scott Hunter

    “.Net 社区虚拟大会”(dotnetConf) 2016 今天凌晨在Channel9 上召开,在Scott Hunter的30分钟的 Keynote上没有特别的亮点,所讲内容都是 微软“.Net社 ...

  7. 【前端性能】高性能滚动 scroll 及页面渲染优化

    最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的 ...

  8. HTML渲染过程详解

    无意中看到寒冬关于前端的九个问题,细细想来我也只是对第一.二.九问有所了解,正好也趁着这个机会梳理一下自己的知识体系.由于本人对http协议以及dns对url的解析问题并不了解,所以这里之探讨url请 ...

  9. 【原】实时渲染中常用的几种Rendering Path

    [原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...

随机推荐

  1. 【Jenkins学习】安装配置和使用(一)

    为了能够频繁地将软件的最新版本,及时.持续地交付给测试团队及质量控制团队,以供评审,所以引入持续集成工具Jenkins,从而实现公司新产品持续集成,自动化部署. 环境准备 ●操作系统:Windows1 ...

  2. 第三周C++小结

    其实一些经验或者技巧,都是在作业的过程中搜索得到或者自己领悟出来的. 首先是数值变量与字符变量占用的字节数不同,因此可以用sizeof()函数来判断变量所占字节数判断其类型. 然后是空格的ASCII码 ...

  3. Yii框架中使用SRBAC作为权限管理模块时遇到的问题

    Yii框架中使用SRBAC作为权限管理模块时遇到的问题   看到Yii中提供RBAC的插件,SRBAC,就想用用. 结果按照手册上的安装办法,整来整去,安装完了,可就是进不了权限管理界面. 最后想到, ...

  4. Tomcat 之session 持久化1

    Tomcat 之session 持久化原理 几个概念: Manager 接口,其实就是指的是对  其Sesison 的管理, 其默认实现是StandardManager (内部没有任何Store对象实 ...

  5. antd-mobile使用报错

    在第一次使用时,按照官网的进行配置,完了报错找不到antd-mobile下面的css 解决方法来源于 :https://github.com/ant-design/ant-design-mobile/ ...

  6. 浅谈如何避免内存泄漏(out of memory)

    1.在涉及使用Context时,对于生命周期比Activity长的对象应该使用Application的Context.凡是使用Context优先考虑Application的Context,当然它并不是 ...

  7. as3调用外部应用程序 as调用外部exe文件as3调用bat文件 未测试

    private function callTest(event: Event): void{callExe("d:/a.exe");callBat("d:/a.bat&q ...

  8. Redis使用认证密码登录

    Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用.这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安 ...

  9. Haskell语言学习笔记(91)Comprehension Extensions

    Comprehension Extensions 关于解析式的相关语言扩展. List and Comprehension Extensions 24 Days of GHC Extensions: ...

  10. Haskell语言学习笔记(81)Data.Typeable

    Data.Typeable 利用 Data.Typeable,可以打印动态类型信息. class Typeable (a :: k) where typeRep# :: TypeRep a typeR ...