效果展示

整体思路与步骤拆分

  • 渲染绘制绿色方格地板部分;
  • 渲染绘制中心位置的红色大球,并实现其自转
  • 渲染绘制随机位置的50个静态小球和一个围绕红色大球公转的动态蓝色球
  • 渲染实现动态蓝色球绕红色大球的公转
  • 实现移动观察者(camera),仍能观察红色大球自转及动态蓝色球围绕红球公转的效果;

重点函数

  • void gltMakeSphere(GLTriangleBatch& sphereBatch, GLfloat fRadius, GLint iSlices, GLint iStacks); // 初始化球体的三角形批次,参数依次是:球半径、片段数、堆叠数;
  • glRotatef(-80.0f, 10.0f, 1.0f, 0.0f) 表示将当前图形沿方向向量(-10,1,0)顺时针旋转80度;
  • glTranslatef(0.0f, -20.0f, -40.0f) 表示将当前图形向x轴平移0,向y轴平移-20,向z轴平移-40;
  • 如果先旋转在绘制,则是表现为自转;而如果先绘制在旋转,再移动一定距离,是为了到达绘制公转的地方;
  • 在变换坐标的时候,使用的是glT

OpenGL之渲染大小球自转和公转的效果相关推荐

  1. 案例06:大球自转+小球公转+移动

    OpenGL + OpenGL ES +Metal 系列文章汇总 这个案例是OpenGL中的一个比较经典的综合案例,结合了OpenGL中大部分知识点,下面就来了解下这个案例 先来看看最终的效果 整体的 ...

  2. OpenGL HDR渲染

    OpenGL HDR渲染 HDR渲染简介 浮点帧缓冲 色调映射 HDR渲染简介 一般来说,当存储在帧缓冲(Framebuffer)中时,亮度和颜色的值是默认被限制在0.0到1.0之间的.这个看起来无辜 ...

  3. Qt移动应用开发(八):实现跨平台的QML和OpenGL混合渲染

    Qt移动应用开发(八):实现跨平台的QML和OpenGL混合渲染 上一篇文章讲到了利用C++这个桥梁,我们实现了QML和Java的交互.Qt 5大力推崇的QML/JS开发,让轻量.高速开发的QML/J ...

  4. CSharpGL(30)用条件渲染(Conditional Rendering)来提升OpenGL的渲染效率

    CSharpGL(30)用条件渲染(Conditional Rendering)来提升OpenGL的渲染效率 当场景中有比较复杂的模型时,条件渲染能够加速对复杂模型的渲染. 条件渲染(Conditio ...

  5. Android硬件加速(二)-RenderThread与OpenGL GPU渲染

    Android4.0之后,系统默认开启硬件加速来渲染视图,之前,理解Android硬件加速的小白文简单的讲述了硬件加速的简单模型,不过主要针对前半阶段,并没怎么说是如何使用OpenGL.GPU处理数据 ...

  6. OpenGL分片渲染实现

    通过OpenGL单机渲染的图片分辨率总是有限的(通常情况下viewPort的大小为2K或者更小),但随着计算机图形学的发展,超高分辨率图片的需求越来越大.为了解决这种供需之间的矛盾,通过一些数学计算, ...

  7. qt android opengl,案例:实现Qt和OpenGL混合渲染 | 求索阁

    Qt自有一个绘图的引擎,这个引擎的核心就是QPainter,我们知道QPainter在渲染二维图形和文字有很大的优势,而OpenGL是当前流行的三维渲染器,怎样才能将两者结合起来,制作更为丰富的应用程 ...

  8. OpenGL 四边形渲染的实例

    OpenGL 四边形渲染 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <vmath.h> #include <string& ...

  9. OpenGL 分层渲染Layered Rendering的实例

    OpenGL 分层渲染Layered Rendering 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <string> #incl ...

最新文章

  1. ORACLE 数据的逻辑组成
  2. 数据对智慧城市建设 起到极大作用
  3. C# .net core 使用自定义的WebProxy
  4. 电子科技大学研究生计算机与科学,2019年电子科技大学计算机科学与工程学院考研复试分数线...
  5. 限时免费!Cell旗下 Heliyon 多学科特刊征稿
  6. 小程序中view的自定义属性获取
  7. 石油-美元金融体系的形成
  8. nginx的配置笔记
  9. [转载][FPGA]有限状态机FSM学习笔记(二)
  10. 1.8 centos7网络排错
  11. jQuery文档处理
  12. GO语言学习之路18
  13. /etc/init.d/functions详解
  14. 说三件可能你不知道的小事
  15. 西宾喜马拉雅语音下载工具(ximalayadown)
  16. RandomAccessFile发生java.io.FileNotFoundException
  17. IT行业职位分为六大类
  18. 【基于深度学习的脑电图识别】应用篇:DEEP LEARNING APPROACHES FOR AUTOMATIC ANALYSIS OF EEGS
  19. 用Android手机充当台式电脑的摄像头、麦克风和音箱
  20. Android基础-MMKV基本使用

热门文章

  1. ArrayList刷题总结
  2. Django基础,Day3 - 编写 django admin
  3. List接口实现类-ArrayList、Vector、LinkedList集合深入学习以及源代码解析
  4. Ubuntu Server 下的网络配置
  5. 【OpenCV学习】矩阵基本操作
  6. Hadoop Hbase适合存储哪类数据?(转)
  7. oracle 10G windows启动与关闭另类方法
  8. python37安装opencv41_Vs2019+opencv4.1.0+python3.7,包安装,vs2019opencv410python37,程序包
  9. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
  10. php中mysql函数和mysqli函数的用法区别