OpenGL学习——实验项目

本博客记录了一次从零开始的天安门3D建模过程,涵盖了从程序初始化、绘制基本图形到实现场景漫游和光照效果的全过程。作者分享了在建模过程中遇到的问题及解决方案,如材质设置、相机控制优化等,最终在课程结束前完成了天安门广场的3D模型。

这里记录一下实验的进度,从现在开始预计一个月+完成。

11.6

1、程序初始化的基本框架:窗口属性、视图等基本的初始化设置。
2、绘制个四边形作为地面看看效果。
3、实现场景漫游,键盘控制调整相机位置、视线方向。
ps:天安门的模型大小细节还在设计中,所以目前在尝试搞些其他的模块功能。
计划:下一次画出天安门的基本样式:比如一大一下叠起来的方块。

11.7

1、加入了载入纹理函数,通过简单的纹理映射,验证了基本可以实现功能。
2、尝试设置一些纹理和光照,基本可行,只是还不太熟练,对光颜色和材质设置的把控还不是太精准。
3、绘制了一个太阳(球体),并且可以自动的移动,比如东升西落。
4、将代码结构拆分开,把键盘响应和纹理处理分别写到.h文件中。
5、问题

  • 材质的设置机制有点没搞懂,因为他是保存在状态中的,那我怎样不启用材质绘制东西呢??
  • 漫游时旋转相机方向后再进行移动很缓慢。
  • 太阳会移动360度,不能在180度的时候停止。

6、计划:简单加入了纹理、材质和光照框架,光照环境可以以后再调制。目前还是尽快先把模型绘制出来比较靠谱。

11.11

1、把画立方体的代码加了进来,并写到一个.h当中。
2、解决了前面材质的那个问题。只要使用了颜色跟踪,就可以在使用材质的同时,使用glColor函数去设置图元颜色了。
3、加入了简单的光照模型,这块看了点资料还是不太懂,以后再做。
4、把各种变量,参数拿出来写进了一个.h中。
5、计划:了解一下混合。

11.13

1、今天用立方体画了三个建筑。(感谢阿琛绘制的模型图和标注的坐标)
2、把绘图的部分放到一个.h中。
3、优化了一下视角移动缓慢的问题,增加了上下调整视角的按键。
4、计划:优化建筑,增加建筑细节。
在这里插入图片描述

12.12

终于又更新了哈,这次更新就直接更最后的完成效果了。在上次更新日期到12月5号间,没有对程序做任何改进,也就中间学了下阴影还没学好,用不到程序上。由于只剩最后一次课了,需要进行展示,对于我这种要面子的人肯定不想丢人,只能硬着头皮开始赶了。最后还好,从12.5到12.12,总算在最后一天的3点多完成了目前这个版本的天安门广场3D建模。

可惜的就是没有时间跟精力去记录下这一周来建模的过程,不然回看这个过程肯定很有意思。
在这里插入图片描述在这里插入图片描述

结语

咋说呢,这程序用的技术还真不是特别多,我自认为就是个花时间的事,也包括在学期前半段时间我断断续续去学习OpenGL和glut的一些用法和技术。计算机图形学,唉,理论知识也不爱听,这程序做的也比较low,我学到了啥呢?想一想。

最后感谢我的小伙伴们,大家都贡献出了自己的力量,非常感谢!

ps:另外一篇程序总结,请看:
https://www.jianshu.com/p/586b0b56e371

实验OpenGL+GLUT开发平台搭建 5 小实验1: 开发环境设置 5 小实验2: 控制窗口位置和大小 6 小实验3:默认的可视化范围 6 小实验4:自定义可视化范围 7 小实验5: 几何对象变形的原因 8 小实验6: 视口坐标系及视口定义 8 小实验7:动态调整长宽比例,保证几何对象不变形 9 实验二 动画和交互 10 小实验1: 单缓冲动画技术 10 小实验2: 双缓冲动画技术 11 小实验3:键盘控制 13 小实验4:鼠标控制【试着单击鼠标左键或者右键,试着按下鼠标左键后再移动】 14 实验三 几何变换、观察变换、三维对象 16 小实验1:二维几何变换 16 小实验2:建模观察(MODELVIEW)矩阵堆栈 17 小实验3:正平行投影1 19 小实验4:正平行投影2 19 小实验5:正平行投影3 20 小实验6:透射投影1 21 小实验6:透射投影2 22 小实验7:三维对象 24 实验四 光照模型和纹理映射 26 小实验1:光照模型1----OpenGL简单光照效果的关键步骤。 26 小实验2:光照模型2----光源位置的问题 28 小实验3:光照模型3----光源位置的问题 31 小实验4:光照模型4----光源位置的问题 33 小实验5:光照模型5----光源位置的问题 35 小实验6:光照模型6----光源位置的问题 38 小实验7:光照模型7----光源位置的动态变化 40 小实验8:光照模型8----光源位置的动态变化 43 小实验9:光照模型9---光源位置的动态变化 45 小实验10:光照模型10---聚光灯效果模拟 48 小实验11:光照模型11---多光源效果模拟 50 小实验12:光照效果和雾效果的结合 53 小实验13:纹理映射初步—掌握OpenGL纹理映射的一般步骤 56 小实验13:纹理映射—纹理坐标的自动生成(基于参数的曲面映射) 59 小实验14:纹理映射—纹理坐标的自动生成(基于参考面距离) 61
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值