【问题标题】:D3D9 & Custom Clipping Planes (IDirect3DDevice9::SetClipPlane)D3D9 和自定义剪切平面 (IDirect3DDevice9::SetClipPlane)
【发布时间】:2011-07-31 21:55:05
【问题描述】:

我在文档中阅读了我们使用的中间件,对此的支持可能很不稳定,但D3D docs 没有提及。 我们要追溯到最早的硬件 SM2.0 英特尔 GMA 卡,基本上是 GMA950 和 GMA3100,所以我试图找出这些是否足够老而出现问题,或者我们正在谈论更老的固定 -仅功能芯片组。

【问题讨论】:

  • 大多数视频硬件(包括固定功能的东西)都支持剪裁平面有一段时间了。然而,英特尔的支持可能是不稳定的。

标签: 3d direct3d 3d-rendering


【解决方案1】:

只是不要打扰用户剪辑平面。它们在驱动程序中以奇怪的方式被模仿。为什么你真的需要它们?如果要优化某些东西,您将在某些硬件上获得少量收益,而在其他硬件上付出可怕的代价。如果您需要它用于某些算法,请使用 texkill 自己动手,它在任何地方都是可靠的。可能不是您想要的答案,但总的来说,不要使用它并重新考虑您的方法。

【讨论】:

  • 剪切整个多边形意味着每个像素都不必经过着色器。这些都是相当昂贵的,所以如果我可以减少 50% 的渲染像素,为什么它只是一个很小的收益呢?
  • 问题是大多数硬件都没有实现用户裁剪平面。所以他们模仿它。如果要保存填充,则需要通过投影使用基本剪裁,或者通过剪刀剪裁屏幕空间。但是用户剪辑不是免费的。这在纸面上听起来不错,但它是 90 年代很酷但现在会浪费模具空间的罕见功能之一。
  • 您应该真正了解如何在 hw 中进行裁剪:通常仅沿 z 方向进行,x/y 是在 2d 中进行后投影。 hw实际上很难裁剪,因为一个三角形可以通过裁剪创建两个三角形。这需要昂贵的缓存——每个裁剪平面都可以使一个输入三角形的三角形数量增加一倍。
猜你喜欢
  • 2023-03-04
  • 2021-10-25
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多