directx - 将网格切成两半 - DirectX

标签 directx mesh direct3d d3dx

我正在尝试将网格切成两半,或者至少能够实时删除其中的面。 我想知道如何去做这件事?

锁定顶点缓冲区,将选定的面或顶点 memset 为 0,对我不起作用。 有没有人对此有解决方案或教程,我真的希望在我的程序中使用此功能!

干杯

最佳答案

哦 - 那很简单。无需修改网格。 D3D 已经可以为您做到这一点!

通过IDirect3DDevice9::SetClipPlane设置剪辑平面,然后通过D3DRS_CLIPPLANEENABLE渲染状态启用平面。如果您愿意,您甚至可以同时设置多个剪辑平面..

这里是 msdn 条目的链接:http://doc.51windows.net/Directx9_SDK/?url=/directx9_sdk/graphics/reference/d3d/interfaces/idirect3ddevice9/setclipplane.htm

如果您在“D3D SetClipPlane”上进行谷歌搜索,您会发现很多关于如何使用它的讨论和示例代码。

关于directx - 将网格切成两半 - DirectX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000266/

相关文章:

windows-runtime - 在 Windows 8 中创建类似 3D 道路的效果

c++ - 我正在寻找可以在图形编辑程序中进行的任何优化

c++ - 为什么 DirectX 每隔一个着色器调用就会跳过一次?

c++ - CGAL - 如何使用 CGAL::Polygon_mesh_processing::connected_components 将一个 CGAL::Surface_mesh 转换为多个?

algorithm - 我无法确定 Meshlab 的 Close Holes 过滤器的位置

c++ - DirectX:将数组指针传递给顶点结构

javafx - 需要从高度图创建三角形网格的帮助(JavaFX)

c++ - 创建多个顶点和索引缓冲区时会消耗大量内存

c++ - 如何使用 D3DPT_TRIANGLESTRIP 基元类型在 DirectX 中绘制两个分离的矩形

c# - 在 Visual Studio 中安装 Directx 和 Direct3D