图形学笔记(七)着色 —— Blinn-Phone 反射模型、着色频率、渲染管线、GPU
图形学笔记(九)几何 ——几何表示方法(CSG、距离函数、水平集 、点云、网格(obj格式))、贝塞尔曲线(面)
文章目录
1 纹理映射定义
纹理映射(Texture Mapping),又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。简单来说,就是把一幅图像贴到三维物体的表面上来增强真实感。
任意三角形的顶点都能找到顶点在纹理上哪个位置。
2 纹理的坐标系 —— UV坐标
U和V的范围都在0到1内。三角形的三个顶点,每个顶点都对应一个UV。
纹理能被多次使用。如果纹理重复上下左右可以无缝衔接,则称这个纹理是tiled textures。(有一种算法叫Wang tiling)
3 三角形的插值:重心坐标(Barycentric Coordinates)
3.1 插值的用处
如果对三角形的三个顶点都有特定的值,那么通过重心坐标的方法可以得到三角形内任何一点的这个值,并且这些值从一个顶点到另一个顶点是平滑过渡的。
对什么进行插值?
纹理坐标,颜色,法线向量…
3.2 重心坐标系
-
重心坐标是定义在三角形上的。
-
在重心坐标系中,三角形平面的任何一个点(x,y)都可以表示成三角形三个顶点的线性组合(系数分别是 α β γ \alpha \beta \gamma αβγ,且满足这三个系数相加和为1)。
-
如果这个点在三角形内,则需要 α β γ \alpha \beta \gamma αβγ都是非负的。
eg:
A点的重心坐标 ( α , β , γ ) = ( 1 , 0 , 0 ) (\alpha,\beta,\gamma)=(1,0,0) (α,β,γ)=(1,0,0)且 ( x , y ) = α A + β B + γ C = A (x,y)=\alpha A+\beta B+\gamma C=A (x,y)=αA+βB+γC=A
3.3 获得三角形任意一点的重心坐标
可以通过面积比求重心坐标。 α , β , γ \alpha,\beta,\gamma α,