Extensible 3D (X3D)
Part 1: Architecture and base components

Clipping (Custom)

--- X3D separator bar ---

cube Introduction

1.1 Name

The name of this component is "xj3d_Clipping". This name shall be used when referring to this component in the COMPONENT statement (see Component statement).

1.2 Overview

This clause describes the Clipping component of this part of ISO/IEC 19775. This includes how to describe additional clipping planes of for objects to provide sectioned views of the object. Table 1 provides links to the major topics in this clause.

Table 1 — Topics

cube 2 Concepts

2.1 Overview

3D Graphics rendering pipeline uses an implicit step of trimming objects that are partially in the view frustum called clipping. In addition to these implied bounds, it is also possible to provide an additional clipping of the geometry through the provision of additional clipping plane definition. This component provides the nodes and semantics needed for defining user-defined clip planes.

2.2 Clip Semantics

Clipping is defined as a plane that generates two half-spaces. The half-space that is defined as being outside the plane is removed from the renderable geometry.

2.2.1 Transformation Heirarchy

Clipping planes may be defined at any level of the grouping heirarchy. These are accumulated from the root of the scene graph down to the individual leaf nodes that are rendered. Since the lanes are collected during the traversal of the scene graph, this allows for both local and globally scoped planes. Figure 1 illustrates two objects effected by a single global plane and locally effected by a vertical plane (left) and a 45 degree plane (right)

Clip Plane demonstration

Figure 1 — Effects of local Clip Planes on geometry

2.2.2 Scoping Of Clipping Planes

When a ClipPlane node is to be defined, it shall effect only objects that are in the same transformation hierarchy as the node. Each plane is transformed according to the parent transformation heirarchy(s) but shall not be further transformed by the children it effects.

Clipping planes shall not effect nodes derived from X3DBackgroundNode.

2.2.3 Limitiations

Renderers only support a limited number of clip plane definitions (typically only 6). If, while traversing from the root of the scene to a particular leaf, more than the number of supported planes are specified, the planes closest to the leaf are discarded first (ie, the closer to the root of the scene graph, the more important they are).

cube 3 Node reference

3.1 ClipPlane

ClipPlane : X3DChildNode {
  SFBool  [in,out] enabled   TRUE
  SFVec4d [in,out] plane     0 1 0 0     [0,1]
  SFNode  [in,out] metadata  NULL   [X3DMetadataObject]

This node defines a single plane equation that will be used to clip the geometry. The plane field defines a 4 component plane equation that describes the inside and outside half space. The first 3 components shall be a normalised vector describing the direction of the plane's normal direction.

cube 5 Support Levels

The Clipping component defines a single level of support as specified in Table 2.

Table 2 — Clipping component support levels

Level Prerequisites Nodes/Features Support
1 Core 1
Grouping 1
ClipPlane All fields fully supported.
--- X3D separator bar ---
[ Xj3D Homepage | Xj3D @ Web3d | Screenshots | Dev docs | Dev Releases | Contributors | Getting Started ]
Last updated: $Date: 2004-10-13 20:10:19 $