请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 1407|回复: 2

dx10的Rasterization Rule 看不懂 [复制链接]

版主

RenderGuy

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

注册时间
2010-11-4
积分
5894
发表于 2016-11-25 15:10:17 |显示全部楼层

蓝色箭头那个像素,按照光栅化规则不应该被cover到吧?这个规则看不懂了。。。
全文连接如下:
https://msdn.microsoft.com/zh-cn/library/windows/desktop/cc627092(v=vs.85).aspx

Rank: 16Rank: 16Rank: 16Rank: 16

注册时间
2014-3-9
积分
2210
发表于 2016-11-25 16:50:26 |显示全部楼层
本帖最后由 chuckson 于 2016-11-26 18:00 编辑

线的raster rule是:A line covers a pixel if the line exits the pixel's diamond test area when traveling along the line from the start towards the end.
这条线从该pixel的棱形区域(就是那四条45度斜边围成的区域)穿了出来(exit),所以这个pixel是要画的。。。如果线走进了某个pixel的棱形区域,然后刚好到终点了,那就不用画那个pixel。


这种规则的可以保证细分线的rending结果不受影响:比如画一条线时最终draw了N个pixel,那么我们把这条线Tessellate成多条子线(也就是说,这些线拼起来刚好等于原来那条),则把这些子线依次画完后,最终也还是draw了原来那N个pixel,不会出现某个pixel重复画并覆盖,否则在blend enable时,original line和Tessellated line画出来的结果不一致。画张图:

1

查看全部评分

使用道具 举报

版主

RenderGuy

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

注册时间
2010-11-4
积分
5894
发表于 2017-3-18 21:37:45 |显示全部楼层
多谢,这个解释比msdn清楚多了。。。

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-10-23 23:09 , Processed in 0.457620 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部