如何在C ++中为DirectX 9中的锥形初始化顶点缓冲区和索引缓冲区?
答案 0 :(得分:6)
嗯,这很容易。
圆锥在一端有一个点。
另一端你有一个圆圈。显然,你在这个圆圈中得到的点越多,它看起来就越圆。
您可以使用
绘制圆圈x = r * cos( theta );
y = r * sin( theta );
要制作任何三角形,你可以通过插入theta和theta加上一些小的epsilon(2Pi / 60会在圆锥底部周围给你60个点)来做到这一点。你的最终坐标是最高坐标1.将3个指数的每一组塞进一个索引缓冲区,你就可以了。
答案 1 :(得分:2)
为什么不使用D3DXCreateCylinder功能,第二个半径为1左右? 这样您就可以获得具有顶点和索引缓冲区的Mesh对象。从中提取应该是轻松的工作。
P.S。我更喜欢使用建模工具,但如果你需要以编程方式获取它,这是最快的方法。
答案 2 :(得分:1)
大多数专业人士使用CAD工具绘制它,这些工具能够以DX可以理解的格式保存网格。