反射的东西是什么 拿什么来反射它?
纹理的其他应用:
纹理完全可以理解为一块数据 可以做不同的查询
环境贴图:
可以渲染这个茶壶 被环境光所照亮 反射出了左边贴图的结构
环境贴图是假设环境光是来自无限远处 强度都是一样的
这个茶壶叫犹他茶壶
把整个环境光记录在球上 还可以把它展开
扭曲问题:不是均匀的描述
解决的办法:
不存在球的表面上了 存在一个立方体上
凹凸贴图/法线贴图
谁也没有规定纹理只能描述颜色
他可以定义表面的任意一个点的相对高度
相对高度一变 法线就会发生变化
于是明暗也会发生变化
也就是说我们做了一个假的法线来欺骗人的眼睛
来达到凹凸效果 但实际上并没有改变几何
对法线的象限做一个扰动
如何从切线变法线 垂直就行了
纹理会影响到着色 但是在边缘的地方会露馅
这里是看不到自己的凸起投影到自身的
位移贴图是真实改变了位置的 显然结果要更好
当然也有代价 要求模型本身的三角形得足够细
因为改变的是三角形顶点的位置
其实纹理也可以是三维的
像左边这个球砍掉一半可以看到内部是什么
定义了三维空间的噪声的函数 来处理 最后得到纹理
可以把计算好的信息写进纹理
把着色结果乘于计算好的环境光遮蔽
就可以得到这样的效果
3D的纹理
不同形状的几何:
汽车、引擎、布料、水花、城市、狗的毛发、细胞蛋白质(微观几何)、树
图形学会分类成隐式和显式的几何
隐式的几何:
不会告诉你点在哪 而是告诉你点满足的关系
哪些点会满足这个式子呢?是很难直接看出来的
如果想要判断形状是什么 挺困难的
好处就是方便判断点在不在这个面上
显示的几何:
定义一个函数 给你uv但是输出xyz
把每一uv都找一遍就行了
与隐式相反 找出形状很容易
判断点的位置就变得困难了 你只能知道它在外面 或者在表面或者里面
但至于具体在哪 还得想想
我讨厌曲面 我不能相信这玩意这么难 几何太难了~
举例隐式的应用:
也可以通过布尔运算来定义
对距离函数做融合形成的结果 叫做SDF
上:实际的融合
下:用距离函数的融合 等于融合他们的边界
距离函数的表示的网站:
https://iquilezles.org/www/articles/raymarchingdf/raymarchingdf.htm
如何恢复呢:
把0的位置全找出来
三维上如何提取呢?
用密度函数
也可以通过水平集或者距离函数
分形:自相似
例如雪花就是经典的分形
中间这个是一种西兰花
有一个明显的性质 突起里还有突起
这个在渲染的时候会引起强烈的走样
总结:
隐式的函数通常表示起来都很容易 要不然就是用什么不是特别明显的来表示
用隐式函数描述的隐式表面很容易做光线
正常情况下 想严格描述物体用隐式是很适合的
但是复杂就很难办了 所以要有显式