3D知识补充
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知识补充的更多相关文章
- Redis基础知识补充及持久化、备份介绍(二)--技术流ken
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...
- CRM中QueryDict和模型表知识补充
CRM中QueryDict和模型表知识补充 1.QueryDict的用法 request.GET的用法:1.在页面上输入:http://127.0.0.1:8000/index/print(reque ...
- Android知识补充(Android学习笔记)
Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...
- (C/C++学习笔记) 二十四. 知识补充
二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...
- SQL语句之 知识补充
SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELI ...
- Python学习---django知识补充之CBV
Django知识补充之CBV Django: url --> def函数 FBV[function based view] 用函数和URL进行匹配 url --> ...
- 4-5 Scrapy知识补充
FormRequest FormRequest类是专门用来处理HTML表单的,同时对隐藏的表单处理也很方便.适合用来完成登录操作. 类原型:class scrapy.http.FormRequest( ...
- Redis基础知识补充及持久化、备份介绍
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)–技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持 ...
- 大数据学习day23-----spark06--------1. Spark执行流程(知识补充:RDD的依赖关系)2. Repartition和coalesce算子的区别 3.触发多次actions时,速度不一样 4. RDD的深入理解(错误例子,RDD数据是如何获取的)5 购物的相关计算
1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是 ...
随机推荐
- android开发艺术探索
android开发艺术探索 百度任玉刚 http://blog.csdn.net/singwhatiwanna/article/details/46810527
- hdu 1950 最长上升子序列
//Accepted 3540 KB 62 ms //dp 最长上升子序列 #include <cstdio> #include <cstring> #include < ...
- ACM - 概率、期望题目 小结(临时)
概率DP求期望大多数都是全期望公式的运用.主要思考状态空间的划分以及状态事件发生的概率.问题可以分为无环和有环两类.无环一类多数比较简单,可以通过迭代或者记忆化搜索完成.有环一类略复杂,可以通过假设方 ...
- JavaScript常用检测脚本(正则表达式)
转自:http://www.cnblogs.com/skylaugh/archive/2006/09/25/514492.html 文件名称:check.js 说明:JavaScript脚本,用于检查 ...
- GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站
每次看到黑客在网上发布的那些GSM技术相关文章我都十分惊讶.然而在没有Software Defined Radios (SDRs)之前,玩GSM并不便宜,除此之外想要好好玩你得下大功夫. 拓展阅读 G ...
- 排版字号对应多少pt
各字号对应多少pt?初号= 42pt: 小初号= 36pt: 一号= 26pt: 二号= 22pt: 小二号= 18pt: 三号= 16pt: 四号= 14pt: 小四号= 12pt: 五号= 10. ...
- JS - The react framework
这几天因为赶时间 , 所以理解上可能有许多的误差 , 如果你不幸点进来了 , 请不要看我的代码 , 这几天我会重新修改 , 然后把错误的不足的 全部修正一下 . /hwr/src/index.js i ...
- JQuery源码分析(八)
jQuery的each迭代器 jQuery的each方法从使用上就要分2种情况: $.each()函数 $(selector).each() $.each()函数和$(selector).each() ...
- XMPP协议的原理介绍
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测.它在促进服务器之间的准即时操作.这个协议可能最终允许因特网用户向因特网上的其他任何人发送 ...
- Nodejs创建https服务器(Windows 7)
为了实验一下WebRTC,搭了个简单的https服务器.说说步骤: 生成OpenSSL证书 使用Nodejs的https模块建立服务器 OpenSSL 证书 我机子Windows 7,安装了Cygwi ...