InstancedBufferGeometry负标度问题

问题描述 投票:1回答:1

我在我的场景中有InstancedBufferGeometry。但是,某些实例是源的镜像,因此它们具有表示几何的负标度。

由于Back Face Culling(我想保留),这会翻转那些实例的缠绕顺序并且看起来不对。

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

或者我应该做两个单独的负载? (这将复制绘制调用)我正在加载许多不同的几何(都是实例化的),所以试图确保我获得最佳性能。

谢谢!

[编辑:添加更多细节]

three.js shader
1个回答
0
投票

如果你提供一个例子,它会有所帮助。至于我能理解你的问题,简单的答案是 - 不,你做不到。据我所知,基元在进入着色器之前就被拒绝了,这意味着它不在你的控制之下。如果要使用负缩放,并确保曲面仍然可见 - 启用两个面(正面和背面)的渲染。或者,您可能只需旋转物体并坚持正尺度即可 - 如果您必须进行镜像 - 那么您在这里运气不佳。还有一个想法:拥有2个实例对象,一个具有普通几何,一个具有镜像,您可以修复镜像几何中的法线。

© www.soinside.com 2019 - 2024. All rights reserved.