图形学复习知识点3
2017-12-26 本文已影响17人
球球球球笨
分形几何
分数维 D = logN/ log(1/s) (N为每一步细分的数目,S为细分时的缩放倍数)
- Von Koch 曲线 D = log 4 / log 3 = 1.2618
- Sierpinski 三角形 D = log 3 / log 2 = 1.5849
- Mandelbrot 分形集
G(Z) = Z^2 + C 其中 Z 和 C 都是复数
迭代公式:
xn+1 = xn2-yn2 + Cx
yn+1 = 2xnyn + Cy
分形技术的常用模型
- 随机插值模型:不是事先决定各种图素和尺度,而是用一个随机过程的采样路径作为构造模型的手段。
- 粒子系统模型:用大量的例子图元来描述景物。
- 正规文法模型(Graftal):用正规文法生成结构性强的物体的拓扑结构,再通过进一步的几何解释来形成逼真的画面
- 迭代函数系统模型:以迭代函数系统理论作为数学基础。
一维中点变换算法
以一条水平地平线段开始
重复足够多次{
对场景中的每条线段做{
找到线段的中点
在 Y 方向上随机移动中点一段距离
减小随机数取值范围
}
}
每次循环减少的随机数取值范围越多,山脊线就越平滑,减少的如果较小,就会有明显的粗糙锯齿感。
粗糙度常量: 使用一个 0.0 到 1.0 之间的浮点数并称之为 H 。随机数范围在每次循环时乘上2(-h)
生成真实感图形的步骤
- 构建模型:数学方法建立三维模型,存储到系统中
- 投影变换:实体模型转换到三维观察坐标系
- 消隐处理:用消隐技术去除实现外的和不可见的面
- 光照处理:建立光照模型生成真实感图形。 生成真实感图形.PNG
真实感图形特点:能完整反映物体表面颜色和亮度变化,能反应质感和粗糙度,能反映光照效果,场景的深度感和层次感,体现物体间的遮挡关系,模拟透明物体透明效果和镜像效果。
消隐算法
线框图 -> 消隐图 -> 真实感图形
消隐处理的主要问题:
- 形体数据结构的合理组织
- 排除与遮挡无关的要素
- 遮挡关系
分类:
- 根据消隐对象:
(1)线消隐
(2)面消隐 - 根据消隐算法空间:
(1)物体空间消隐算法:通过分析物体之间的空间几何关系,来确定该物体的可见性
(2)图像空间消隐算法:将物体的投影分解为像素,通过分析像素的可见性,来确定物体的可见性。
物体空间:规范化的投影空间,即用户域
图像空间:物体投影后的二维空间,即屏幕域
深度缓存消隐算法
对于屏幕上的每一个像素,记录位于改像素内最靠近观察者的景物面的深度值,同时相应记录该景物面颜色的所有记录值,输出图形。
开辟内存数组:ZB(x,y)和FB(x,y)
初始化数组:
for x=0 ~ xmax
for y=0 ~ ymax
{
FB(x,y)= 背景色;
ZB(x,y)= 最小值;
}
for 每个多边形 {
扫描转换该多边形
for 多边形所覆盖的每个像素(x,y) {
计算该多边形在该像素的深度值z(x,y);
if ( z(x,y) > ZB(x,y)) {
用z(x,y)替换ZB(x,y)的值;
用多边形在(x,y)处的颜色值替换FB(x,y)的值;
}
}
}
深度值反应了该表面距离观察者的距离,Z越大,距离越大。
设表面方程:ax+by+cz+d=0 (c≠0),
该表面对应像素点P(i,j)的深度值:
z = –(ai+bj+d)/c
优点:算法简单,直观,便于硬件实现
缺点:内存占用量大,计算量大。