计算机图形学的一些算法研究

一、光栅化算法

1. 线段的扫描转换算法

  1. DDA算法(基本算法)
    for(x=x1; x<=x2; x++) {
    y+=m;
    write_pixel(x, round(y),line_color);
    }
    算法特点:浮点加法运算和舍入运算

  2. Bresenham算法–经典算法
    这里写图片描述
    这里写图片描述
    算法优点:
    对每个x值,只需要进行整数加法以及符号判断
    可以在图形芯片上用单个指令实现
    3.中点法
    决策函数:F(x,y)= ax-by+c

2.多边形填充算法

  1. 奇偶填充(扫描线算法)
  2. 种子填充
  3. 扫描线填充

二、裁剪算法

1.Cohen-Sutherland算法–经典算法

想法:尽可能不经过求交就消除许多情形
从确定裁剪窗口边界的四条直线开始

这里写图片描述

定义编码方式

对于每个端点,定义一个四位编码b[0]b[1]b[2]b[3] (这里数字表示下标),分别表示在裁剪窗口的上下右左四个方位。
这里写图片描述

2.Sutherland-Hodgeman算法(逐边裁剪法)

三、碰撞检测算法

四、隐藏面消除算法

1.对象空间算法

  1. 画家算法
  2. 深度排序
  3. 背向面剔除

2.图像空间算法

  1. Z缓冲区算法

猜你喜欢

转载自blog.csdn.net/fegnkuang/article/details/45461707