光栅化规则(Rasterization Rules)
光栅化规则不是唯一的,只要能满足在扫描线填充过程中,对于一条分割线两边的像素能够被不重复不遗漏地填充即可。
在gdi3d中目前使用的是下面光栅化规则:
xLeft_int=ceil(xLeft-0.5)
xRight_int=ceil(xRight-1.5)
yTop_int=ceil(yTop-1.5)
yBottom_int=ceil(yBottom-0.5)
下面验证上面规则是满足不重复不遗漏的,如图:
先验证纵向上不重复不遗漏:
(1),假设上面三角形的yBottom=0.5,则下面与之共边的三角形的yTop=0.5,则
yBottom_int=ceil(yBottom-0.5)=ceil(0.5-0.5)=0
yTop_int=ceil(yTop-1.5)=ceil(0.5-1.5)=-1
即上面三角形填充第0行,下面三角形填充第-1行。两行正好相邻,不重复不遗漏。
(2),假设上面三角形的yBottom=0.4,则下面与之共边的三角形的yTop=0.4,则
yBottom_int=ceil(yBottom-0.5)=ceil(0.4-0.5)=0
yTop_int=ceil(yTop-1.5)=ceil(0.4-1.5)=-1
即上面三角形填充第0行,下面三角形填充第-1行。两行正好相邻,不重复不遗漏。
(3),假设上面三角形的yBottom=0.6,则下面与之共边的三角形的yTop=0.6,则
yBottom_int=ceil(yBottom-0.5)=ceil(0.6-0.5)=1
yTop_int=ceil(yTop-1.5)=ceil(0.6-1.5)=0
即上面三角形填充第1行,下面三角形填充第0行。两行正好相邻,不重复不遗漏。
同理可验证横向上也是不重复不遗漏的。
----
参考:https://msdn.microsoft.com/en-us/library/windows/desktop/cc627092(v=vs.85).aspx
光栅化规则(Rasterization Rules)的更多相关文章
- GPU大百科全书 第二章 凝固生命的光栅化
光栅化——死神来了…… 前言:在上一期的GPU大百科全书里,我们目睹了可爱的香草从抽象世界走向现实,从方程还原成实体的全过程.可以说香草活了,因为几何单元,我们赋予了她完整的灵魂. 如果你正在为G ...
- 记录规则(recording rules)与告警规则(alerting rule)
记录规则(recording rules) 配置规则 Prometheus支持两种类型的规则,可以对其进行配置,然后定期进行评估:记录规则和警报规则.要在Prometheus中包含规则,请创建一个包含 ...
- DirectX11 With Windows SDK--07 添加光照与常用几何模型、光栅化状态
原文:DirectX11 With Windows SDK--07 添加光照与常用几何模型.光栅化状态 前言 对于3D游戏来说,合理的光照可以让游戏显得更加真实.接下来会介绍光照的各种分量,以及常见的 ...
- 【Notes_4】现代图形学入门——光栅化、离散化三角形、深度测试与抗锯齿
光栅化 Viewport Transform(视口变换) 将经过MVP变换后得到的单位空间模型变换到屏幕上,屏幕左边是左下角为原点. 所以视口变换的矩阵 \[M_{viewport}=\begin{p ...
- 基于显卡的光栅化渲染器Gaius计划
决定实现一个基于显卡的光栅化渲染器,能将一些基于显卡的新算法融入其中.
- 用 windows GDI 实现软光栅化渲染器--gdi3d(开源)
尝试用windows GDI实现了一个简单的软光栅化渲染器,把OpenGL渲染管线实现了一遍,还是挺有收获的,搞清了以前一些似是而非的疑惑. ----更新2015-10-16代码已上传.gihub地址 ...
- 软件光栅化渲染器Augustus计划
在看完Real-Time Rendering后,我决定动手实现一个软件的光栅化渲染器.我就称它为Augustus计划吧. 计划使用MFC和GDI+来做它的UI.可以访问GitHub来查看它的源代码.
- opengles2.0之图元装配和光栅化
光栅化的过程就是把三维世界中的物体转换成屏幕上像素的过程. glGetfloatv(); --------v表示的是数组 gles2.0里面有两种绘图命令.glDrawArrays和glDraw ...
- DirectX11 With Windows SDK--11 混合状态与光栅化状态
前言 虽然这一部分的内容主要偏向于混合(Blending),但这里还需提及一下,关于渲染管线可以绑定的状态主要有如下四种: 光栅化状态(光栅化阶段) 采样器状态(像素着色阶段) 混合状态(输出合并阶段 ...
随机推荐
- RPD Volume 168 Issue 4 March 2016 评论4
Non-vascular interventional procedures: effective dose to patient and equivalent dose to abdominal o ...
- HOW TO CHECK FOR ACTIVE TRACE FLAGS ON MICROSOFT SQL SERVER
http://crashmag.net/how-to-check-for-active-trace-flags-on-microsoft-sql-server You check for active ...
- Javascript常见设计模式解析
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己 ...
- Nginx用作反向代理服务器
Nginx作为反向代理服务器时转发请求的流程 客户端请求处理 当客户端请求来时,Nginx并不会立刻转发到上游服务器,而是想完整的接收到Nginx所在的服务器, 然后再把缓存的客户端的请求转发到上游服 ...
- Swift,字符串
1.字符串只能使用双引号 var a="你好" 2.单字与多字 var a:Character="1" var b:String="12" ...
- Python中调用其他程序的方式
前言 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程, 可以使用win32 ...
- 当客户端为RemoteAnywhere时Chef-server 使用knife-windows bootstrap的一个问题
笔者在使用knife-windows bootstrap 一个安装了RemoteAnywhere的节点遇到一个坑: knife bootstrap 192.168.1.245 -r 'role[my_ ...
- Kubernetes用户指南(二)--部署组合型的应用、连接应用到网络中
一.部署组合型的应用 1.使用配置文件启动replicas集合 k8s通过Replication Controller来创建和管理各个不同的重复容器集合(实际上是重复的pods). Replicati ...
- css - inline\inline-block\block
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- FBXImport
using UnityEditor; public class MyEditor : AssetPostprocessor{ public void OnPreprocessModel() { Mod ...