![]() |
1
6
你可以用
|
![]() |
2
5
有很多方法可以创建球体。 一种是使用极坐标生成球体的切片。
考虑到这个结构,您将生成如下的球体(我没有测试过这个,所以我可能有点错)。
我相信这就是d3dxCreateSphere的工作方式。当然,上面的代码并不能构成人脸,但是如果你下定决心的话,那就不是一个特别复杂的代码了。) 另一种,在我看来更有趣的是,方法是通过曲面细分。 如果您从一个具有与上述代码定义相同的法线的多维数据集开始,您可以递归地细分每一侧。基本上你可以找到脸部的中心。生成从中心到新点的向量。正常化。将顶点向外推到球体的半径,如下所示(假设v.n*是标准化的法线):
然后对要细分的面的每个边的中点重复此过程。 现在可以将每个面拆分为4个新的四边形面。然后,您可以将每个四元细分为4个新的四元,依此类推,直到达到所需的细化级别。 我个人发现这个过程在球体上提供了比第一种方法更好的顶点分布。 |
![]() |
Developer · DirectX:在向量缓冲区中存储多个顶点 7 年前 |
|
Eugen · 如何检查是否使用了真正的硬件视频适配器 7 年前 |
![]() |
IAS0601 · Directx阴影映射 7 年前 |
![]() |
Dev.K. · 处理3D动画图形着色器和相同3D动画GIF的差异 7 年前 |