图形学知识点总结

dda

image-20210615112615110

image-20210615112627098

image-20210615112633232

image-20210615112639773保证另一个方向增加不超过1;

bresenham

image-20210615113602229

image-20210615113614144image-20210615113622261image-20210615113632725image-20210615113641530

image-20210615113656989

更直观的想法4.1

image-20210615114543697

image-20210615114556569

image-20210615114615681

image-20210615115940828

image-20210615115950765

image-20210615115958969

多边形扫描

image-20210617170325022image-20210617170332721

(1)当扫描线与多边形顶点相交时,交点的取舍问题策略:
交点个数=
构成这个顶点的两条边
位于扫描线上方的条数image-20210617170356364

(2)左闭右开,下闭上开。

形状保持
中心偏移
半个像素

(3)算法的效率问题

对于某一条扫描线,需要与所有的边求交吗,只和有效边求交。image-20210617170525505

扫描线和直线在Y方向上都有连贯性,那么交点可以怎么求?1image-20210617170539118

每次都需要排序吗?

有的边变成无效
边:需要删除重新排序的时机:
新边加入时

扫描线算法活性边表法

void 多边形{
for 各条扫描线i{
初始化新边表头指针 neti;
把ymin=i的边放进neti;
}
y=ymin
初始化活性边表为空
for 每条扫描线i{
将neti中的边结点插入排序加入到aet中,使之按照x坐标递增顺序排列;
若允许边自交,冒泡排序对aet重新排列;(产生相交后序列不对)
遍历aet把配对交点左闭右开的像素,改写像素颜色值。
遍历aet将ymax=yi的点从aet中删除;
把ymax》i将其余的点的x进行更新;
}

裁剪

Cohen-Sutherland方法:基于编码的裁剪方法

image-20210617173130117

Liang-Barsky裁剪的思想

image-20210617174919622image-20210617174927335

反走样

最简单的方法:提高分辨率4倍存储器代价,2倍扫描转换时间;

区域取样:阴影面积占比乘灰度值;

加权区域取样原理:

记住加权表,把一个像素划分成更多的像素,不同的赋权,再类似面积加权,计算灰度。

消隐

画家算法:

先画远景,再画中景近景;只能处理不想交的面,顺序可能出错;

Z-buffer:

Z-Buffer{
    帧缓存全部为背景色;
    深度缓存最小值;
    for每个多边形{
        扫描转换多边形;
        for多边形每个像素(x,y){
            计算像素的深度值;
            if z大于深度缓存值{
                把z存入z缓存中;
                把多边形在这点处的颜色值存入帧缓存的(x,y)处;}
        }
    }
}

扫描线Z-buffer算法、

光线投射算法

颜色模型

1、RGB颜色工业模型红色®、绿色(G)、蓝色(B)三基色,

而其余三个角分别对应于三基色的补
色——青色©、黄色(Y)、品红色(M)

。 Ø 从RGB单位立方体的原即黑色(0,0,0)到白色顶点
(1,1,1)的主对角线被称为灰度线,线上所有的具有
相等的分量,产生灰度色调。

HSV(hue, saturation and value)

HSL采用亮度L(lightness)、HSV采
用明度V(value)作为坐标。

image-20210630220300623

HSI 彩 色模型

颜色的三个基本属性(也称人眼视觉三要素)——
①色调( Hue):由物体反射光线中占优势的波长决定的,是彩色互相区分的基本特性。
②饱和度(Saturation)或彩度:彩色的深浅程度,它取决于彩色中白色的含量。饱和度越高,彩色越深,白色光越少。
③亮度( Illumination):光波作用于感受器所发生的效应,它取决于物体的反射系数。反射系数越大,物体亮
度越大。image-20210630220311806

光线跟踪算法

raytracing(start,direction,weight,color){
if(weight<minweight){
color=black;
}
else{
计算光线方向最近的交点;
if(没有最近交点){
color=black}
else{
Il=局部光照模型求出的光强;
计算反射方向;
raytracing(交点,反射方向,weight*wr,Ir);
计算折射方向T;
raytrcing(交点,折射方向,weight*wt,It);
color=Ilocal+Kr*Ir+Kt*It;

}
}
}

光线与多边形求交:1.与平面求交2.判断是否在内部

加速

1.自适应深度控制

2.包围盒与层次结构

3.三维DDA算法

4.空间八叉树剖分技术

r,Ir);
计算折射方向T;
raytrcing(交点,折射方向,weightwt,It);
color=Ilocal+Kr
Ir+Kt*It;

}
}
}


光线与多边形求交:1.与平面求交2.判断是否在内部

#### 加速

1.自适应深度控制

2.包围盒与层次结构

3.三维DDA算法

4.空间八叉树剖分技术

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值