Light Mapping = Dark Mapping (光照映射、黑暗映射)

本质上也是多贴一张图,他是做相乘操作。第2张纹理通常中间亮,外面暗。如果是简单的 Modulate,那么实际上所有像素要嘛不变,要嘛变暗。操作还有可能是 Modulate2X,Modulate4X,那就有可能变亮也有可能变暗了。

Grow Mapping(发光映射)

本质上也是多贴一张图,他是做相加操作。注意,这个相加是无符号相加,也就是说相加如果超过1,那么就变成1。

Detail Mapping(细节映射)

本质上也是多贴一张图,他做的是有符号相加操作(add signed)。操作相当于无符号相加后,再减0.5。这种方法的效果是有的像素变暗了,有的像素变亮了,而且变化比较突然,看起来好像物体表面好像不太平,因此就是“增加了细节”。注意,这个是固定管线提供的功能,Unity会把他单独拎出来支持。

Bump Mapping (凹凸贴图)

就是贴法线贴图!逐像素计算光照!

纹理坐标自动生成(下面这个链接是解释最详细的)

http://resumbrae.com/ub/dms424_s05/10/print.html

GL_OBJECT_LINEAR

GL_EYE_LINEAR

参考上面的链接!

D3DTSS_TCI_CAMERASPACEPOSITION  (Direct3D 9)

以顶点在观察坐标系中的顶点坐标作为该纹理层的纹理坐标输出.即在相机空间里,顶点坐标的u,v是这样计算的.u = x, v = y, (如果是三维纹理,w = z).

D3DTSS_TCI_CAMERASPACENORMAL  (Direct3D 9)

与上面类似

D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR  (Direct3D 9)

鸡巴毛。把顶点看做向量,当成入射线,与法线计算后生成的反射线做为uv坐标?

D3DTSS_TCI_SPHEREMAP  (Direct3D 9)

GL_SPHERE_MAP  (OpenGL)

相机往顶点方向形成的入射向量,与法线计算得到的反射向量做为uv坐标。这种是要和贴图相配合,贴图要反映360周围环境,例如下图:

概念:Sphere Mapping、Reflection Mapping、Environment Mapping

都一样!!FUCK,搞那么多名字。通常就是一张上面那张图。有可能是自动生成纹理坐标(固定管线),也就是 D3DTSS_TCI_SPHEREMAP 或者 GL_SPHERE_MAP。或者是美术导出纹理坐标。

这种效果一般,摄像机方向变的时候,看到的东西是一样的,离你近的点上面的东西就一模一样。如果摄像机不动,物体动,还比较正常。

Cube Mapping

效果比较好!!摄像机动的时候也会动!!比较真实。

分成2种情况,1是准备6张贴图,每次贴上去。2是实时拍这6张贴图,很慢。

 关于3D绘制顺序/排序/半透明物体的问题

http://www.opengpu.org/forum.php?mod=viewthread&tid=422

Misc

1.为了提高性能,现代图形硬件通常都在运行 fs 之前进行深度测试。如果在 fs 中写入 gl_FragDepth,会让他取消这种优化,在执行fs 后才做深度测试,这样会很慢。

3D知识补充的更多相关文章

  1. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  2. CRM中QueryDict和模型表知识补充

    CRM中QueryDict和模型表知识补充 1.QueryDict的用法 request.GET的用法:1.在页面上输入:http://127.0.0.1:8000/index/print(reque ...

  3. Android知识补充(Android学习笔记)

    Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...

  4. (C/C++学习笔记) 二十四. 知识补充

    二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...

  5. SQL语句之 知识补充

    SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELI ...

  6. Python学习---django知识补充之CBV

    Django知识补充之CBV Django: url    -->  def函数      FBV[function based view]  用函数和URL进行匹配 url    --> ...

  7. 4-5 Scrapy知识补充

    FormRequest FormRequest类是专门用来处理HTML表单的,同时对隐藏的表单处理也很方便.适合用来完成登录操作. 类原型:class scrapy.http.FormRequest( ...

  8. Redis基础知识补充及持久化、备份介绍

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)–技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持 ...

  9. 大数据学习day23-----spark06--------1. Spark执行流程(知识补充:RDD的依赖关系)2. Repartition和coalesce算子的区别 3.触发多次actions时,速度不一样 4. RDD的深入理解(错误例子,RDD数据是如何获取的)5 购物的相关计算

    1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是 ...

随机推荐

  1. 如何由Height Map生成Normal Map

    转自:http://www.cnblogs.com/cxrs/archive/2009/11/01/1594155.html Nvidia和ATI都有相应的工具把Heightmap转成NormalMa ...

  2. C++ offsetof

    这是一个宏,用于计算类中某个成员的地址相对于类实例的偏移量 在C++11中,要求这个类standard_layout 基本用法是这样子的: #include <stdio.h> /* pr ...

  3. linux 下安装rsync

    一.服务器端配置: 1.安装xinetd,并修改rsync相关配置 # yum -y install xinetd # vi /etc/xinetd.d/rsync 如下代码: service rsy ...

  4. C# virtual和abstract的

    virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义. 它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能 ...

  5. SQL调用系统存储过程整理

    SQL系统存储过程用法整理: xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报 ...

  6. C#实现union以及lock的使用

    1.什么是Union类型数据 联合(Union)是一种特殊的类,一个联合中的数据成员在内存中的存储是互相重叠的.每个数据成员都在相同的内存地址开始. 分配给联合的存储区数量是“要包含它最大的数据成员” ...

  7. MySQL 仅保留7天、一个月数据

    /************************************************************************** * MySQL 仅保留7天.一个月数据 * 说明 ...

  8. c++学习笔记4:如何写好注释

    1.单行注释一般放在语句的上方: // cout and endl live in the iostream library std::cout << "Hello world! ...

  9. Lua标准库(转)

    转载地址:http://www.yiibai.com/lua/lua_standard_libraries.html Lua的标准库提供了一组丰富的功能,与C的API直接实现,建立在Lua编程语言函数 ...

  10. 兼容性所有浏览器的透明CSS设置

    兼容所有浏览器的透明CSS设置: .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0. ...