open inventor / coin3d 如何实现像 OpenGL 一样的 two-sided 渲染?

How does open inventor / coin3d enable two-sided rendering like OpenGL?

Coin3D默认使用single-sided渲染如下图:

open inventor / coin3d如何实现two-sided像OpenGL一样的渲染?

如果您已经将 vertexOrdering 设置为 [=14=,则应将 shapeType 设置为 UNKNOWN_SHAPE_TYPE,然后在场景图形中的几何体之前添加一个 SoShapeHints 节点] 或 COUNTERCLOCKWISE,或者对于任何形状类型将 vertexOrdering 设置为 UNKNOWN_ORDERING,例如

ShapeHints {
    vertexOrdering UNKNOWN_ORDERING
    shapeType UNKNOWN_SHAPE_TYPE
}

如需进一步说明,请参阅 Coin3DSoShapeHints 文档

SoShapeHints 是答案,但这个总结可能更清楚:

  • 默认禁用双面照明和背面剔除。
  • 双面照明:如果不是实体有序顶点,则启用。
    将 vertexOrdering 设置为 COUNTERCLOCKWISE(通常)或 CLOCKWISE。
  • 背面剔除:如果实体有序顶点,则启用。
    将 shapeType 设置为 SOLID。