立体图元的绘制与渲染,之前的文章已经完全实现了图元的“颜色填充”,图元边框的绘制也有接触,详情可参考:OpenGL之矩阵堆栈绘制立体图元。
这里具体的介绍一下图元边框的绘制原理和流程:

  • 首先,如果图元没有渲染边框 ,是什么效果呢?通过效果图,我们可以看到:图元分不清轮廓,看不清图元面与面的区分,很难看出图元具体是什么样子,这主要是因为出现类似ZFighting的问题,OpenGL中没有办法通过相同颜色的图层,来区分图层关系。

  • 边框的绘制流程:
    ① 通过颜色填充绘制图元的基本形状;
    ② 开启多边形偏移,并设置偏移量(图层与图层之间设置间隙,才能渲染黑色边框);
    ③ 开启抗锯齿功能,让渲染的边框线更加光滑,不会显得太突兀;
    ④ 开启颜色混合,设置混合因子(平面和边框的颜色不同);
    ⑤ 设置边框绘制模式和边框的宽度(绘制线框几何黑色版三种模式:实心、边框、点;可以作用在正面、背面或者两面);
    ⑥ 绘制并填充边框;
    ⑦ 还原设置(通过调用glPolygonMode将多边形正面或者背面设为全部填充模式);
  • 具体代码:

OpenGL之图元描边的绘制流程相关推荐

  1. OpenGL 学习系列--基础的绘制流程

    这里,假定绘制一个位于原点的点(0,0),那么映射之后的位置就手机屏幕的中心了. 基本图元 解决了位置的问题,接下来就是形状和颜色的问题. 如同 Android 的 Canvas 对象提供了一些方法来 ...

  2. 【OpenGL ES】入门及绘制一个三角形

    本文首发于个人博客:Lam's Blog - [OpenGL ES]入门及绘制一个三角形,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博 ...

  3. OpenGL ES基础教程,绘制三角形(补充,附代码)

    简介 OpenGL OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维亦可),是一个功能强大,调用方 ...

  4. Android绘制流程

    一.前言 1.1.C++界面库 MFC.WTL.DuiLib.QT.Skia.OpenGL. Android里面的画图分为2D和3D两种: 2D是由Skia 来实现的,3D部分是由OpenGL实现的. ...

  5. viewpager初始化fragment没有绘制_NDK OpenGL ES渲染系列 之 绘制三角形

    前言 新的知识学习都是循序渐进的,从基础到复杂.前面OpenGL ES概念 已经介绍了OpenGL ES的相关概念,这篇文章开始我们就正式开始OpenGL ES渲染系列第一站---绘制三角形.绘制三角 ...

  6. gallery3d源码学习总结(一)——绘制流程drawFocusItems

    eoe·Android开发者门户 标题: gallery3d源码学习总结(一)--绘制流程drawFocusItems [打印本页] 作者: specialbrian    时间: 2010-10-2 ...

  7. View绘制流程的入口

    View绘制流程的入口是WindowManager.add(decor, l),从Activity的创建开始分析,具体流程如下: Activity.onCreate() setContentView( ...

  8. Android-----View绘制流程以及invalidate()等相关方法分析 .

    引自:http://blog.csdn.net/qinjuning/article/details/7110211 前言: 本文是我读<Android内核剖析>第13章----View工作 ...

  9. Android中View绘制流程以及invalidate()等相关方法分析

                                                                                                        ...

最新文章

  1. 费曼:所有的科学知识都是不确定的
  2. java生成自己定义的表ID
  3. Android --- 微信支付时出现错误:错误的签名,验签失败,return_code=FAIL
  4. 华为云服务器自己维护吗,云服务器要维护吗
  5. 区块链分布式云存储项目盘点
  6. SourceInsight 常用快捷键
  7. BootStrap笔记-img相关
  8. 如何避免循环中“突兀”的break和continue
  9. LINUX命令之stat及显示的三个时间戳
  10. mysql 多版本删除_高性能MySQL(四):多版本并发控制
  11. 选择本地照片之后即显示在Img中(客户体验)
  12. gxworks2使用指令手册_三菱 GX 三菱 GX Works2操作手册(智能功能功能模块操作篇)...
  13. MikuMikuDance:渲染扩展《2》
  14. 【JAVA】数据结构——二叉树的学习
  15. Fluent——UDF监测指定点的物理量
  16. 关于Autosar中的NM模块的理解
  17. 无线龙物联网STM32+ZigBee实验箱智能家居多种传感器开发平台
  18. Vue从浅显程度理解(三)-----Vue生命周期
  19. 酷睿i7和i5对计算机专业要求,电脑i5和i7区别有多大?聪明人都这样选择处理器的!...
  20. 一篇文章搞清楚直播协议RTMP

热门文章

  1. Windows Mobile和Wince下使用TinyXML进行Native C++的开发
  2. 【转】Asp.NetMve移除HTTP Header中服務器信息Server、X-AspNet-Version、X-AspNetMvc-Version、X-Powered-By:ASP.NET...
  3. js深入理解构造函数和原型对象
  4. Comet:基于 HTTP 长连接的“服务器推”技术解析
  5. 使用Oracle UTL_FILE包操作文件
  6. 解决.NET CF 3.5 Bitmap(Stream)未处理异常问题
  7. andorid 第一天 搭建环境(于本博另一篇文章 ubuntu下安装andoird SDK相同内容)
  8. linux cache 内核参数,Linux内核中drop_caches参数
  9. CSS 七层叠层顺序(stacking level)
  10. Java黑皮书课后题第7章:7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字。估算调用程序清单7-6中的linearSearch方法的执行时间