• 欢迎来到莫知我哀的博客,日常不定时更新C++、C#、Unity、OpenGL、游戏开发相关文章。同步博客: CSDN
  • 网站左下角可以开启好听的背景音乐~~
  • 如果您觉得本博客很有看点,那么赶紧使用Ctrl+D 收藏吧

[图形学]SoftwareRender 三部曲2 —— 网格

图形学 wahh 219次浏览 0个评论 扫描二维码

一.简介

在这个系列讲述绘制图元主要是以三角形为主,我们通过顶点构成三角形,三角形构成整个模型的网格。如下:

每个顶点可以携带一些信息,比如位置、法向量、颜色、UV坐标等等。后面我会在Shader着色器篇章讲述这些信息的用处。
如何用顶点来组织一个网格呢?这里我们是使用的索引顶点。也就是顶点数据只存一份,网格的图元顶点仅仅使用顶点的索引来表示。这里有篇Ogl中网格顶点组织结构的介绍

 

二.顶点结构

根据上面所述的顶点属性,我们可以简单的将顶点结构定义为如下:

 

三.网格结构

根据上面的所述,我们知道网格结构一定有两个数组,一个是存储所有的顶点,一个是用于存储图元的顶点索引。代码如下:

 

四.模型生成器

有了上面的基本结构,我们能够很好的组织我们需要绘制的模型数据,接下来我们需要提供一个工具用于生成一些常用的模型顶点数据。当然,对于哪些复杂的模型数据,一般都是由美术通过建模软件制作出来导出成模型文件,由程序读取模型文件解析得到顶点、贴图数据。不过这里我们只是使用一些简单的模型,比如正方形;所以我们直接在代码中设置顶点数据。具体代码如下:

这里只贴出了头文件,具体的函数实现由于过长就不贴出来了,目前由于没有讲解Shader,所以可能对CreateBox这个方法中创建模型顶点数据的过程不是很能理解。等下一节,我们讲述了Shader(着色器),大家就会对这个方法中顶点属性的设置有所理解。

该章节涉及到代码: Mesh.hMeshGenerator.hMeshGenerator.cpp

 


莫知我哀 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[图形学]SoftwareRender 三部曲2 —— 网格
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Title - Artist
0:00