D3D11 加载静态3D模型(.obj格式)

本教程详细介绍了如何在D3D11中从.obj文件加载静态3D模型,包括理解.obj和.mtl文件格式,处理顶点、纹理坐标和法线,以及材质加载。讲解了从头开始处理模型数据,转换坐标系,以及处理透明子集的绘制顺序。同时,还涉及到顶点和索引缓冲的创建,以及材质结构体的定义。
摘要由CSDN通过智能技术生成

本章节将学习如何从.obj文件加载静态3D模型。通常在游戏内不会想要使用.obj文件,因为它们不包含动画,且它们是ascii格式的,所以它会比其他格式的文件比如.3ds的要大一些,但是这是一个用于学习如何加载模型的好起点。

本章基于聚光灯构建。

和.obj文件一起的是.mtl文件,它是一个材质库。还会学习使用.mtl文件来为模型加载材质。.obj文件很大并且没有包含动画,所以通常会想要给游戏使用一个不同的模型格式。然而,.obj格式是一个学习如何加载模型的很好的文件。

.obj文件格式

.obj格式文件已经存在很长一段时间。它是三大最老的模型格式之一,现在仍然广泛使用。

.obj文件不包含类似其他文件格式的头信息。头信息位于文件的开头,会给人一点关于文件的信息。比如,在一个3D模型文件内的头可能告诉你在文件内有多少顶点,纹理坐标,法线,材质,子集以及面。由于.obj文件不包含这个信息,我们能够使用后面的两种方式中的一种。第一件事就是可以读该文件两次。第一次读会收集信息,这些信息包括多少个顶点,面,法线等。还有,所以我们能够为每条信息初始化矩阵。第二次读取会获取实际模型信息,比如顶点位置,并将它们存储在一个初始化的数组中,这是一种很低效的方式来获得向量。第二种方式就是我们能够加载一个obj文件并使用向量来实现。一个向量是一个动态数组,不是使用一个设置大小来初始化它࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值