| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> GAMES101 P10 几何1 笔记 -> 正文阅读 |
|
[游戏开发]GAMES101 P10 几何1 笔记 |
1 贴图的应用? ? ? ? 纹理可以理解成一块数据,可以做不同类型的查询,所以它的应用有很多: ?? ? ?1.环境光/环境贴图: ? ? ? ? 用纹理描述环境长什么样,然后用环境光去渲染其他的物体: ? ? ? ? ?把环境光记录在球面上: ? ? ? ? ?把球面纹理展开,会发现在顶部有扭曲: ? ? ? ? ?所以为了解决扭曲的办法,有了CubeMap: ? ? ? ? ? ? ?把正方形展开: ?2.凹凸贴图(法线贴图) ? ? ? ? 纹理不止可以描述颜色,还可以描述一个物体表面的一个相对高度: ? ? ? ? ?通过改变物体表面某个点的高度来改变法线从而改变着色的计算: ? ? ? ? ?那如何计算法线?在平面中,我们用凹凸贴图去定义了各个点的高度,那么由这些高度我们对临近的两个点可以计算出它的切线dp,而切线向量经过逆时针旋转则会得到法线。所以也就是说我们在凹凸贴图里定义了切线,然后用切线去计算法线: ????????? ? ? ? ?在三维中的法线: ? ? ? ? ?除了使用凹凸贴图外,还可以使用另外一种方式做以上这种效果,并且效果更好-----位移贴图: ????????? ????????3. 噪声 ? ? ? ? ?4.记录之前已经算好了的信息(比如unity中的烘培) ? ? ? ? ?5.体渲染 ?2?介绍几何? ? ? ?2.1?几何的隐式表达? ? ? ? ?比如圆的方程定义表示一个圆上的点所满足的关系: ? ? ? ? ?隐式的表示很容易判断一个点是在物体内还是外: ????????2.2 几何的显式表达? ? ? ? 显式的表达方式要么直接给出所有的点,要么通过参数映射的方式给出: ? ? ? ? ?也就是说,上面的隐式表示不容易知道物体长什么样,也很难找到物体上的所有的点。而对显式的表示来说,判断一个点是在物体的里面还是外面就变难了,所以需要有显式、隐式不同的表示方式。 2.3 表达的更多例子? ? ? ? 隐式表达1。方程式的表达: ? ? ? ? ?隐式表达2,CSG。用简单的几何联合构成复杂的几何: ? ? ? ? ?隐式表达3,距离函数:空间中的任意一个点到你想要的一个点的最小距离(可正可负)。把两个物体的距离函数都算出来之后做Blend然后再恢复成物体,就可以得到这样的变换: ? ? ? ? ?应用距离函数的例子: ? ? ? ? ? 想要做两个物体的融合,先求出两个物体的距离函数,然后blend这两个距离函数,之后再将距离函数恢复成物体,就可以了。那如何把blend后的函数恢复成物体呢,很简单,找到距离函数所有等于0的地方,便是物体表面。 ? ? ? ? 距离函数不好表示出来,而Level Set Method(水平集)的思想与距离函数非常相似: ? ? ? ? ?这个水平集表示方式在地理中的等高线常见到。而水平集在三维中也是可以表示的: ? ? ? ? ?隐式表达4,Fractals(分形): |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 23:47:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |