首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 11上的NURBS?

DirectX 11上的NURBS?
EN

Stack Overflow用户
提问于 2010-10-04 16:14:59
回答 2查看 1.5K关注 0票数 4

你能用DirectX 11在GPU上渲染NURBS吗?我已经阅读了当前的趋势,渲染像这样的表面,但我没有看到任何关于NURBS。

我找到了一些相关的推荐信,但没有什么可靠的.比如查尔斯·洛普和斯科特·谢弗的“用双三次曲面逼近Catmull细分曲面”。

-

EN

回答 2

Stack Overflow用户

发布于 2011-10-19 22:56:46

在DirectX SDK中有两个演示: SubD10,SubD11用于DirectX 10/11,分别实现本文中描述的技术。

票数 2
EN

Stack Overflow用户

发布于 2017-08-11 16:12:24

答案是否定的。NURBS是相当复杂的,它将很难写一个有效的着色器,可以渲染他们的GPU。我认为这是可能的,但通常不会这样做,因为有更好的方法。

更好的方法是直接在GPU上呈现Bézier补丁,因为任何NURBS都可以转换成一组连接的Bézier补丁。要生成补丁,您在每个节点上执行节点插入,直到它达到与度相同的多重性;例如,在三次NURBS上,您将在每个节点上执行节点插入,直到每个节点是一个三重节点。NURBS的控制点可以看作是一个连通的Bézier网格。

这有一个问题,特定于着色器:当你三角化你的Bézier补丁时,关键是共享一个边界的补丁也共享完全相同的镶嵌设置,否则你的NURBS曲面会因为镶嵌不匹配而出现裂缝。如果您使用固定的镶嵌设置,这不是一个问题,但如果您使用视图依赖的镶嵌,那么您需要确保每个补丁边界有独立计算的“视图依赖”镶嵌,以便相邻的补丁将匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3857057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档