主页 > 生活常识 > 正文

​怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)

2023-08-24 12:46 来源:贴刊网 点击:

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)

前言

最近本来是想认真学习下《opengl es第三版》这本书,无奈内容过于生涩,有点看不下去,偶遇opengl-tutorial.org的翻译教程,感觉正符合我急于实践出真知的需求,便认真通读了一遍该教程的基础教程,共8个tutorials。

基础篇主要面对初学朋友(比如猪哥),快速了解教程内容,具体细节需要自己去手动操作一遍才能体会到教程中的文字。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(1)

tutorial 1

首先,每个初学小白或者对c  开发环境不熟悉的朋友,都需要经历一个痛苦地搭建环境的过程。习惯用vscode(visual studio code, vs 的轻量级小弟)作为开发环境的我,经历了一脸懵逼的配置操作后,最终还是选择老老实实地按教程中cmake生成vs(visual studio)工程文件去调试,果然,cmake的配置还是很稳的,你只需要下载一个cmake-gui,直接按教程配置即可。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(2)

来自http://t.cn/RV5ZoBl

tutorial 2

介绍着色器(Shader),顶点着色器、片段着色器。

从绘制一个三角形的角度,使用这两个着色器渲染三角形。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(3)

来自http://t.cn/Ea8t8kZ

tutorial 3

真的是基础中的基础了,一定要认真理解好矩阵的变换在opengl坐标转换的作用,主要讲了平移矩阵(Translation Matrix)、缩放矩阵(Scale Matrix)、旋转矩阵(Rotation Matrix)。学过线性代数的朋友入门很快,手动算一遍!不会也要强迫自己记下来!

另一部分主要介绍了在不同的空间M(模型空间)->W(世界空间)->V(观察空间,摄像机空间)->P(投影空间)的转换。

模型空间->世界空间:遵循缩放->旋转->平移

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(4)

世界空间->观察空间:设置观察角度

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(5)

观察空间->投影空间:根据模型观察的距离来显示放大或缩小、远或近的效果

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(6)

来自http://t.cn/Rb3cYYH

tutorial 4

主要讲怎么给一个立方体上色,由于立方体的每个面都是由三角形划分(openGl只支持画三角形orz...),因此通过颜色缓存通过顶点着色器去传递颜色,让片段着色器去对不同顶点的颜色渲染。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(7)

PS:片段着色器的数据来源于顶点着色器传递,顶点着色器来源于颜色缓存。

最后讨论了怎么让绘制的三角形不受绘制顺序的影响(Z深度值),从而达到一个明确层级的效果。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(8)

>>>>

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(9)

来自https://dwz.cn/Dp51TEI4

tutorial 5

主要讲怎么给一个立方体贴上纹理(Texture),所谓纹理就是图片。根据UV坐标(除了正常坐标外,还需要这个坐标)把图片变形贴在表面上。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(10)

接着将怎么让纹理显示的边界毛刺弄得更加顺滑合理,主要介绍了线性过滤、各向异性过滤、Mipmaps三种方法。

最后讨论了压缩纹理,提高了处理纹理的效率!

来自http://sina.lt/fXCP

tutorial 6

主要讲怎么处理键盘鼠标事件,并且利用不同的事件来控制显示不同角度的模型。

讲述了每一帧绘制时,位置应该怎么合理变化。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(11)

最后,因放大模型导致穿透到模型内部的问题,介绍了GPU检查摄像机与三角形前后位置关系的方法(反转法线)。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(12)

来自http://sina.lt/fXCN

tutorial 7

将怎么将hardcode(硬编码,写死的数据)的模型换成使用Blender工具导出模型。

来自http://sina.lt/fXCM

tutorial 8

介绍了光照对着色的影响,不同的光照和材质会有不一样的着色效果,用到了顶点法线(顶点所有面的法线均值)。

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(13)

怎么学opengl(原创学好opengl走遍天下都不怕系列基础篇)(14)

来自http://sina.lt/fXCK

QA访问不到网址怎么办?

可以访问相关的github仓库哦 >> http://sina.lt/fXCR

怎么学习opengl?

实践,耐心,有编程基础的可以入门快,没线性代数基础的可以补!

学习过程中有问题,怎么解决?

首先谷歌百度奉上,其次再有问题(思考过无法解决的问题),可以联系我941090791@qq.com!踩坑经验奉上!

看到这里不妨添加微信搜索公众号《虚幻技术美术》,或关注头条号的我~


虚幻技术美术,用心服务游戏

,