计算机图形学中的光栅化

计算机图形学中的光栅化光栅化 1 屏幕 1 2 屏幕分类 1 3 屏幕分辨率 2 像素 Pixel 缩写 px 3 屏幕空间 3 1 规范立方体转化到屏幕空间 4 光栅化 5 像素表示三角形 5 12D 的采样方法进行光栅化 1 屏幕屏幕也称显示屏 屏幕是一个典型的光栅显示设备 常用的显示屏又有标屏与宽屏 标屏宽高比为 4 3 宽屏宽高比为 16 10 或 16 9 1 2 屏幕分类 CRT 显示屏幕 阴极射线管显示器 LCD OLED 液晶屏幕 LED 屏幕 Electrophore 电子墨水屏 如 kindle1 3 屏幕分辨率屏

1.屏幕

屏幕也称显示屏,屏幕是一个典型的光栅显示设备,常用的显示屏又有标屏与宽屏,标屏宽高比为 4:3,宽屏宽高比为 16:10 或 16:9。

1.2.屏幕分类

  • CRT显示屏幕(阴极射线管显示器)
  • LCD/OLED液晶屏幕
  • LED屏幕
  • Electrophoretic(电子墨水屏)如kindle

1.3.屏幕分辨率

屏幕分辨率是指纵横向上的像素点数,单位是px,屏幕分辨率确定计算机屏幕上显示多少信息的设置,以水平和垂直像素来衡量。就相同大小的屏幕而言,当屏幕分辨率低时(例如 640 x 480),在屏幕上显示的像素少,单个像素尺寸比较大。屏幕分辨率高时(例如 1600 x 1200),在屏幕上显示的像素多,单个像素尺寸比较小。

2.像素(Pixel,缩写px)

3.屏幕空间

  • 像素的坐标(数组中的索引)(x,y)总是一个整数
  • 像素的坐标从(0,0)到(width – 1, height – 1)。width和height为屏幕的宽高,如1920X1080
  • 像素(x,y)的坐标的中心为(x+0.5 , y+0.5),如上图绿色的像素,坐标为(2,1),中心坐标为(2.5,1.5)
  • 屏幕的范围为(0,0)到 (width,height)

3.1 规范立方体转化到屏幕空间

4.光栅化

光栅化就是将投影的内容画到屏幕上的过程,其过程就如上面所说,最终将规范立方体的内容画到了屏幕上,这个过程就是光栅化。

5.像素表示三角形

5.1 2D的采样方法进行光栅化

请添加图片描述
像素中心作为采样点,如果该点位于三角形内部,用橙色标记,如果不在则不变。
请添加图片描述
用函数的实现就是定义一个二值函数: inside(tri,x,y)
inside ( t , x , y ) { 1  Point  ( x , y )  in triangle  t 0  otherwise  (t, x, y) \begin{cases}1 & \text { Point }(x, y) \\ & \text { in triangle } t \\ 0 & \text { otherwise }\end{cases} (t,x,y)10 Point (x,y) in triangle t otherwise 
如图所示:
在这里插入图片描述












//伪代码 for(int x=0;x<xmax;++x) { 
    for(int y=.;y<ymax;++y) { 
    image[x][y]=inside(tri,x+0.5,y+0.5); } } 

这边有一个问题如何判断像素中心点是否在三角形内部
方法一:面积法
计算三角形顶点与像素点围成的面积与原始三角形面积的大小是否一致。如图所示,若是像素点位于三角形内部面积一致,若是像素点位于三角形外部面积则大于原始三角形面积。
在这里插入图片描述
方法二:叉乘
按照逆时针(或者顺时针)的方式,判断边向量和该边向量的出发点到该点的向量 的叉乘是否都指向屏幕内或者屏幕外。若是,则点在在三角形内部,若不是,则点在三角形外部。如图所示:
在三角形内部
在三角形内部
在三角形外部
在这里插入图片描述
对所有像素中心点做上述采样操作得到的采样会出现锯齿,如图所示,橙色点为像素中心点请添加图片描述
如果用上面的方法进行光栅化,那么最后得到的三角形就是这样的请添加图片描述
这和我们想要的三角形相差太多,锯齿很明显。所以就要对其进行抗锯齿操作,之后会介绍。
























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178100.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午6:01
下一篇 2026年3月26日 下午6:01


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号