游戏引擎架构Note2

1、视觉属性(visual property)决定光线如何与物体表面产生交互作用。

2、一个Mesh所使用三角形的多少可以用细致程度(level-of-detail,LOD)来表示。当物体接近摄像机时,使用LOD0,当物体远离摄像机时,使用LOD1,2或更高。

3、变幻矩阵用以把个别实例的网格顶点从模型空间转换至世界空间。

4、在游戏中,光只能做3件事:

  1)光可被吸收(absortb)

  2)光可被反射(reflect)

  3)光可以物体中传播(transmit),过程中通常会被折射(refract)

5、顶点的信息中包含以下内容:

  1)顶点坐标信息

  2)顶点法线信息

  3)纹理信息

  4)漫反射颜色信息

  5)镜面反射信息

  6)蒙皮权重信息

6、我们需要每像素的属性而非每顶点的属性。光照网格最简单的方法就是,逐顶点计算表面的颜色,然后使用插值将这些顶点色平滑散布于整个平面上。

7、纹理的各类

  1)法线贴图(normal map)

  2)光泽贴图(gloss map)

  3)环境贴图(environment map)

  4)光照贴图(light map)

8、纹素密度(texel density,纹素/像素)。我们希望无论物体是近是远,仍然维持纹素密度接近于1。可以使用多级渐远纹理mipmapping)。当中每张位图的宽度和高度都是前一张的一半。

9、纹理过滤(texture filtering)

  1)最近邻

  2)双线性:取围绕像素中心的4个纹素采样,并计算4个颜色的加权平均。当使用多级渐远纹理时,也是选择最接近的级数。

  3)三线性:此法把双线性过滤法施加于最接近的两个渐远纹理级数。

  4)各向异性:根据视角,对一个梯形内的纹理采样。

10、材质(material)

  1)纹理

  2)着色器(shader)

11、一个人类模型可能有多个材质,供头发、皮肤、眼睛之用。因此,一个网格通常会被切割成子网格(submesh),每个子网格对应一个材质。

12、局部光照(local illumination model),仅考虑光对于单个物体的局部影响,即每个物体不会影响其它物体的光照

13、间接光照(indirect lighting),光被 多个表面反射后才进入摄像机。照顾到间接光照的模型称为全局光照模型(global illumination model)。

14、光可分解为以下3种:

  1)环境光(ambient)

  2)漫反射(diffuse)= 漫反射量k * 入射光向量 * 法线

  3)镜面反射(specular)= 镜面反射量k *  反射光向量 * 到摄像机的向量

15、光源模型

  1)环境光(ambient light)

  2)平等光(directionallight)

  3)点光(point light)

  4)聚光(spot light)

  5)面积光:现实的光源必定有非零的面积,因引才会被其产生的阴影含有本影和半影。

16、发光物体可以用放射光贴图(emissive texture map)来模拟,此纹理的颜色永远以完全强度发射,不受附近的光照环境所影响。

17、硬件扫描一个帧缓冲时,渲染引擎则更新另一个帧缓冲。此称为双缓冲法(double buffering)

18、光栅化(rasterization)是指在光栅化过程中,三角形表面会拆成名为片段(fragment)的小块。每个这些细小区域对应于单个屏幕像素。在使用多重采样搞锯齿时每个片段对应于像素的一部分。

19、全屏抗锯齿(full-screen antialiasing, FSAA),影像渲染至比实际屏幕宽一倍、高一倍的帧缓冲里。然后再把帧缓冲缩减采样(downsample)至所需的分辩率。

20、多重采样抗锯齿(mutisample antialiasing, MSAA)。其基本原理是把每个像素拆分为多个片段。这些片段在管道最后阶段结合成单上像素。现在GPU能支持4x及8x的多重采样。

21、现实的深度缓冲仅含有限的精确度,因此两个足够接近的平面,其两个深度可能会变成相同的离散值。若发生这种情形,较远的平面像素就会“刺穿”较近的平面,造成一个称为深度冲突的嗓点效果。

21、粒子效果(particle effect),几何物体通常是朝向摄像机的,引擎必须确保面片的法矢量总是朝向摄像机的焦点。其次材质几乎都是半透明的。因此,粒子渲染系统有严格的渲染次序。

22、贴花(decal)是覆盖在场景中正常物体上, 相对较小的几何物体。弹孔、脚印、折痕、裂缝等都是贴花的例子。

23、渲染天空盒(sky box)时,要把帧缓冲的所有像素设为最大深度

24、归一化坐标的意思是用0~1来表示x,y坐标。

25、CRT显示屏对于颜色的显示并非线性增长,而是一条伽马曲线,所以伽马校正这一技术正是用来修复CRT的非线性颜色显示。

26、全屏后期处理效果(full-screen post effect),通常是把屏幕的所有内容传送至含所需效果的像素着色器。

游戏引擎架构Note2的更多相关文章

  1. 游戏引擎架构Note1

    [游戏引擎架构] 1.第14章介绍的对游戏性相关系统的设计非常有价值.各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结. 5.通过此书以知悉一些知名游戏作品实际上所采用的方案. 6.书名中的架 ...

  2. 游戏引擎架构 (Jason Gregory 著)

    第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...

  3. 游戏引擎架构 && windows 核心编程

    欲想正人,必先正己. 静坐当思己过,闲谈莫论人非. 垂直同步的作用: 为避免画面撕裂,许多渲染引擎会在交换缓冲区之前,等待显示器的垂直区间消隐,即电子枪重归屏幕上角的时间. 高分辨率计时器的时间漂移 ...

  4. 游戏引擎架构,3d游戏引擎设计、Unreal引擎技术等五本PDF推荐

    扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  5. 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他

    UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(UE4)开发者.我开始做网站用的是ASP.NET和C#,之后做网站虽然换用更方便的PHP(因为做的都是小网站).我想 ...

  6. 棒!使用.NET Core构建3D游戏引擎

    原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/ 作者:ERIC MELLINO 翻译:杨晓东(Savorboa ...

  7. U3D 游戏引擎之游戏架构脚本该如何来写

    这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏引 ...

  8. 【转载】U3D 游戏引擎之游戏架构脚本该如何来写

    原文:http://tech.ddvip.com/2013-02/1359996528190113.html Unity3D 游戏引擎之游戏架构脚本该如何来写   2013-02-05 00:48:4 ...

  9. Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生

    一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...

随机推荐

  1. Android系统自带分享功能的实现(可同时分享文字和图片)

     /** * 分享功能 * * @param context * 上下文 * @param activityTitle * Activity的名字 * @param msgTitle * 消息标题 ...

  2. Unity在协程(Coroutines)内开启线程(Threading )

    孙广东  2017.6.13 http://blog.csdn.NET/u010019717 为什么要在协程中开启线程, 因为很多时候我们是需要线程执行完成后回到主线程的.然后主线程在继续执行后续的操 ...

  3. I.MX6 ethtool 移植

    /************************************************************************* * I.MX6 ethtool 移植 * 说明: ...

  4. bzoj 1725 Corn Fields

    Written with StackEdit. Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行\((1<=M<=12; 1<=N< ...

  5. Java集合总结之Collection整体框架

    前段时间一直在忙一个物联网的项目,所以Java的学习一直搁置,从今天开始继续学习!望大家多提宝贵意见! java.util包中包含了一些在Java 2中新增加的最令人兴奋的增强功能:类集.一个类集(c ...

  6. 《DSP using MATLAB》示例Example7.21

    代码: h = [1, 2, 3, 4, 3, 2, 1]/15; M = length(h); n = 0:M-1; [Hr, w, a, L] = Hr_Type1(h); a L amax = ...

  7. BZOJ3214 [Zjoi2013]丽洁体

    题意 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做这种题,因为较其它题 ...

  8. LOJ10042 收集雪花

    题意 不同的雪花往往有不同的形状.在北方的同学想将雪花收集起来,作为礼物送给在南方的同学们.一共有 n 个时刻,给出每个时刻下落雪花的形状,用不同的整数表示不同的形状.在收集的过程中,同学们不希望有重 ...

  9. Java 程序员容易犯的10个SQL错误

    Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用“模式-模式”,举个例子,模式可 ...

  10. 在laravel中使用支付宝手机网站支付 和 支付宝退款

    1.在蚂蚁金服开放平台中申请对应的应用,并根据提示进行签约 2.给对应的应用信息 生成私钥和公钥(私钥会保存在本地,公钥会放在对应的应用信息中) 3.下载手机网站支付 对应的php sdk 4.将sd ...