Information technology - Coding of audio-visual objects - Part 16: Animation Framework eXtension (AFX)

ISO/IEC 14496-16:2009 specifies MPEG-4 Animation Framework eXtension (AFX) model for representing and encoding 3D graphics assets to be used standalone or integrated in interactive multimedia presentations (the latter when combined with other parts of MPEG-4). Within this model, MPEG-4 is extended with higher-level synthetic objects for geometry, texture, and animation as well as dedicated compressed representations. AFX also specifies a backchannel for progressive streaming of view-dependent information.

Technologies de l'information — Codage des objets audiovisuels — Partie 16: Extension du cadre d'animation (AFX)

General Information

Status
Withdrawn
Publication Date
14-Dec-2009
Withdrawal Date
14-Dec-2009
Current Stage
9599 - Withdrawal of International Standard
Start Date
25-Oct-2011
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 14496-16:2009 - Information technology -- Coding of audio-visual objects
English language
336 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 14496-16:2009 - Information technology -- Coding of audio-visual objects
English language
336 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 14496-16:2009 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Coding of audio-visual objects - Part 16: Animation Framework eXtension (AFX)". This standard covers: ISO/IEC 14496-16:2009 specifies MPEG-4 Animation Framework eXtension (AFX) model for representing and encoding 3D graphics assets to be used standalone or integrated in interactive multimedia presentations (the latter when combined with other parts of MPEG-4). Within this model, MPEG-4 is extended with higher-level synthetic objects for geometry, texture, and animation as well as dedicated compressed representations. AFX also specifies a backchannel for progressive streaming of view-dependent information.

ISO/IEC 14496-16:2009 specifies MPEG-4 Animation Framework eXtension (AFX) model for representing and encoding 3D graphics assets to be used standalone or integrated in interactive multimedia presentations (the latter when combined with other parts of MPEG-4). Within this model, MPEG-4 is extended with higher-level synthetic objects for geometry, texture, and animation as well as dedicated compressed representations. AFX also specifies a backchannel for progressive streaming of view-dependent information.

ISO/IEC 14496-16:2009 is classified under the following ICS (International Classification for Standards) categories: 35.040 - Information coding; 35.040.40 - Coding of audio, video, multimedia and hypermedia information. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 14496-16:2009 has the following relationships with other standards: It is inter standard links to ISO/IEC 14496-16:2009/FDAmd 1, ISO/IEC 14496-16:2011, ISO/IEC 14496-16:2006/Amd 1:2007, ISO/IEC 14496-16:2006/Amd 3:2008, ISO/IEC 14496-16:2006/Amd 2:2009, ISO/IEC 14496-16:2006. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 14496-16:2009 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 14496-16
Third edition
2009-12-15
Information technology — Coding of
audio-visual objects —
Part 16:
Animation Framework eXtension (AFX)
Technologies de l'information — Codage des objets audiovisuels —
Partie 16: Extension du cadre d'animation (AFX)

Reference number
©
ISO/IEC 2009
PDF disclaimer
PDF files may contain embedded typefaces. In accordance with Adobe's licensing policy, such files may be printed or viewed but shall
not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading a PDF file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create the PDF file(s) constituting this document can be found in the General Info relative to
the file(s); the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the files are suitable for
use by ISO member bodies. In the unlikely event that a problem relating to them is found, please inform the Central Secretariat at the
address given below.
This CD-ROMcontains:
1) the publication ISO/IEC 14496-16:2009 in portable document format (PDF), which can be viewed
using Adobe® Acrobat® Reader;
2) electronic attachments for AFX.
Adobe and Acrobat are trademarks of Adobe Systems Incorporated.

©  ISO/IEC 2009
All rights reserved. Unless required for installation or otherwise specified, no part of this CD-ROM may be reproduced, stored in a retrieval
system or transmitted in any form or by any means without prior permission from ISO. Requests for permission to reproduce this product
should be addressed to
ISO copyright office • Case postale 56 • CH-1211 Geneva
...


INTERNATIONAL ISO/IEC
STANDARD 14496-16
Third edition
2009-12-15
Information technology — Coding of
audio-visual objects —
Part 16:
Animation Framework eXtension (AFX)
Technologies de l'information — Codage des objets audiovisuels —
Partie 16: Extension du cadre d'animation (AFX)

Reference number
©
ISO/IEC 2009
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.

©  ISO/IEC 2009
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2009 – All rights reserved

Contents Page
Foreword .vi
1 Scope.1
2 Normative references.1
3 Symbols and abbreviated terms .1
3.1 Introduction.2
3.2 The AFX place within computer animation framework .3
3.3 Geometry tools .5
3.3.1 Non-Uniform Rational B-Spline (NURBS) .5
3.3.2 Subdivision surfaces .8
3.3.3 MeshGrid representation.28
3.3.4 MorphSpace .34
3.3.5 MultiResolution FootPrint-Based Representation .35
3.3.6 Solid representation.39
3.4 Texture tools .49
3.4.1 Depth Image-Based Representation.49
3.4.2 Depth Image-based Representation Version 2.53
3.4.3 Multitexturing.57
3.5 Animation tools .62
3.5.1 Deformation tools.62
3.5.2 Generic skeleton, muscle and skin-based model definition and animation .64
3.6 Rendering tools .74
3.6.1 Shadows.74
4 AFX bitstream specification - 3D Graphics compression tools .76
4.1 Introduction.76
4.2 Geometry tools .77
4.2.1 3DMC Extension .77
4.2.2 Wavelet Subdivision Surfaces .134
4.2.3 MeshGrid stream .137
4.2.4 MultiResolution FootPrint-Based Representation .174
4.3 Texture tools .182
4.3.1 Depth Image-Based Representation.182
4.3.2 PointTexture stream.187
4.4 Animation tools .197
4.4.1 Bone-based animation.197
4.4.2 Frame-based Animated Mesh Compression (FAMC) stream.211
4.5 Generic tools.234
4.5.1 Multiplexing of 3D Compression Streams: the MPEG-4 3D Graphics stream (.m3d) syntax .234
4.5.2 AFX Generic Backchannel.238
5 AFX object codes .249
6 3D Graphics Profiles .250
6.1 Introduction.250
6.2 "Graphics" Dimension .251
6.2.1 MPEG-4 X3D Interactive Graphics Profiles and Levels.251
6.2.2 MPEG-4 "Basic AFX" Graphics Profiles and Levels.254
6.3 "Scene Graph" Dimension.256
6.3.1 MPEG-4 X3D Interactive Scene Graph Profile and Levels .256
6.3.2 PEG-4 "Basic AFX" Scene Graph Profile and Levels .259
6.4 "3D Compression" Dimension .261
6.4.1 "Core 3D Compression" Profile and Levels .262
© ISO/IEC 2009 – All rights reserved iii

6.4.2 3D Multiresolution Compression Profile and Levels .265
7 XMT representation for AFX tools.269
7.1 AFX nodes .269
7.2 AFX encoding hints .269
7.2.1 WaveletSubdivision encoding hints .269
7.2.2 MeshGrid encoding hints.269
7.2.3 OctreeImage encoding hints .270
7.2.4 PointTexture encoding hints .270
7.2.5 BBA encoding hints.270
7.3 AFX encoding parameters .270
7.3.1 WaveletSubdivisionEncodingParameters.270
7.3.2 MeshGridEncodingParameters .271
7.3.3 PointTextureEncodingParameters.272
7.3.4 BBAEncodingParameters .272
7.4 AFX decoder specific info.273
7.4.1 WaveletSubdivision decoder specific info.273
7.4.2 MeshGrid decoder specific info .273
7.5 XMT for Bone-based Animation .274
7.5.1 BBA .274
7.5.2 BBA_header .274
7.5.3 BBA_encoding .275
7.5.4 BBA_body.275
7.5.5 BBA_frame .275
7.5.6 BBA_frameMask .275
7.5.7 BoneMask.276
7.5.8 MuscleMask.277
7.5.9 MorphMask.277
7.5.10 BBA_frameValues.278
Annex A (normative) Wavelet Mesh Decoding Process.279
A.1 Overview.279
A.2 Base mesh .279
A.3 Definitions and notations.279
A.4 Bitplanes extraction .280
A.5 Zero-tree decoder .281
A.6 Synthesis filters and mesh reconstruction.281
A.7 Basis change.282
Annex B (normative) MeshGrid Representation .283
B.1 The hierarchical multi-resolution MeshGrid .283
B.1.1 Building MeshGrid multi-resolution levels .283
B.1.2 Relation between the resolution level of the mesh and the number of reference-surfaces.284
B.1.3 Relation between the resolution level of the grid and the number of reference-surfaces.284
B.1.4 Region Of Interest (ROI): Computation of the ROIs size and position.285
B.2 Scalability Modes.287
B.2.1 Scalability types.287
B.2.2 The mesh resolution scalability .288
B.2.3 The scalability in shape precision .288
B.2.4 The vertex position scalability .289
B.3 Animation Possibilities .290
B.3.1 Introduction.290
B.3.2 Vertex-based animation .290
B.3.3 Rippling effects, changing the offsets.291
B.3.4 Animation of the reference-grid points .291
Annex C (informative) MeshGrid representation .293
C.1 Representing Quadrilateral meshes in the MeshGrid format .293
C.2 IndexedFaceSet models represented by the MeshGrid format. .294
C.3 Computation of the number of ROIs at the highest resolution level given an optimal ROI
size .294
iv © ISO/IEC 2009 – All rights reserved

Annex D (informative) Solid representation .296
D.1 Overview.296
D.2 Solid Primitives.296
D.3 Arithmetics of Forms .297
D.3.1 Introduction.297
D.3.2 General Arithmetic Operators on Densities.298
D.3.3 Ternary Logic: The Kleene Operators .300
D.3.4 Densities Filtering .302
Annex E (informative) Face and Body animation: XMT compliant animation and encoding
parameter file format.303
E.1 XSD for FAP file format.303
E.2 XSD for BAP file format .304
E.3 XSD for EPF .305
Annex F (normative) Local refinements for MultiResolution FootPrint-Based Representation.309
Annex G (informative) Partition Encoding for FAMC .311
Annex H (informative) Animation Weights Encoding for FAMC .312
Annex I (normative) Layered decomposition for FAMC .313
I.1 Obtaining the layered decomposition.313
I.2 Deriving layers ld[l], l>0 using decoded data and connectivity
(layeredDecompositionIsEncoded equals 1).314
I.3 Deriving layers ld[l], l>0 using only connectivity (default option,
layeredDecompositionIsEncoded equals 0).314
I.4 Deriving layer ld[0] .317
I.5 Mesh simplification .319
Annex J (normative) Reconstruction of values from decoded prediction errors with LD technique
for FAMC.321
Annex K (normative) CABAC definitions, basic functions, and binarizations (as used for FAMC).324
K.1 CABAC definitions .324
K.1.1 Definition of the term CabacContext .324
K.1.2 Definition of the term DecodingEnvironment .324
K.2 CABAC basic functions .324
K.2.1 Definition of the function cabac.biari_init_context( ctx, preCtxState ) .324
K.2.2 Definition of the function cabac.arideco_start_decoding( dec_env ) .324
K.2.3 Definition of the function cabac.biari_decode_symbol( dec_env, ctx ).325
K.2.4 Definition of the function cabac.biari_decode_symbol_eq_prob( dec_env ) .327
K.2.5 Definition of the function cabac.biari_decode_final( dec_env ).328
K.3 CABAC binarization functionss .328
K.3.1 Definition of the function cabac.exp_golomb_decode_eq_prob( dec_env, k ) .328
K.3.2 Definition of the function cabac.unary_exp_golomb_decode( dec_env, ctx,
exp_start ).328
Annex L (normative) Node coding tables.330
L.1 Node Coding tables.330
L.2 Node Definition Type tables .330
Annex M (informative) Patent statements .331
Bibliography.332

© ISO/IEC 2009 – All rights reserved v

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 14496-16 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information.
This third edition cancels and replaces the second edition (ISO/IEC 14496-16:2006), of which it constitutes a
minor revision. It also incorporates ISO/IEC 14496-16:2006/Amd.1:2007, ISO/IEC 14496-16:2006/
Amd.1:2007/Cor.1:2008, ISO/IEC 14496-16:2006/Amd.1:2007/Cor.2:2008, ISO/IEC 14496-16:2006/
Amd.2:2009, ISO/IEC 14496-16:2006/Amd.3:2008.
ISO/IEC 14496 consists of the following parts, under the general title Information technology — Coding of
audio-visual objects:
⎯ Part 1: Systems
⎯ Part 2: Visual
⎯ Part 3: Audio
⎯ Part 4: Conformance testing
⎯ Part 5: Reference software
⎯ Part 6: Delivery Multimedia Integration Framework (DMIF)
⎯ Part 7: Optimized reference software for coding of audio-visual objects [Technical Report]
⎯ Part 8: Carriage of ISO/IEC 14496 contents over IP networks
⎯ Part 9: Reference hardware description
⎯ Part 10: Advanced Video Coding
⎯ Part 11: Scene description and application engine
⎯ Part 12: ISO base media file format
vi © ISO/IEC 2009 – All rights reserved

⎯ Part 13: Intellectual Property Management and Protection (IPMP) extensions
⎯ Part 14: MP4 file format
⎯ Part 15: Advanced Video Coding (AVC) file format
⎯ Part 16: Animation Framework eXtension (AFX)
⎯ Part 17: Streaming text format
⎯ Part 18: Font compression and streaming
⎯ Part 19: Synthesized texture stream
⎯ Part 20: Lightweight Application Scene Representation (LASeR) and Simple Aggregation Format (SAF)
⎯ Part 21: MPEG-J Graphics Framework eXtensions (GFX)
⎯ Part 22: Open Font Format
⎯ Part 23: Symbolic Music Representation
⎯ Part 24: Audio and systems interaction [Technical Report]
⎯ Part 25: 3D Graphics Compression Model
⎯ Part 27: 3D Graphics conformance

© ISO/IEC 2009 – All rights reserved vii

INTERNATIONAL STANDARD ISO/IEC 14496-16:2009(E)

Information technology — Coding of audio-visual objects —
Part 16:
Animation Framework eXtension (AFX)
1 Scope
This Part of ISO/IEC 14496 specifies MPEG-4 Animation Framework eXtension (AFX) model for representing
and encoding 3D graphics assets to be used standalone or integrated in interactive multimedia presentations
(the latter when combined with other parts of MPEG-4). Within this model, MPEG-4 is extended with higher-
level synthetic objects for geometry, texture, and animation as well as dedicated compressed representations.
AFX also specifies a backchannel for progressive streaming of view-dependent information.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
document (including any amendments) applies.
ISO/IEC 14496-1:2004, Information technology — Coding of audio-visual objects — Part 1: Systems
ISO/IEC 14496-2:2004, Information technology — Coding of audio-visual objects — Part 2: Visual
ISO/IEC 14496-11:2005, Information technology — Coding of audio-visual objects — Part 11: Scene
description and application engine
ISO/IEC 14496-25:2008, Information technology — Coding of audio-visual objects — Part 25: 3D Graphics
Compression Model
3 Symbols and abbreviated terms
List of symbols and abbreviated terms.
AFX Animation Framework eXtension
BIFS BInary Format for Scene
DIBR Depth-Image Based Representation
ES Elementary Stream
IBR Image-Based Rendering
NDT Node Data Type
© ISO/IEC 2009 – All rights reserved 1

OD Object Descriptor
VRML Virtual Reality Modelling Language

Animation Framework eXtension – 3D Graphics Primitives
3.1 Introduction
MPEG-4, ISO/IEC 14496, is a multimedia standard that enables composition of multiple audio-visual objects
on a terminal. Audio and visual objects can come from natural sources (e.g. a microphone, a camera) or from
synthetic ones (i.e. made by a computer); each source is called a media or a stream. On their terminals, users
can display, play, and interact with MPEG-4 audio-visual contents, which can be downloaded previously or
streamed from remote servers. Moreover, each object may be protected to ensure a user has the right
credentials before downloading and displaying it.
Unlike natural audio and video objects, computer graphics objects are purely synthetic. Mixing computer
graphics objects with traditional audio and video enables augmented reality applications, i.e. applications
mixing natural and synthetic objects. Examples of such contents range from DVD menus, and TV's Electronic
Programming Guides to medical and training applications, games, and so on.
Like other computer graphics specifications, MPEG-4 synthetic objects are organized in a scene graph based
on VRML97 [1], which is a direct acyclic tree where nodes represent objects and branches their properties,
called fields. As each object can receive and emit events, two branches can be connected by the means of a
route, which propagates events from one field of one node to another field of another node. As any other
MPEG-4 media, scenes may receive updates from a server that modify the topology of the scene graph.
The Animation Framework eXtension (AFX)'s main objective is to propose compression scheme for static and
animated 3D assets. This encoded version is encapsulated in an Elementary Stream, a similar approach as
the one used by audio or video in MPEG-4. The AFX compression is closely connected to the definition of the
graphics primitives in the scene graph. For such reason, AFX second objective is to update the scene graph
when necessary and define new BIFS nodes for graphics primitives. However, AFX compression can also
operate on other scene graph formalisms (as indicated in ISO/IEC 14496-25 a.k.a. MPEG-4 Part 25).
The place of AFX within MPEG-4 terminal architecture is illustrated in Figure 1.

Figure 1 — Animation Framework eXtension (in green) and MPEG-4 Systems.
2 © ISO/IEC 2009 – All rights reserved

Figure 1 shows the position of the Animation Framework within MPEG-4 Terminal architecture. It extends the
existing BIFS tree with new nodes and define the AFX streams that carry dedicated compressed object
representations and a backchannel for view-dependent features.
3.2 The AFX place within computer animation framework
To understand the place of AFX within computer animation framework [35], let's take an example. Suppose
one wants to build an avatar. The avatar consists of geometry elements that describe its legs, arms, head and
so on. Simple geometric elements can be used and deformed to produce more physically realistic geometry.
Then, skin, hair, cloths are added. These may be physic-based models attached to the geometry. Whenever
the geometry is deformed, these models deform and thanks to their physics, they may produce wrinkles.
Biomechanical models are used for motion, collision response, and so on. Finally, the avatar may exhibit
special behaviors when it encounters objects in its world. It might also learn from experiences: for example, if
it touches a hot surface and gets hurt, next time, it will avoid touching it. This hierarchy also works in a top to
bottom manner: if it touches a hot surface, its behavior may be to retract its hand. Retracting its hand follows a
biomechanical pattern. The speed of the movement is based on the physical property of its hand linked to the
rest of its body, which in turn modify geometric properties that define the hand.

Figure 2 — Models in computer games and animation [35].
1) Geometric component. These models capture the form and appearance of an object. Many characters
in animations and games can be quite efficiently controlled at this low-level. Due to the predictable
nature of motion, building higher-level models for characters that are controlled at the geometric level
is generally much simpler.
2) Modeling component. These models are an extension of geometric models and add linear and non-
linear deformations to them. They capture transformation of the models without changing its original
shape. Animations can be made on changing the deformation parameters independently of the
geometric models.
3) Physical component. These models capture additional aspects of the world such as an object’s mass
inertia, and how it responds to forces such as gravity. The use of physical models allows many
motions to be created automatically and with unparallel realism.
4) Biomechanical component. Real animals have muscles that they use to exert forces and torques on
their own bodies. If we already have built physical models of characters, they can use virtual muscles
to move themselves around. These models have their roots in control theory.
© ISO/IEC 2009 – All rights reserved 3

5) Behavioral component. A character may expose a reactive behavior when its behavior is solely based
on its perception of the current situation (i.e. no memory of previous situations). Goal-directed
behaviors can be used to define a cognitive character’s goals. They can also be used to model
flocking behaviors.
6) Cognitive component. If the character is able to learn from stimuli from the world, it may be able to
adapt its behavior. These models are related to artificial intelligence techniques.
AFX specification currently deals with the first two categories. Models of the last two categories are typically
application-specific and often designed programmatically. While the first four categories can be animated
using existing tools such as interpolators, the last two categories have their own logic and cannot be animated
the same way.
In each category, one can find many models for any applications: from simple models that require little
processing power (low-level models) to more complex models (high-level models) that require more
computations by the terminal. VRML [1] and BIFS specifications provide low-level models that belong to the
Geometry and Modeling components.
Higher-level components can be defined as providing a compact representation of functionality in a more
abstract manner. Typically, this abstraction leads to mathematical models that need few parameters. These
models cannot be rendered directly by a graphic card: internally, they are converted to low-level primitives a
graphic card can render.
Besides a more compact representation, this abstraction often provides other functionalities such as view-
dependent subdivision, automatic level-of-details, smoother graphical representation, scalability across
terminals, and progressive local refinements. For example, a subdivision surface can be subdivided based on
the area viewed by the user. For animations, piecewise-linear interpolators require few computations but
require lots of data in order to represent a curved path. Higher-level animation models represent animation
using piecewise-spline interpolators with less values and provide more control over the animation path and
timeline.
In the remaining of this document, this conceptual organization of tools is followed in the same spirit an author
will create content: the geometry is first defined with or without solid modeling tools, then texture is added to it.
Objects can be deformed and animated using modeling and animation tools. Behavioral and Cognitive models
can be programmatically implemented using JavaScript or MPEG-J defined in ISO/IEC 14496-11.
NOTE: Some generic tools developed originally within the Animation Framework eXtension have been
relocated in ISO/IEC 14496-11 along with other generic tools. This includes:
• Spline-based generic animation tools, called Animator nodes;
• Optimized interpolator compression tools;
• BitWrapper node that enables compressed representation of exisiting nodes;
• Procedural textures based on fractal plasma.
4 © ISO/IEC 2009 – All rights reserved

3.3 Geometry tools
3.3.1 Non-Uniform Rational B-Spline (NURBS)
3.3.1.1 Introduction
A Non-Uniform Rational B-Spline (NURBS) curve of degree p > 0 (and hence of order p+1) and control points
{P} (0 ≤ i ≤ n−1; n ≥ p+1) is mathematically defined as [34], [60], [85]:
i
n−1
N (u)w P
∑ i, p i i
n−1
i=0
C(u) = R (u)P =
∑ i, p i
n−1
i=0
N (u)w

i, p i
i=0
The parameter u ∈ [0, 1] allows to travel along the curve and {R } are its rational basis functions. The latter
i,p
th
can in turn be expressed in terms of some positive (and not all null) weights {w}, and {N }, the p -degree B-
i i,p
Spline basis functions defined on the possibly non-uniform, but always non-decreasing knot sequence/vector
of length m = n + p+1: U = {u , u , …, u }, where 0 ≤ u ≤ u ≤ 1 ∀ 0 ≤ i ≤ m − 2.
0 1 m−1 i i+1
The B-Spline basis functions are defined recursively using the Cox de Boor formula:
⎧1 if u ≤ u < u ;
i i+1
N (u) =

i,0
0 otherwise;

u − u
u − u
i+ p+1
i
N (u) = N (u) + N (u).
i, p i, p−1 i+1, p−1
u − u u − u
i+ p i i+ p+1 i+1
If u = u = … = u , it is said that u has multiplicity k. C(u) is infinitely differentiable inside knot spans, i.e.,
i i+1 i+k−1 i
for u < u < u , but only p−k times differentiable at the parameter value corresponding to a knot of multiplicity
i i+1
k, so setting several consecutive knots to the same value u decreases the smoothness of the curve at u. In
j j
general, knots cannot have multiplicity greater than p, but the first and/or last knot of U can have multiplicity
p+1, i.e., u = … = u = 0 and/or u = … = u = 1, which causes C to interpolate the corresponding
0 p m−p−1 m−1
endpoint(s) of the control polygon defined by {P }, i.e., C(0) = P and/or C(1) = P . Therefore, a knot vector of
i 0 n−1
⎧ ⎫
⎪ ⎪
the kind U = u = 0,…,0,u ,…,u ,1,…,1 = u causes the curve to be endpoint interpolating, i.e., to
⎨ 0 p+1 m− p−2 m−1⎬
����� ���� ���
⎪ ⎪
p+1 p+1
⎩ ⎭
interpolate both endpoints of its control polygon. Extreme knots, multiple or not, may enclose any non-
decreasing subsequence of interior knots: 0 < u ≤ u < 1. An endpoint interpolating curve with no interior
i i+1
th
knots, i.e., one with U consisting of p+1 zeroes followed by p+1 ones, with no other values in between, is a p -
degree Bézier curve: e.g., a cubic Bézier curve can be described with four control points (of which the first and
last will lie on the curve) and a knot vector U = {0, 0, 0, 0, 1, 1, 1, 1}.
It is possible to represent all types of curves with NURBS and, in particular, all conic curves (including
parabolas, hyperbolas, ellipses, etc.) can be represented using rational functions, unlike when using merely
polynomial functions.
Other interesting properties of NURBS curves are the following:
• Affine invariance: rotations, translations, scalings, and shears can be applied to the curve by applying
them to {P }.
i
• Convex hull property: the curve lies within the convex hull defined by {P}. The control polygon defined
i
by {P } represents a piecewise approximation to the curve. As a general rule, the lower the degree, the
i
closer the NURBS curve follows its control polygon.
© ISO/IEC 2009 – All rights reserved 5

• Local control: if the control point P is moved or the weight w is changed, only the portion of the curve
i i
swept when u < u < u is affected by the change.
i i+p+1
• NURBS surfaces are defined as tensor products of two NURBS curves, of possibly different degrees
and/or numbers of control points:
n−1 l−1
N (u)N (v)w P
∑∑ i, p j,q i, j i, j
i=0 j=0
C(u,v) =
n−1 l−1
N (u)N (v)w
∑∑ i, p j,q i, j
i=0 j=0
The two independent parameters u, v ∈ [0, 1] allow to travel across the surface. The B-Spline basis functions
are defined as previously, and the resulting surface has the same interesting properties that NURBS curves
have. Multiplicity of knots may be used to introduce sharp features (corners, creases, etc.) in an otherwise
smooth surface, or to have it interpolate the perimeter of its control polyhedron.
3.3.1.2 NurbsCurve
3.3.1.2.1 Node interface
NurbsCurve { #%NDT=SFGeometryNode
eventIn MFInt32 set_colorIndex
exposedField SFColorNode color NULL
exposedField MFVec4f controlPoint [ ]
exposedField SFInt32 tessellation 0
# [0, ∞)
field MFInt32 colorIndex [ ]
# [-1, ∞)
field SFBool colorPerVertex TRUE
field MFFloat knot [ ]
field SFInt32 order 4 # [3, 34]
}
3.3.1.2.2 Functionality and semantics
The NurbsCurve node describes a 3D NURBS curve, which is displayed as a curved line, similarly to what
is done with the IndexedLineSet primitive.
The order field defines the order of the NURBS curve, which is its degree plus one.
The controlPoint field defines a set of control points in a coordinate system where the weight is the last
component. The number of control points must be greater than or equal to the order of the curve. All weight
values must be greater than or equal to 0, and at least one weight must be strictly greater than 0. If the weight
of a control point is increased above 1, that point is more closely approximated by the surface. However the
surface is not changed if all weights are multiplied by a common factor.
The knot field defines the knot vector. The number of knots must be equal to the number of control points
plus the order of the curve, and they must be ordered non-decreasingly. By setting consecutive knots to the
same value, the degree of continuity of the curve at that parameter value is decreased. If o is the value of the
field order, o consecutive knots with the same value at the beginning (resp. end) of the knot vector cause the
curve to interpolate the first (resp. last) control point. Other than at its extremes, there may not be more than
−1 consecutive knots of equal value within the knot vector. If the length of the knot vector is 0, a default knot
o
vector consisting of o 0’s followed by o 1’s, with no other values in between, will be used, and a Bézier curve
of degree o−1 will be obtained. A closed curve may be specified by repeating the starting control point at the
end and specifying a periodic knot vector.
The tessellation field gives hints to the curve tessellator as to the number of subdivision steps that must be
used to approximate the curve with linear segments: for instance, if the value t of this field is greater than or
equal to that of the order field, t can be interpreted as the absolute number of tesselation steps, whereas
t = 0 lets the browser choose a suitable tessellation.
6 © ISO/IEC 2009 – All rights reserved

Fields color, colorIndex, colorPerVertex, and set_colorIndex have the same semantic as for
IndexedLineSet applied to the control points.
3.3.1.3 NurbsCurve2D
3.3.1.3.1 Node interface
NurbsCurve2D { #%NDT=SFGeometryNode
eventIn MFInt32 set_colorIndex
exposedField SFColorNode color NULL
exposedField MFVec3f controlPoint [ ]
exposedField SFInt32 tessellation 0
# [0, ∞)
field MFInt32 colorIndex [ ] # [-1, ∞)
field SFBool colorPerVertex TRUE
field MFFloat knot [ ]
# (-∞, ∞)
field SFInt32 order 4 # [3, 34]
}
3.3.1.3.2 Functionality and semantics
The NurbsCurve2D is the 2D version of NurbsCurve; it follows the same semantic as NurbsCurve
with 2D control points.
3.3.1.4 NurbsSurface
3.3.1.4.1 Node interface
NurbsSurface { #%NDT=SFGeometryNode
eventIn MFInt32 set_col
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...