非零环绕数&奇偶原则&多边形镂空渲染

2018-01-05  本文已影响162人  DivilMayCry

GPU 如何判断多边形内部顶点是否进行渲染

1. 判断多边形是否为自相交图形

2. 自相交的多边形如何确定顶点渲染颜色, 采用 非零环绕数规则 或者 奇偶规则

非零环绕数 ___> 非零顶点为外点
奇偶规则 ___> 偶数顶点为外点

具体语言中的实际应用

iOS 的渲染处理

1.CGContextClip 使用非零环绕数规则来判断当前路径和裁剪路径的交集。

2.CGContextEOClip 使用奇偶环绕数规则来判断当前路径和裁剪路径的交集。

实际应用: 如何绘制出一个中间镂空的图形, 或者说如何在整片图形中形成一个镂空的不渲染空洞

* iOS 中绘制一个镂空蒙层 
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
    [path appendPath:[UIBezierPath bezierPathWithArcCenter:self.firstPoint radius:self.radiu/2 startAngle:0 endAngle:2*M_PI clockwise:NO]];
    self.maskLayer = [[CAShapeLayer alloc]init];
    self.maskLayer.path = path.CGPath;
    self.layer.mask = self.maskLayer;
上一篇下一篇

猜你喜欢

热点阅读