图元的属性---OpenGL填充区属性函数

OpenGL填充图案函数

  • 4f6e04a35f49e809923a15f86645ba6776c.jpg
  • aa27090e99b6202de9b8fcc4acf5578c798.jpg
  • b15fb84bbd7dc190f7b5a9bbc44ddfee875.jpg
  • 图案从显示窗口的左下角开始,在整个显示窗口中重复,而指定的多边形用与其重叠的图案部分填充。
  • 一旦建立了一个掩模,可以使用下列函数将其用作填充图案:fdffacb020b0e4b082ba0b3cb9246c4b0f2.jpg
  • 在指定要使用当前图案填充的多边形顶点之前必须激活填充子程序,可以使用下面的函数来实现:0cddf4f00b564f74a121d29862952677596.jpg
  • 关掉颜色填充的函数为:33e0130a75a9a3b7ba5b01c6645c60242ec.jpg

OpenGL纹理和插值图案

  • 插值图元用来为各种光照条件下的着色表面生成真实感显示。
  • 下面的程序段将蓝色、红色、绿色分别赋给一个三角形的三个顶点。多边形填充就是在三个顶点之间的颜色插值:

68420624b9d7366efc08a033e6643da23be.jpg

  • 如果将glShadeModel函数中的变量改变为GL_FLAT,则多边形用最后指定的颜色来填充。

OpenGL线框图方法

  • 我们可以仅显示多边形的边,来生成线框图或多边形的空心显示。还可以通过显示一组顶点来显示多边形。这些选项通过下面的函数来选定:5b8d2a23eadae373328853834302a4d8955.jpg
  • f5d488cf0e155f99ed24871e1f94920b23f.jpg
  • 对于一个三维多边形来说,这种显示填充多边形的方法可能在边之间生成缝隙。这种称为缝线的效果有扫描线填充算法和边的画线算法的计算差别造成。
  • 15ed1de0e4e823bea1a43c78cd097602eda.jpg
  • 消除三维多边形显示边缝隙的一个办法是移动由填充子程序计算的深度值,使它们与多边形的边深度值不重叠。下面的两个函数可以实现这一点:81b334e59f3134c22eb46528ae27158fad3.jpg
  • 这里,maxSlope是多边形的最大斜率,const是实现常数。对于xy平面上的一个多边形来说,斜率为0。否则,最大斜率用多变形深度的变化除以x或y的变化而得。两个因子的典型值为0.75和1.0。下面将展示一个位移因子赋值的例子:cb6cc3bf9b4f773b093432af8feb2100100.jpg
  • 另一种消除多边形边上缝线效果的方法是使用OpenGL的模板缓存来限制多边形内部填充,从而使它和边不重叠。但是这种方法较为复杂且一般较慢,因而多数使用深度位移方法。
  • 为了使用OpenGL函数来显示一个凹多边形,必须先将它分割成一组凸多边形。如果只要显示多边形顶点,我们可以只绘制三角形顶点。但为了显示原始凹多边形的线框图,就不能将显示模式设定为GL_LINE,因为这将把作为多边形内部的所有三角形显示出来。
  • fd0126b834a8a3be362324f76b5e1b65e8a.jpg
  • 多边形边标志也可以在一个数组中指定,该数组可以与顶点数组混合或作为其附加数组。创建一个边标志数组的语句为:4ffb81871fffc7e36fc2c7baf2611fa9da5.jpg
  • 参数offset指出数组edgeFlagArray中边标志值之间的字节数。参数offset的默认值是0。

OpenGL前向面函数

  • 9952401dcdaa45123581ab1a6cdc9486599.jpg

 

转载于:https://my.oschina.net/liyangke/blog/2254020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值