首页 > 解决方案 > InstancedBufferGeometry 负比例问题

问题描述

我有 InstancedBufferGeometry 在我的场景中工作。但是,一些实例是源的镜像,因此它们具有负比例来表示几何。

这会翻转这些实例的缠绕顺序,并且由于背面剔除(我想保留)而看起来错误。

我完全意识到这种方法的局限性,但我想知道是否有办法解决这个问题,我可能还没有遇到过?也许着色器中的一些技巧可以指定哪些是正面,哪些是背面?虽然我不记得这是可能的......

还是我应该做两个单独的负载?(这将重复绘制调用)我正在加载许多不同的几何图形(它们都是实例化的),因此试图确保我获得尽可能好的性能。

谢谢!

蚂蚁

[编辑:添加了更多细节]

标签: three.jsshader

解决方案


如果你提供一个例子会有所帮助。据我了解你的问题,简单的答案是 - 不,你不能那样做。据我所知,图元在到达着色器之前被拒绝,这意味着它不在您的控制范围内。如果您想使用负缩放,并确保表面仍然可见 - 启用两个面(正面和背面)的渲染。或者,您可以简单地旋转物体并坚持正比例 - 如果您必须进行镜像 - 您在这里不走运。另一个想法:有 2 个实例化对象,一个具有普通几何体,一个具有镜像,您可以修复镜像几何体中的法线。


推荐阅读