WO2008026003A2 - 3 d pdf document generator and method for generating 3d pdf documents - Google Patents

3 d pdf document generator and method for generating 3d pdf documents Download PDF

Info

Publication number
WO2008026003A2
WO2008026003A2 PCT/GB2007/050497 GB2007050497W WO2008026003A2 WO 2008026003 A2 WO2008026003 A2 WO 2008026003A2 GB 2007050497 W GB2007050497 W GB 2007050497W WO 2008026003 A2 WO2008026003 A2 WO 2008026003A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
template
input data
parameters
values
Prior art date
Application number
PCT/GB2007/050497
Other languages
French (fr)
Other versions
WO2008026003A3 (en
Inventor
Ian Curington
Prashanth Udupa
Original Assignee
Visual Technology Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visual Technology Services Ltd filed Critical Visual Technology Services Ltd
Publication of WO2008026003A2 publication Critical patent/WO2008026003A2/en
Publication of WO2008026003A3 publication Critical patent/WO2008026003A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Definitions

  • the present invention relates to an apparatus and method for generating documents containing 3D interactive content. More particularly it relates to a means and apparatus for generating PDF (portable document format) documents by use of a 3D template allowing various data sources, containing 3D data to export that data in 3D PDF document format, suitable for distribution to recipients by file or network.
  • PDF portable document format
  • PDF document format The generation, publication and distribution of information in PDF document format is well known.
  • the document format is the subject of standardisation efforts, with the currently published specification at PDF version 1.6 and is supported by many companies, most notably Adobe® Inc., who distribute the Adobe Reader for browsing and viewing PDF content.
  • U3D Universal 3D standard
  • Intel® Inc., Adobe Inc. and others has led to the definition of a Universal 3D standard (U3D) which is now the subject of the published ECMA-363 standard specification.
  • U3D is a specification for downstream 3D CAD re-purposing and visualization.
  • the syntax and semantics of U3D is the generic core of this specification and allows the development of implementations to read, write, visualize and share U3D files. However, it is a complex specification and covers many low-level details of abstract data structures and attributes.
  • the specification exceeds the technical complexity of many current 3D applications, scene-trees or 3D technical data sources.
  • the U3D standard specifies geometry compression including continuous level of detail (CLOD) methods.
  • Adobe® Inc. has published a specification for PDF version 1.6 which allows for the possibility of 3D content embedding within a document.
  • Adobe Inc. now distributes the Adobe Reader version 7 which includes support for browsing and viewing PDF files which include embedded 3D content in U3D format. Recipients of such 3D PDF files may view them in the Adobe Reader, with enhanced interactivity including zoom magnification, smooth panning (left, right, up, down) and full 3D rotation under mouse control.
  • the Adobe Reader is unable to view U3D files directly as the content must first be embedded into PDF format by an authoring system.
  • Acrobat 3D allows import of 3D content in U3D file format and subsequent generation of PDF file output with embedded 3D content suitable for viewing with the Adobe Reader.
  • Several other companies offer comparable applications providing import of U3D files and export of PDF files with 3D content. While the Acrobat 3D application allows editing of view placement and general scene attributes, it does not allow generation, specification or editing of actual 3D geometry; they must be imported from external geometry sources.
  • SDK Adobe® PDF Library software development kit
  • VTK Visualization Tool Kit
  • AVS/Express from Advanced Visual Systems Inc.
  • OSG Open Scene Graph
  • Each of these contain distinct 3D data structures, distinct internal architectures, such that internal methods for exporting 3D data to PDF require distinct solutions.
  • the appropriate place to source 3D data is at the raw computational mesh stage, while in others it is at the graphics scene-tree viewer output stage.
  • the present invention was developed in response to the foregoing problems associated with 3D data publishing, reporting and 3D PDF file generation.
  • the present invention introduces a 3D document generator with preferred embodiment as a re-usable software development toolkit (SDK) providing a direct path from host application 3D data to PDF output with 3D interactive content, allowing the addition of "save as 3D PDF" services within host applications with significantly less development effort than previously possible and eliminating the step of first creating a U3D file followed by a PDF embedding step.
  • SDK software development toolkit
  • the software development toolkit eliminates the need for separate U3D and PDF conversion phases, while automatically generating attributes where attributes may be unspecified or incomplete in the host application, and eliminating the requirement for intermediate files.
  • the 3D document generator has an improved and novel connector process architecture which offers flexibility and efficiency benefits to application author(s).
  • the current invention comprises an apparatus and means for generating 3D documents.
  • the 3D document generator may include the automatic generation of attributes by means of a 3D template, which serves to enable disparate and distinct forms and structures of 3D input data provided by potential data sources, such as 3D geometric files, applications, simulations and measurement systems.
  • the 3D template also accommodates varying levels of completeness in the input data (as compared to a fully completed 3D template), such that the absence of 3D parameters, attributes and values may be unknown prior to receiving 3D input data.
  • prior art systems rely on complex conversions involving library plug-ins in order to manipulate the diverse data structures received from different sources.
  • the 3D document generator may comprise several means and processes for data connection, where each means or process may be suitable for connection by a host application with particular input source data structure requirements. Each connection may or may not be connected while used within any given host application.
  • connection processes or “connectors” may each have distinct data structures such that they may be used at the most appropriate place within a host application, simplifying integration tasks.
  • the 3D document generator includes all services required to directly generate PDF format documents which include 3D embedded content. Such PDF content is most often, but not exclusively viewed using the Adobe Reader application.
  • the invention provides 3D document generator for use by host applications that directly generates 3D PDF content without any requirement for intermediate storage such as U3D files or other geometric model file formats.
  • the preferred embodiment may generate U3D content according to the ECMA-363 specification and/or the U3D content accepted by the Adobe Reader application as a practicality, but is not restricted to such 3D data specifications.
  • the 3D document generator is preferably packaged in a re-usable system that may be deployed and utilised in a wide variety of host applications.
  • the 3D document generator may thus provide a common platform that allows direct generation of 3D PDF content within applications with greatly simplified integration steps.
  • the 3D document generator may operate as a dynamic web reporting service.
  • it may be used in a Three-Tier web architecture, where web site reporting requests generate 3D PDF content which may be streamed to the recipient over a network. This example is described in more detail below and is illustrated in Figure 1.
  • Animation or any dynamic, time or event dependent changes to the 3D content may be specified in one of two principle ways.
  • attribute modifier channels are associated with nodes within the 3D model structure. These are available for play-back by the Adobe Reader or other viewing system.
  • the second is the association of animation scripts external to 3D content, embedded and included within the 3D PDF generated output. Such scripts are introduced at the PDF stage of the generation process. Such animation scripts may control visibility, transformations, camera views, object rendering attributes, etc.
  • a typical use of such scripts is the association of event buttons within the PDF document, where these events may cause execution of associated scripts.
  • Such scripts may play animations involving geometric objects, lights, camera views, etc.
  • Scripts are optional and may be absent for static scenes.
  • Several scripts may be embedded, for instance a simple object rotation plus exploded parts view animations.
  • the default style of animation script currently employed by the Adobe Reader is a form of "Java Script", however the 3D document generator is primarily script independent.
  • the invention may also provide a facility to process input data to the 3D document generator including geographically referenced numerical coordinate information, including but not limited to UTM latitude, longitude and elevation (or depth) information.
  • geographically referenced numerical coordinate information including but not limited to UTM latitude, longitude and elevation (or depth) information.
  • data sources may be provided by host applications involving mapping, GPS, Geographic Information System (GIS) data, geological or geophysical field survey data, oceanographic, meteorological, environmental or other geo-spatial data context.
  • GIS Geographic Information System
  • geo-spatial data is processed with methods appropriate to produce content for interactive navigation and viewing by recipients without requiring intermediate file conversions or coordinate system conversions.
  • the invention may also provide input facilities for a wide range of geometric and scientific data, including coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes.
  • Data structures of 3D input data contain geometric primitives including but not limited to vertices.
  • 3D document generator is configured to apply visualization interpretation operators, providing geometric objects appropriate for document output.
  • An example of such visualization interpretation is where a 2D mesh with geographically referenced coordinates and associated temperature values are converted into a geometric mesh object with an attached texture map showing temperatures according to a color index.
  • the 3D document generator may comprise one or more of: software, hardware and firmware.
  • the 3D document generator is implemented in software in the form of a software development kit (SDK) which includes a C++ library for re-use among a variety of host applications.
  • SDK software development kit
  • the invention may also provide conversion services within the 3D document generator to compress, reduce or simplify geometric objects, including generation of continuous level of detail (CLOD) structures, suitable for variable fidelity graphical presentation during rendering.
  • CLOD continuous level of detail
  • time-varying or 4D models may be processed and represented within the 3D document generator.
  • 4D models are generally considered to include 3D models that vary over time. This may be as trivial as a position or color change over time, or as significant as each time state having no characteristic shared (zero temporal coherence).
  • the 3D document generator places individual nodes within the output hierarchy, where each node describes the state of the model at a point in time. In this way models may have varying number of coordinates, varying connectivity, changing polygons, changing coordinate positions, animated textures, and other dynamic attributes.
  • either attribute modifier channels may be assigned, or animation scripts used to selectively present time-dependent model states to the document recipient.
  • model meta-data may be co-published along with 3D models.
  • the 3D model alone is insufficient to communicate key information; context and meta-data must also be available.
  • 3D formats such as VRML have existed for many years, there has not been a convenient way to associate meta-data with such models.
  • the PDF document structure is principally a text, image and 2D illustration rich publishing format and as such is ideally suited to meta-data.
  • the present invention provides a meta-data connector for the host application(s) for populating meta-data content within the generated output.
  • aspects of the invention can provide re-usable 3D document generator libraries, components, or plug-ins. Other aspects may form the basis of specialized applications or data conversion utility programs.
  • the presence or absence of visible graphics within the host application is immaterial to the present invention, as it provides connection processes ("connectors") for both graphical and non-graphical portions of the host application architecture.
  • an apparatus for generating 3D documents comprising a plurality of data connection means, at least one of said data connection means being adapted to access, receive and transmit 3D input data; means for generating a 3D template; means for identifying in said template parameters for which no update is required; means for identifying in said input data parameters which are required to update said template; means for automatically updating said 3D template by applying the values of said required parameters of said 3D input data to said template; means for integrating the updated 3D template into a PDF document.
  • updating means to fill in, partially fill in, substitute, overlay or replace parameter values in the 3D template with values of required parameters in the input data.
  • a dynamic parameter generator When the said required parameters in the input data have zero or empty values to apply a null update wherein the value in the template remains at its initial value.
  • a further completion procedure may be performed: a dynamic parameter generator generates a value of said required parameter depending on a subset of the other parameters, the subset being defined and associated with that required parameter.
  • a flag or null pointer When the said required parameters in the input data have zero or empty values a flag or null pointer may be referenced.
  • Non-required parameters may be considered to be those parameters which are invariant over the range of possible received 3D input data values, while required parameters may be considered to be those parameters which are dependent on at least a subset of the possible received 3D input data values.
  • Data connectors may be configured to accept a distinct data type, this being any one of key data, lists, arrays, text strings and numerical values.
  • the data connector may be a scene graph connector for transmitting 3D data.
  • the data may be supplied from one or more hosts which store and support a plurality of distinct host applications, said data connector accessing, receiving and transmitting data from said host means.
  • At least one data connector may be a technical data source access connector for receiving technical data, the technical data being stored in a host application stored and supported on the host.
  • the 3D input data may be directly received from said host applications stored and supported on said host means without passing any intermediate 3D files to the generator.
  • the system may also provide a viewer for making the 3D information which results from integrating the updated 3D template visible in a dedicated window in the PDF document and capable of manipulation in 3D by the user.
  • the system may also comprise an output for producing computer readable documents, said documents being either stored files or streamed as network data.
  • the data connectors may accept geometric entities including vertices.
  • the integral 3D input data may include spatially referenced numerical coordinate information such as geographical reference data comprising longitude, latitude, altitude and directional bearings.
  • the spatially referenced numerical coordinate information may be molecular referenced coordinates or real physical dimensions or real physical properties of an object or simulated object.
  • the system After receipt of the 3D input data the system performs one or more of the following operations on the 3D input data: geometric compression, geometric reduction, level of detail simplification, or continuous level of detail processes.
  • the template generator may accept time varying input data and produce output suitable for replay of said time varying data.
  • At least one of said data connectors may be configured to accept meta-data; and said meta-data is included, reported or present in the generated output. It may access, receive and transmit 3D input data comprising one or more of: coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes.
  • a method for generating 3D documents comprising: providing a plurality of data connection means and data connection processes, at least one of said data connection means or processes being adapted to access, receive and transmit 3D input data; generating a 3D template; identifying in said template parameters for which no update is required; identifying in said input data parameters which are required to update said template; automatically updating said 3D template by applying the values of said required parameters of said 3D input data to said template; integrating the updated 3D template into a PDF document
  • parameter values in the 3D template may be filled in, partially filled in, substituted, overlaid or replaced with values of required parameters in the input data.
  • a null update may be applied
  • a further completion procedure is applied, which comprises a dynamic parameter generation step, generating a value of said required parameter depending on a subset of the other parameters, the subset being defined and associated with that required parameter.
  • the automatic updating step may reference a flag or null pointer.
  • non-required parameters may be considered to be those parameters which are invariant over the range of possible received 3D input data values and required parameters may be considered to be parameters which are dependent on at least a subset of the possible received 3D input data values.
  • Data connection means and processes may be adapted to accept a distinct data type., the data type being at least one of key data, lists, arrays, text strings and numerical values.
  • the data connection means and process may be a scene graph connector or process for transmitting 3D data.
  • a plurality of distinct host applications may be stored and supported, said data connection means accessing, receiving and transmitting data from said host applications.
  • At least one data connector or connection process may be a technical data source access connector or connection process for receiving technical data, the technical data being stored in a host application stored and supported on the host means.
  • the input 3D data may be received directly from said host applications stored and supported on said host means without passing intermediate 3D data files to the generator.
  • the 3D information which results from integrating the updated 3D template may be made visible in a dedicated window in the PDF document and capable of manipulation in 3D by the user.
  • the output produces computer readable documents, said documents being either stored files or streamed as network data.
  • At least one of said data connection means or process may accept geometric entities including vertices.
  • the integral 3D input data may include spatially referenced numerical coordinate information, such as spatially referenced numerical coordinate information comprises geographical reference data comprising longitude, latitude, altitude and directional bearings or molecular referenced coordinates or real physical dimensions or real physical properties of an object or simulated object.
  • One or more of the following operations may be performed on the 3D input data: geometric compression, geometric reduction, level of detail simplification, or continuous level of detail processes.
  • Time varying input data is accepted and output suitable for replay of said time varying data is produced.
  • the data connection means or process accepts meta-data; and said meta-data is included is reported or present in the generated output.
  • the data connection means or process accesses, receives and transmits 3D input data comprising one or more of: coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes.
  • a computer program for storage on a machine readable medium is foreseen and will carry instructions for implementing the method described above.
  • the invention may also comprise interactive graphics applications within this computer program.
  • GLOSSARY OF TERMS coordinate lists spatial coordinates comprising x, x-y, or x-y-z positional values
  • connectivity lists primitive shapes defined by indexes into coordinate list points: individual atomic locations at a coordinate with optional data lines: collections of line segments defined by two or more points polygons: planar N-sided geometric shapes joining three or more points polyhedrons: 3D shapes enclosing volumetric regions with polygonal surfaces triangle strips: array of connected triangles with optimal connectivity scheme
  • meshes structured or unstructured collections of connected polygons or polyhedra, may be a polygon surface or a volumetric cells: 1 D, 2D, or 3D primitives, with associated data splines: curved lines or surfaces in 2D or 3D space, such as NURBS, Catmull-Rom Splines or B-Splines surfaces: generally collections of connected planar primitives grids: structured 2D, 3D, 4D lattices including vertices and cells adaptive mesh refinements (AMR): hier
  • geometric compression Reduction in the storage requirements of a geometric object or collection of objects. May be loss-less or lossy compression.
  • geometric reduction Reduction in both storage requirements of a geometric object and complexity, such as reducing polygon count or reducing connectivity or vertices to achieve a reduction.
  • level of detail simplification The generation of reduced versions of a geometric object, where the appropriate version may be selected during display based on display rate or distance from viewer, continuous level of detail processes: An optimisation of level of detail simplification, where instead of storing a fixed collection of various object resolutions, a continuously varying object fidelity is possible.
  • U3D Universal 3D. This is a 3D model format described by the 3DIF organization.
  • PDF Portable Document Format. This is a document format created by Adobe describing documents that look the similar across all supported platforms and contains 3D content specification.
  • Interface A programming construct that comprises of a abstract class.
  • interfaces do not offer any predefined functionality; but they offer a predefined structure into which the functionality can be implemented. Interfaces are implemented by the programmer to react when the system issues commands to the interface. Each interface is used by the library for a specific purpose.
  • API Application Programming Interface, is a class method that has a predefined
  • Palettes can be thought of as "register books" in U3D that contains the names of objects and pointers to them. Different types of objects are stored in different palettes. For example there is a model resource palette, light resource palette, view resource palette, texture resource palette, shader resource palette etc. Each palette holds objects of a specific type; and objects can be accessed by their names.
  • This mechanism of storing objects is a substitute for the age-old reference counting mechanism of referencing objects.
  • the palette mechanism decouples garbage collection from object usage because all objects are referenced via their object names and not direct pointers. Hence the question of reference counting does not arise here.
  • Figure 1 shows a schematic representation of a three tier web reporting system, where internet web services allow users to receive dynamically generated 3D content
  • Figure 2 shows a schematic representation of the 3D document generator architecture and internal components
  • Figure 3 shows a schematic representation of public interfaces presented to the host application author(s) for management of the 3D document generation process
  • Figure 4 shows a schematic representation of 3D document generation system where host application data is converted using a public interface, where internal interfaces are used with interface exposure;
  • Figure 5 shows a schematic representation of 3D model data structure showing scene graph and node relationships
  • Figure 6 shows a schematic representation of a scene tree consisting of one root node with multiple view, light and model nodes
  • Figure 7 shows a schematic representation of connection options between host application(s) and the 3D PDF Generation System.
  • Figure 1 shows the event flow through the internet web services embodiment of the 3D document generator.
  • users access 3D data through a website.
  • the event flow is organized across three tiers of infrastructure supporting web access, namely the user or data recipient's local web browser tier (100), generally at a remote location; the web server tier (105) responsible for processing HTTP internet traffic, presenting and allowing navigation through web pages, resolving hyper-links, and managing requests to back-end services and; the technical data tier (110), or back-end, where storage, data-bases and specialised services are activated and managed by the web server tier (105).
  • the user accesses a web page, making a request for a technical report (115).
  • This request is handled by the web server which starts the management process (120), which requests the initial technical tier service.
  • the technical tier (110) then loads report meta-data (125) by accessing a stored technical database (145) which may contain both meta-data and 3D technical data content.
  • the web server receives this result and proceeds to build a summary report page from the meta- data (130), passing that summary report back to the user.
  • the user upon receiving the report makes further selections and requests a technical report for 3D content (135).
  • This report is managed by the web server which initiates the requested content building process (140).
  • the technical tier accesses detailed content from database (145), proceeding to dynamically generate 3D PDF content using the PDF3D document generator services (160).
  • the 3D document generator is thus involved in converting and interpreting original 3D model information, coupled with meta-data to generate a complete PDF document containing embedded 3D content as well as other contextual report information.
  • the resulting PDF content is passed to the web server which manages the transfer of the document to the user (150). As it arrives and is opened by the user (155), full 3D rotation, scale, translation, object selection interactions are available to the recipient of the document.
  • PDF documents do not need to be persistent within server storage systems, rather can be generated on-the-fly by user initiated requests.
  • FIG 2 shows the 3D document generator internal architecture and major components.
  • the 3D document generator embodiment may be a library with a defined external interface, API, provided in the form of a software development kit (SDK), we see in this diagram that any number of diverse and distinct host application(s) 200 may chose to utilize the services of the document generator. Any of such host applications may use the generator by reference to two categories of process; conversion and export. If the application finds it appropriate to populate geometric objects with scene-graph organisation, the Scene Graph Connector (205) is available. Here the data organisation is hierarchical, with nodes, meshes and attributes. At each position in the scene-tree hierarchy, nodes may be inserted to hold model entities (208).
  • SDK software development kit
  • Mesh connectors are provided to allow population of geometric model entities (206). Attributes are then associated at both model node level or at mesh primitive level (207). Alternatively various scientific, technical or 3D multi-media data types may be present in the host-application, where a scene-tree may not be the most appropriate technique.
  • a set of technical data source access connectors are provided which assist matching to many common data types (210). As these types may not be exactly what is required for document generation, the connectors call on services within a Data Model Visualization Object Generator suite (215).
  • technical data is interpreted to create visualization data objects which may substitute or represent key characteristics of the technical data for presentation.
  • the mesh may require reduction such as sub-sampling or the rejection of degenerate polygons, or missing data values removed in the Mesh & Data Geometry Filtering block (216).
  • Specific types of meshes may benefit from algorithms performing computational mesh simplification (not to be confused with continuous level of detail or CLOD) at the data preparation stage (217), such as triangle reduction on TINs (triangular networks) based on curvature or rectilinear decimation based on data gradients.
  • CLOD continuous level of detail
  • the processed input data, model, geometry, textures and attributes are assembled into a data structure (245) according to U3D specification ECMA-363, using some elements of the U3D sample implementation services (240).
  • converted models may be compiled into a compressed or reduced structure, using continuous level-of-detail (CLOD) services (240).
  • CLOD level-of-detail
  • the important architectural feature is that such CLOD generation is independent of the host application graphics pipeline and is independent from any software used by the recipient for viewing the resulting 3D PDF content, most notably the Adobe Reader. Hence the CLOD generation or compilation step is isolated and independent from layers outside of the 3D document generator which allows for freedom of host application design.
  • the 3D document generator may include the automatic generation of attributes.
  • This may be based on a 3D template (280) which serves to enable disparate and distinct forms and structures of 3D input data provided by potential data sources, such as 3D geometric files, applications, simulations and measurement systems.
  • the 3D template (280) also accommodates varying levels of completeness in the input data (as compared to a fully completed 3D template), such that the absence of 3D parameters, attributes and values may be unknown prior to receiving 3D input data.
  • prior art systems rely on complex conversions involving library plug-ins in order to manipulate the diverse data structures received from different sources.
  • the automatic attribute generation aspect is based on the use of a 3D template (280) associated with a PDF document, whereby said 3D template is established or generated prior to the introduction of 3D input data, followed by the identification of those parameters within the 3D template which are considered required to enable the generation of an output 3D document and those parameters which are not required or optional to this operation.
  • a 3D template (280) associated with a PDF document, whereby said 3D template is established or generated prior to the introduction of 3D input data, followed by the identification of those parameters within the 3D template which are considered required to enable the generation of an output 3D document and those parameters which are not required or optional to this operation.
  • the 3D document generator uses the 3D template as a basis for insertion of input 3D data gathered from data connection means, where the input 3D data selectively updates portions of the template. After receiving 3D input data, there are further means for automatically updating the 3D template where any required parameters may be absent or missing.
  • the 3D template information is embedded within a PDF document structure, where the generated document contains integral 3D content for interactive manipulation by the recipient of the PDF document.
  • the 3D template (280) structure is established before any external data is received.
  • Internal data structures which are normally hidden and private from systems outside the 3D document generator, are established prior to receiving 3D input data.
  • the template is composed of a collection of typed data structures which are capable of holding hold key information, lists, arrays, text strings, and numerical values.
  • Portions of the 3D template structure are derived from the U3D specification (ECMA-363).
  • U3D first root node is defined.
  • All transformations, controlling scale, rotation and position of geometric entities, normally holding data in the form of a 3x3, 3x4 or 4x4 numerical transformation matrix, are set to identify values. All vector quantities are set to a nominal unit vector.
  • a set of default progress reporting and error reporting methods are connected, such that if they are not replaced by alternatives while receiving 3D input data at a later stage, will produce diagnostic output for monitoring the 3D document generation process.
  • Some attributes of the template may remain empty.
  • the template generator has the capacity to generate a 3D template by establishing a transient storage area suitable for holding an unpopulated 3D template. Once the template has been established, the generator is operable to provide initial values for the parameters of the 3D template. Some of these initial values may be directly specified initial values while others are specified as null values. An example of a directly specified parameter may be the background color. It should be noted that the initial parameter values are established after transient storage is established and prior to receiving 3D input data.
  • the 3D template configuration information After receiving 3D input data, the 3D template configuration information, parameters are partially filled in, overlaid, replaced or updated by attributes in the 3D input data. If, for a given attribute or parameter, the data is absent, then that attribute is unchanged and remain at the state or value initially set in the template.
  • a third state exists: in cases where neither 3D input data nor the initial state of the 3D template have supplied values, the parameter is empty and remains empty despite the receipt of incoming 3D data.
  • Such parameters in the 3D template will require further actions or processing, as they are nominated or classified as required parameters.
  • the completion step is able to identify such empty, required parameters and invoke associated methods in order to complete these parameters.
  • the completion step may include the assignment of flags or null pointers to these parameters. An examination of required entities may further lead to their completion where the flag is not set or the data pointer remains null.
  • the 3D template structure may be used to optimise the completion step by organising the classification of required or not required parameters into groups: the template may apply a completion procedure which includes dynamic parameter generation which analyses at least a subset of the fields in the input data and generates values to be imposed on third state parameters which reflect the values in the subset.
  • the subset is itself defined by the parameter in question and uniquely associated with it.
  • Object refers to a geometric representational object forming a portion of the received 3D input data.
  • the classification is established by technical analysis of the range of possible input 3D data. Where an attribute or parameter is set to a value which is adequate and reasonable for general utility and is also invariant over the domain of possible received 3D input data values, then the attribute may be considered not required. However, if there is a dependency or interaction between the parameter and any subset of the possible input values, i.e. where the parameter is not invariant over the domain of possible received 3D input data values, then the parameter is considered required.
  • Identifying that certain 3D template parameters are required is similar to the photographer identifying that the model will not set up the camera nor specify the exact lens placement; that some 3D parameters are empty and require completion is similar to the photographer identifying that the camera is not set up; and completing required parameters in the 3D template is similar to the required actions of the photographer to place the camera.
  • associations may be established by analysis of various 3D input data and analysis of resulting 3D documents for interactivity, visual quality, fidelity, compression, and feedback from document recipients. Such associations are adjusted from time to time when such analysis indicates a change for improvement or 3D document generation efficiency.
  • the following table shows an exemplary embodiment of a 3D template, where 3D geometric parameters are shown with a typical value of required or not required along with notes indicating related issues.
  • the "Required” column indicates which attributes are required to be completed after receiving 3D input, used by the finalising and completion step uses the Required notification to perform completion operations. This is not indicating a requirement on the received 3D input data. Where “Required” is "Y" (Yes), and after receiving 3D input data these attributes are not updated, they are considered empty, by consideration of a flag or null pointer, thus causing the finalise and completion step to perform further completion methods.
  • the resulting 3D information is placed inside a PDF document where it becomes visible and allows 3D interaction by the document recipient.
  • the means of placing 3D information in a PDF document may implement a process which includes a number of steps. If no previous document exists, a blank, template document structure is created. This template document is then populated with general document attributes including title, author, page height, page width. The means allows for multiple 3D views to be placed on the same or different pages within a PDF document. For a particular 3D view, a view window position is established on a particular page, with margin or other page layout parameters controlling position. The 3D template information is then attached, or embedded and added inside the PDF document as a compressed or uncompressed stream, as a 3D annotation entity within the PDF document structure. In this way the PDF document structure is updated such that the view window is associated with a 3D annotation object which corresponds to the 3D template information.
  • the Meta-Data connectors (220) may be used by the host application to set non- geometric aspects of the 3D PDF content.
  • a variety of services are available for specification, where the host application may supply additional information about the model with the expectation that this information will be published within the generated document accompanying the interactive 3D content.
  • This meta-data may for example include a title (221 ) to label the 3D view port; a caption (222) to provide a text box explanation of 3D view port content or user instructions; numerical units, labels, axes to assist the viewer in interpreting 3D information, date and author (224) of the document for attribution reference, etc.
  • the meta-data connectors also include specification for the 3D view port or multiple view ports within the PDF document page such as layout, and attributes of the PDF document itself (225).
  • the 3D document generator performs the PDF document generation embedding (250) the U3D and meta-data into the output document.
  • the document itself may be a new creation, or the content may be appended or pre-pended into an existing PDF document.
  • the document may then be stored as a PDF output file (260) or sent by transfer or streaming through network services, including but not limited to the internet (270) for viewing by recipients through web-browsers (275), where web-browsers may include or launch PDF viewer services, including but not limited to the Adobe Reader.
  • further aspects of the PDF document are specified by further means in the 3D document generator. These include setting a preview image, such that when the document is first opened a preview image is presented prior to any 3D interaction with the view.
  • the 3D default view camera position is specified as an attribute of the 3D view, and any other optional view points are added such that the document recipient may navigate the 3D scene using these optional view points.
  • dynamic behaviour or custom interaction is associated with the 3D view, this is added as an additional stream, whereby the instructions in this stream are activated during the recipient viewing session.
  • the most typical form for specifying such dynamic behaviour is javascript.
  • animation paths may spin the 3D objects or specify that the camera rotate automatically around the centre point of the 3D objects.
  • the dynamic behaviour instructions may control the sequential visibility of such variations.
  • the dynamic behaviour instructions may specify alternative 3D interaction, such as constraining rotation to a specific axis.
  • FIG. 3 shows a high level view of public interfaces available to host applications (310).
  • Any host application wishing to use the 3D document generator uses 3D PDF Public Interface (300) methods. These interfaces are generally used in sequence or logical order as shown in the drawing.
  • the first step may be initialization (301 ) of the 3D document generator.
  • the second step may be the use of the various connectors previously described to connect the host application 3D data to the document generator 3D model (302).
  • the next step is to convert the model into the internal U3D data structures (303) which may involve further internal data transformations such as visualization object generation, texture generation, CLOD, etc.
  • the next steps are to specify preferences for the output PDF document (304) and populate any meta-data (305) through connector interfaces.
  • the export process (306) is specified, including details export file format, filename, destination, etc., while reporting status back to the host application.
  • Figure 4 shows a view of both internal and public interfaces to the 3D document generator.
  • the host application (400) uses the provided 3D PDF Interface (405) to connect, populate and convert 3D content.
  • the 3D document generator may use one or more other internal interfaces (410). These may include, for illustration, a visualization sub-system interface (411 ), U3D service interface (412) and/or PDF document handling service interface (413).
  • FIG. 5 some interfaces are registered with the PDF3D Library. Although the interfaces belong to the Internal Software System (410); they may be implemented in a format specified by the PDF3D Library. When the "Convert" use case is executed the PDF3D library should begin the conversion process. While performing the conversion the PDF3D should issue commands to the registered interfaces in a predefined order that helps in easy conversion of 3D models.
  • Figure 5 shows a portion of the structure involved in assembling U3D model data structures (510).
  • the host application or other derived data source (500) may provide mesh specifications (501 ) appropriate to allow initiation of the geometry compiler (502).
  • the geometry compiler assembles and unifies information for the data structure and provides services such as geometric compression, continuous level of detail (CLOD) generation.
  • the geometry compiler output is a CLOD mesh resource (503).
  • the 3D scene graph hierarchy (511 ) references Node Palette (512) which includes references to scene nodes, and Generator Palette (513) which includes references to resources used by nodes.
  • the Node Palette (512) references a Root Node (520) and at least one Model Node (530).
  • the Model Node (530) then references mesh resources which in turn reference the CLOD Mesh Resource (503).
  • Figure 6 shows a possible node hierarchy.
  • the U3D data structure includes nodes arranged in a hierarchy, where some nodes are involved in models and attributes such as described in Figure 5, while other specify views and lights.
  • a single root node (520) references a number of other nodes. These include 1 to N View nodes (601), containing information about view positions, orientations. Also shown are 1 to N Light nodes (602), specifying light position, type, color and other illumination parameters. Also referenced, as mentioned earlier, are 1 to N model nodes (603), referencing the scene tree data structures of Figure 5.
  • Figure 7 shows the connection relationships between a host application (200) and the 3D PDF Generation System (405).
  • the host application architecture shown is merely a possible example for illustration, as the internal architecture of host applications very widely.
  • the example shown is typical of an engineering analysis, where finite-element or fluid dynamics analysis simulation results are processed and reviewed.
  • technical data sources are accessed (701 ), generally from files and loaded into memory structures.
  • numerical analysis phase (702) simulation, data filtering, data selection or derived quantity computations are performed.
  • data structures are appropriate for numerical analysis but may not be appropriate for direct graphical display.
  • Visualization Objects are generated (703) which are geometric and colored models designed for interactive display.
  • Such visualization operations may produce bounding boxes, slice planes, contour maps, legends, isosurfaces or vector arrow objects, or replace mesh attributes with texture maps.
  • the resulting geometric objects are then suitable for display using a Scene Graph (704) display architecture.
  • the Scene Graph (704) assembles geometric entities into a logical tree structure, with local transformations and attributes.
  • level of detail (LOD) (705) techniques may be used to both generate LOD and traverse LOD data structures to optimize interactive 3D display performance.
  • LOD level of detail
  • the Scene Graph (704) system traverses graphical information for display and responds to events from the window manager or user interactions, using System Support Layers (706), such as window manager event services.
  • the host application (200) may provide paths for saving graphical representations of the 3D scene, such as in CGM, Postscript, MPEG, AVI, VRML, X3D, HDF5, Flash, 2D PDF, SVG, DXF, DWG, XML or other output formats (710).
  • image representations may be saved such as GIF, TIFF, JPEG, PNG, BMP formats.
  • the 3D PDF Generation System (405) or 3D document generator, provides a number of optional connection processes
  • the host application (200) would normally issue one or more API calls to set up a PDF file into which the 3D model would be placed. API calls are provided to specify the following aspects of the PDF file:
  • Size of the pages in the PDF file Standard sizes like AO, A1 , A2, A3 etc are supported.
  • the host application may also specify custom page sizes.
  • the viewport coordinates are specified in terms of a quadruple where each component is a floating point number between 0.0 and 1.0.
  • connection points may be where technical data sources (701 to 210) are used, whereby the 3D document generator produces independent data visualization content; and/or where aspects of numerical simulation (702) may provide information to meta-data connectors (220) (such as numerical ranges or geographical references); and/or Visualization Object generation (703) in the host application (200) may be used in conjunction with Visualization Object generation (215) within the 3D document generator (405).
  • the 3D document generator produces output in PDF format (260) including fully interactive 3D content.
  • VTK Visualization Tool Kit
  • VTKScene scene // Create Scene (www.vtk.org) scene. SetDataFileName( infile ); scene. InitializeSceneO;
  • PDF3DConversionManager converter // create PD F3D converter converter.SetlnterfaceDesc( desc ); // link interface to scene
  • an instruction configurable programmable processing device such as a Digital Signal Processor, FPGA, microprocessor, other processing devices, data processing apparatus or computer system
  • program instructions for configuring a programmable device, apparatus or system to implement the foregoing described methods is envisaged as an aspect of the present invention.
  • the program instructions (such as, for example, computer program instructions) may be embodied as source code and undergo compilation for implementation on a processing device, apparatus or system, or may be embodied as object code, for example.
  • object code for example.
  • computer in its most general sense encompasses programmable devices such as referred to above, and data processing apparatus and computer systems.
  • the program instructions are stored on a carrier medium in machine or device readable form, for example in solid-state memory, magnetic memory such as disc or tape, optically or magneto-optically readable memory, such as compact disk read-only or read-write memory (CD-ROM, CD-RW), digital versatile disk (DVD) etc., and the processing device utilises the program instructions or a part thereof to configure it for operation.
  • the program instructions may be supplied from a remote source embodied in a communications medium such as an electronic signal, radio frequency carrier wave or optical carrier wave.
  • a communications medium such as an electronic signal, radio frequency carrier wave or optical carrier wave.
  • carrier media are also envisaged as aspects of the present invention.

Abstract

The invention relates to a 3D document generator for technical data publishing, reporting and 3D PDF file generation. The 3D document generator comprises a plurality of data connection means configured to accept 3D data from host application(s). A 3D template receives input 3D data and certain parameters within the template are updated by the input data, but only if such data is required. The updated 3D template is embedded within a PDF document and enables the user to open a window within the document in which a 3D image corresponding to the updated 3D template may be viewed.

Description

3D document generator and method for generating 3D documents
The present invention relates to an apparatus and method for generating documents containing 3D interactive content. More particularly it relates to a means and apparatus for generating PDF (portable document format) documents by use of a 3D template allowing various data sources, containing 3D data to export that data in 3D PDF document format, suitable for distribution to recipients by file or network.
Prior art approaches to the generation of 3D documents have focussed on software development for embedding 3D content in PDF documents and viewers for viewing such data, such as the U3D format described below.
The generation, publication and distribution of information in PDF document format is well known. The document format is the subject of standardisation efforts, with the currently published specification at PDF version 1.6 and is supported by many companies, most notably Adobe® Inc., who distribute the Adobe Reader for browsing and viewing PDF content.
The "3D Industry Forum" (3DIF) initiative involving Intel® Inc., Adobe Inc. and others has led to the definition of a Universal 3D standard (U3D) which is now the subject of the published ECMA-363 standard specification. U3D is a specification for downstream 3D CAD re-purposing and visualization. The syntax and semantics of U3D is the generic core of this specification and allows the development of implementations to read, write, visualize and share U3D files. However, it is a complex specification and covers many low-level details of abstract data structures and attributes. The specification exceeds the technical complexity of many current 3D applications, scene-trees or 3D technical data sources. It should be noted that the U3D standard specifies geometry compression including continuous level of detail (CLOD) methods.
Adobe® Inc. has published a specification for PDF version 1.6 which allows for the possibility of 3D content embedding within a document. In addition, Adobe Inc. now distributes the Adobe Reader version 7 which includes support for browsing and viewing PDF files which include embedded 3D content in U3D format. Recipients of such 3D PDF files may view them in the Adobe Reader, with enhanced interactivity including zoom magnification, smooth panning (left, right, up, down) and full 3D rotation under mouse control. However the Adobe Reader is unable to view U3D files directly as the content must first be embedded into PDF format by an authoring system.
Adobe® Inc. have released an application product entitled "Acrobat 3D" which allows import of 3D content in U3D file format and subsequent generation of PDF file output with embedded 3D content suitable for viewing with the Adobe Reader. Several other companies offer comparable applications providing import of U3D files and export of PDF files with 3D content. While the Acrobat 3D application allows editing of view placement and general scene attributes, it does not allow generation, specification or editing of actual 3D geometry; they must be imported from external geometry sources.
To encourage support of the U3D specification, Intel Inc. have released an open source library which allows software developers to generate U3D file content, as a sample implementation of the ECMA-363 standard specification, including continuous level of detail (CLOD) geometric compression techniques. The sample implementation provides a complex input data specification, where many technical details must be satisfied within the generation layer to create U3D output.
To support generation of PDF files from within host applications or other systems, a wide variety of software libraries, software development kits (SDKs), printer drivers or conversion utilities are commercially available or available in open source to generate 2D text and graphics content, including the Adobe® PDF Library software development kit (SDK).
Author(s) of applications which include or process 3D data are faced with significant complexity and development effort to create 3D PDF content. As the specifications for both U3D and PDF are published, new software may be written following these specifications, with considerable effort. Various practical issues also arise due to the Adobe Reader only supporting a subset of the U3D specification. Some author(s) may chose to adopt the U3D sample implementation from Intel. Here significant development effort must be made to transform native 3D data content into the required input structures for the U3D sample implementation library. This step then allows generation of U3D files, not PDF files. A further step is then required by the author(s) to embed U3D content into PDF format documents using another software library or utility application.
It is appreciated that existing applications exhibit a very wide range of internal designs, data structures and software architecture. Some examples of this range of possible architectures are the Visualization Tool Kit (VTK), AVS/Express from Advanced Visual Systems Inc. (AVS), Open Scene Graph (OSG). Each of these contain distinct 3D data structures, distinct internal architectures, such that internal methods for exporting 3D data to PDF require distinct solutions. In some applications the appropriate place to source 3D data is at the raw computational mesh stage, while in others it is at the graphics scene-tree viewer output stage.
The initial U3D motivation has started with manufacturing and CAD applications. Increasingly there is a strong need for technical data publishing and reporting in other industries for complex 3D data. A prime example is in the Oil industry with complex 3D subsurface geological and geophysical data models where 3D surface, fault, borehole and measured data structures must be communicated in context. Traditionally such applications are only used interactively with reports produced on paper or large 2D image output formats. As the data structures inherent in geological applications differ significantly from manufacturing CAD, current data conversion tools either produce poor results or fail to provide appropriate data paths. As a result, authors(s) of applications wishing to simply add a "save as 3D PDF" path into existing software are faced with a complex and large development effort.
It is an objective of the invention to address one or more of the disadvantages associated with existing methods faced by author(s) of applications.
The present invention was developed in response to the foregoing problems associated with 3D data publishing, reporting and 3D PDF file generation. The present invention introduces a 3D document generator with preferred embodiment as a re-usable software development toolkit (SDK) providing a direct path from host application 3D data to PDF output with 3D interactive content, allowing the addition of "save as 3D PDF" services within host applications with significantly less development effort than previously possible and eliminating the step of first creating a U3D file followed by a PDF embedding step. In particular the software development toolkit eliminates the need for separate U3D and PDF conversion phases, while automatically generating attributes where attributes may be unspecified or incomplete in the host application, and eliminating the requirement for intermediate files. In key respects the 3D document generator has an improved and novel connector process architecture which offers flexibility and efficiency benefits to application author(s).
The current invention comprises an apparatus and means for generating 3D documents. Advantageously, the 3D document generator may include the automatic generation of attributes by means of a 3D template, which serves to enable disparate and distinct forms and structures of 3D input data provided by potential data sources, such as 3D geometric files, applications, simulations and measurement systems.
The 3D template also accommodates varying levels of completeness in the input data (as compared to a fully completed 3D template), such that the absence of 3D parameters, attributes and values may be unknown prior to receiving 3D input data. By contrast, prior art systems rely on complex conversions involving library plug-ins in order to manipulate the diverse data structures received from different sources.
It is an object of the current invention to provide an automatic attribute generator which solves the deficiencies of the prior art, thereby enabling processing of data sourced from different data providers and with widely varying structures and forms.
Moreover, because prior art systems are not capable of handling the diversity of data structures, system failures, such as measurement failure or a simulation exceeding valid ranges, may occur and no valid input 3D data may be supplied. It is therefore a further objective of the invention to provide a fall-back position: the 3D template completes the required components of a blank 3D view in an associated PDF document.
The 3D document generator may comprise several means and processes for data connection, where each means or process may be suitable for connection by a host application with particular input source data structure requirements. Each connection may or may not be connected while used within any given host application.
Such connection processes or "connectors" may each have distinct data structures such that they may be used at the most appropriate place within a host application, simplifying integration tasks. The 3D document generator includes all services required to directly generate PDF format documents which include 3D embedded content. Such PDF content is most often, but not exclusively viewed using the Adobe Reader application.
Advantageously, the invention provides 3D document generator for use by host applications that directly generates 3D PDF content without any requirement for intermediate storage such as U3D files or other geometric model file formats. The preferred embodiment may generate U3D content according to the ECMA-363 specification and/or the U3D content accepted by the Adobe Reader application as a practicality, but is not restricted to such 3D data specifications.
Further, by virtue of providing a set of connection services or "connectors", the 3D document generator is preferably packaged in a re-usable system that may be deployed and utilised in a wide variety of host applications. The 3D document generator may thus provide a common platform that allows direct generation of 3D PDF content within applications with greatly simplified integration steps.
It is also possible to configure the 3D document generator to operate as a dynamic web reporting service. In this context it may be used in a Three-Tier web architecture, where web site reporting requests generate 3D PDF content which may be streamed to the recipient over a network. This example is described in more detail below and is illustrated in Figure 1.
According to the invention there is provided a process to associate animation or other dynamic behaviour scripts with embedded content in the generated 3D PDF output. Animation or any dynamic, time or event dependent changes to the 3D content may be specified in one of two principle ways. In the first, attribute modifier channels are associated with nodes within the 3D model structure. These are available for play-back by the Adobe Reader or other viewing system. The second is the association of animation scripts external to 3D content, embedded and included within the 3D PDF generated output. Such scripts are introduced at the PDF stage of the generation process. Such animation scripts may control visibility, transformations, camera views, object rendering attributes, etc. A typical use of such scripts is the association of event buttons within the PDF document, where these events may cause execution of associated scripts. Such scripts may play animations involving geometric objects, lights, camera views, etc. Scripts are optional and may be absent for static scenes. Several scripts may be embedded, for instance a simple object rotation plus exploded parts view animations. The default style of animation script currently employed by the Adobe Reader is a form of "Java Script", however the 3D document generator is primarily script independent.
The invention may also provide a facility to process input data to the 3D document generator including geographically referenced numerical coordinate information, including but not limited to UTM latitude, longitude and elevation (or depth) information. Such data sources may be provided by host applications involving mapping, GPS, Geographic Information System (GIS) data, geological or geophysical field survey data, oceanographic, meteorological, environmental or other geo-spatial data context. In general geo-spatial data is processed with methods appropriate to produce content for interactive navigation and viewing by recipients without requiring intermediate file conversions or coordinate system conversions.
The invention may also provide input facilities for a wide range of geometric and scientific data, including coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes. Data structures of 3D input data contain geometric primitives including but not limited to vertices. such as 3D coordinate vertices comprising X, Y, Z spatial locations with a connectivity list defining triangular polygons, or may be a 3D irregular computational mesh with numerical node or cell values. In the later case, the 3D document generator is configured to apply visualization interpretation operators, providing geometric objects appropriate for document output. An example of such visualization interpretation is where a 2D mesh with geographically referenced coordinates and associated temperature values are converted into a geometric mesh object with an attached texture map showing temperatures according to a color index. The 3D document generator may comprise one or more of: software, hardware and firmware. In one embodiment the 3D document generator is implemented in software in the form of a software development kit (SDK) which includes a C++ library for re-use among a variety of host applications.
The invention may also provide conversion services within the 3D document generator to compress, reduce or simplify geometric objects, including generation of continuous level of detail (CLOD) structures, suitable for variable fidelity graphical presentation during rendering. The important feature of CLOD services is that it is not within the host application geometric view and rendering pipeline, nor is it within the view and rendering pipeline of the Adobe Reader, rather is an independent service which exists for the purpose of 3D document creation.
In the present invention time-varying or 4D models may be processed and represented within the 3D document generator. For avoidance of doubt, 4D models are generally considered to include 3D models that vary over time. This may be as trivial as a position or color change over time, or as significant as each time state having no characteristic shared (zero temporal coherence). In the later case the 3D document generator places individual nodes within the output hierarchy, where each node describes the state of the model at a point in time. In this way models may have varying number of coordinates, varying connectivity, changing polygons, changing coordinate positions, animated textures, and other dynamic attributes. According to the degree of temporal coherence within the 4D model, either attribute modifier channels may be assigned, or animation scripts used to selectively present time-dependent model states to the document recipient.
In the present invention model meta-data may be co-published along with 3D models. In many technical applications the 3D model alone is insufficient to communicate key information; context and meta-data must also be available. While 3D formats such as VRML have existed for many years, there has not been a convenient way to associate meta-data with such models. The PDF document structure is principally a text, image and 2D illustration rich publishing format and as such is ideally suited to meta-data. With the inclusion of 3D interactive content, both the 3D model and meta-data may be presented to the recipient on the same document page. Accordingly, the present invention provides a meta-data connector for the host application(s) for populating meta-data content within the generated output.
Various aspects of the invention can provide re-usable 3D document generator libraries, components, or plug-ins. Other aspects may form the basis of specialized applications or data conversion utility programs. The presence or absence of visible graphics within the host application is immaterial to the present invention, as it provides connection processes ("connectors") for both graphical and non-graphical portions of the host application architecture.
SUMMARY OF THE INVENTION In a main embodiment of the invention an apparatus for generating 3D documents is provided comprising a plurality of data connection means, at least one of said data connection means being adapted to access, receive and transmit 3D input data; means for generating a 3D template; means for identifying in said template parameters for which no update is required; means for identifying in said input data parameters which are required to update said template; means for automatically updating said 3D template by applying the values of said required parameters of said 3D input data to said template; means for integrating the updated 3D template into a PDF document. In this context updating means to fill in, partially fill in, substitute, overlay or replace parameter values in the 3D template with values of required parameters in the input data.
When the said required parameters in the input data have zero or empty values to apply a null update wherein the value in the template remains at its initial value. When the said required parameters in the input data have zero or empty values a further completion procedure may be performed: a dynamic parameter generator generates a value of said required parameter depending on a subset of the other parameters, the subset being defined and associated with that required parameter. When the said required parameters in the input data have zero or empty values a flag or null pointer may be referenced.
Non-required parameters may be considered to be those parameters which are invariant over the range of possible received 3D input data values, while required parameters may be considered to be those parameters which are dependent on at least a subset of the possible received 3D input data values.
Data connectors may be configured to accept a distinct data type, this being any one of key data, lists, arrays, text strings and numerical values. The data connector may be a scene graph connector for transmitting 3D data. The data may be supplied from one or more hosts which store and support a plurality of distinct host applications, said data connector accessing, receiving and transmitting data from said host means. At least one data connector may be a technical data source access connector for receiving technical data, the technical data being stored in a host application stored and supported on the host. The 3D input data may be directly received from said host applications stored and supported on said host means without passing any intermediate 3D files to the generator.
The system may also provide a viewer for making the 3D information which results from integrating the updated 3D template visible in a dedicated window in the PDF document and capable of manipulation in 3D by the user.
The system may also comprise an output for producing computer readable documents, said documents being either stored files or streamed as network data. The data connectors may accept geometric entities including vertices.
The integral 3D input data may include spatially referenced numerical coordinate information such as geographical reference data comprising longitude, latitude, altitude and directional bearings. Alternatively, the spatially referenced numerical coordinate information may be molecular referenced coordinates or real physical dimensions or real physical properties of an object or simulated object. After receipt of the 3D input data the system performs one or more of the following operations on the 3D input data: geometric compression, geometric reduction, level of detail simplification, or continuous level of detail processes. The template generator may accept time varying input data and produce output suitable for replay of said time varying data.
At least one of said data connectors may be configured to accept meta-data; and said meta-data is included, reported or present in the generated output. It may access, receive and transmit 3D input data comprising one or more of: coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes.
In another embodiment of the invention a method for generating 3D documents is provided comprising: providing a plurality of data connection means and data connection processes, at least one of said data connection means or processes being adapted to access, receive and transmit 3D input data; generating a 3D template; identifying in said template parameters for which no update is required; identifying in said input data parameters which are required to update said template; automatically updating said 3D template by applying the values of said required parameters of said 3D input data to said template; integrating the updated 3D template into a PDF document
Within the automatic updating step, parameter values in the 3D template may be filled in, partially filled in, substituted, overlaid or replaced with values of required parameters in the input data. When the said required parameters in the input data have zero or empty values a null update may be applied When the said required parameters in the input data have zero or empty values, a further completion procedure is applied, which comprises a dynamic parameter generation step, generating a value of said required parameter depending on a subset of the other parameters, the subset being defined and associated with that required parameter. When the said required parameters in the input data have zero or empty values the automatic updating step may reference a flag or null pointer. Within this method non-required parameters may be considered to be those parameters which are invariant over the range of possible received 3D input data values and required parameters may be considered to be parameters which are dependent on at least a subset of the possible received 3D input data values.
Data connection means and processes may be adapted to accept a distinct data type., the data type being at least one of key data, lists, arrays, text strings and numerical values. The data connection means and process may be a scene graph connector or process for transmitting 3D data.
A plurality of distinct host applications may be stored and supported, said data connection means accessing, receiving and transmitting data from said host applications. At least one data connector or connection process may be a technical data source access connector or connection process for receiving technical data, the technical data being stored in a host application stored and supported on the host means. The input 3D data may be received directly from said host applications stored and supported on said host means without passing intermediate 3D data files to the generator.
Advantageously the 3D information which results from integrating the updated 3D template may be made visible in a dedicated window in the PDF document and capable of manipulation in 3D by the user. The output produces computer readable documents, said documents being either stored files or streamed as network data. At least one of said data connection means or process may accept geometric entities including vertices. The integral 3D input data may include spatially referenced numerical coordinate information, such as spatially referenced numerical coordinate information comprises geographical reference data comprising longitude, latitude, altitude and directional bearings or molecular referenced coordinates or real physical dimensions or real physical properties of an object or simulated object.
One or more of the following operations may be performed on the 3D input data: geometric compression, geometric reduction, level of detail simplification, or continuous level of detail processes. Time varying input data is accepted and output suitable for replay of said time varying data is produced.
The data connection means or process accepts meta-data; and said meta-data is included is reported or present in the generated output.
The data connection means or process accesses, receives and transmits 3D input data comprising one or more of: coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes.
It is also envisaged within the invention that the above method will be fully automated. A computer program for storage on a machine readable medium is foreseen and will carry instructions for implementing the method described above. The invention may also comprise interactive graphics applications within this computer program.
GLOSSARY OF TERMS coordinate lists: spatial coordinates comprising x, x-y, or x-y-z positional values connectivity lists: primitive shapes defined by indexes into coordinate list points: individual atomic locations at a coordinate with optional data lines: collections of line segments defined by two or more points polygons: planar N-sided geometric shapes joining three or more points polyhedrons: 3D shapes enclosing volumetric regions with polygonal surfaces triangle strips: array of connected triangles with optimal connectivity scheme meshes: structured or unstructured collections of connected polygons or polyhedra, may be a polygon surface or a volumetric cells: 1 D, 2D, or 3D primitives, with associated data splines: curved lines or surfaces in 2D or 3D space, such as NURBS, Catmull-Rom Splines or B-Splines surfaces: generally collections of connected planar primitives grids: structured 2D, 3D, 4D lattices including vertices and cells adaptive mesh refinements (AMR): hierarchical grid structures with multiple levels multi-block grids: N instances of Grids, each with local structure voxels: cuboid or hexahedral cells, normally in a 3D lattice, often uniform spacing with data associated with cells normals: surface normals, vector quantities pointing away from surface colors: RGB or Alpha-RGB color values (Red-Green-Blue) color indexes: indexes into a color system rather than explicit storage color look-up tables:Arrays of color values used by index systems textures: Monochrome or color images applied to geometric surfaces reflection maps: Texture-mapped images used for reflection or environment maps transformations: coordinate transformation matrices for rotation, scale, translate, shear, perspective or other geometric spatial operation transparency: variable opacity, allowing partial visibility of objects shaders : special surface shading rules, attributes or micro-programs object hierarchies: collections of objects into tree structure relationships hyper-spectral colors: Colors using multiple spectral bands rather than RGB displacements: Modifier vector values, often used to displace vertices time-dependent attributes: Multiple values associated with an object sampled over time, arrays of attributes, or rules governing when certain attributes apply time varying input data: Where host application(s) hold values which may vary over time, either in real-time from an external source such as a sensor, or historic or simulated time. When used in combination with 3D objects, may be referred to as 4D (four dimensions), geometric compression: Reduction in the storage requirements of a geometric object or collection of objects. May be loss-less or lossy compression. geometric reduction: Reduction in both storage requirements of a geometric object and complexity, such as reducing polygon count or reducing connectivity or vertices to achieve a reduction. Generally lossy compression. level of detail simplification: The generation of reduced versions of a geometric object, where the appropriate version may be selected during display based on display rate or distance from viewer, continuous level of detail processes: An optimisation of level of detail simplification, where instead of storing a fixed collection of various object resolutions, a continuously varying object fidelity is possible.
U3D: Universal 3D. This is a 3D model format described by the 3DIF organization.
PDF: Portable Document Format. This is a document format created by Adobe describing documents that look the similar across all supported platforms and contains 3D content specification.
Interface: A programming construct that comprises of a abstract class.
Typically interfaces do not offer any predefined functionality; but they offer a predefined structure into which the functionality can be implemented. Interfaces are implemented by the programmer to react when the system issues commands to the interface. Each interface is used by the library for a specific purpose.
API: Application Programming Interface, is a class method that has a predefined
functionality.
Palettes: Palettes can be thought of as "register books" in U3D that contains the names of objects and pointers to them. Different types of objects are stored in different palettes. For example there is a model resource palette, light resource palette, view resource palette, texture resource palette, shader resource palette etc. Each palette holds objects of a specific type; and objects can be accessed by their names.
This mechanism of storing objects is a substitute for the age-old reference counting mechanism of referencing objects. The palette mechanism decouples garbage collection from object usage because all objects are referenced via their object names and not direct pointers. Hence the question of reference counting does not arise here.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings where like numerals refer to like parts and in which:
Figure 1 shows a schematic representation of a three tier web reporting system, where internet web services allow users to receive dynamically generated 3D content;
Figure 2 shows a schematic representation of the 3D document generator architecture and internal components; Figure 3 shows a schematic representation of public interfaces presented to the host application author(s) for management of the 3D document generation process;
Figure 4 shows a schematic representation of 3D document generation system where host application data is converted using a public interface, where internal interfaces are used with interface exposure;
Figure 5 shows a schematic representation of 3D model data structure showing scene graph and node relationships;
Figure 6 shows a schematic representation of a scene tree consisting of one root node with multiple view, light and model nodes; and
Figure 7 shows a schematic representation of connection options between host application(s) and the 3D PDF Generation System.
DETAILED EMBODIMENTS
Figure 1 shows the event flow through the internet web services embodiment of the 3D document generator. In this case, users access 3D data through a website. The event flow is organized across three tiers of infrastructure supporting web access, namely the user or data recipient's local web browser tier (100), generally at a remote location; the web server tier (105) responsible for processing HTTP internet traffic, presenting and allowing navigation through web pages, resolving hyper-links, and managing requests to back-end services and; the technical data tier (110), or back-end, where storage, data-bases and specialised services are activated and managed by the web server tier (105). During the event flow, the user accesses a web page, making a request for a technical report (115). This request is handled by the web server which starts the management process (120), which requests the initial technical tier service. The technical tier (110) then loads report meta-data (125) by accessing a stored technical database (145) which may contain both meta-data and 3D technical data content. The web server receives this result and proceeds to build a summary report page from the meta- data (130), passing that summary report back to the user. The user upon receiving the report makes further selections and requests a technical report for 3D content (135). This report is managed by the web server which initiates the requested content building process (140). The technical tier accesses detailed content from database (145), proceeding to dynamically generate 3D PDF content using the PDF3D document generator services (160). The 3D document generator is thus involved in converting and interpreting original 3D model information, coupled with meta-data to generate a complete PDF document containing embedded 3D content as well as other contextual report information. The resulting PDF content is passed to the web server which manages the transfer of the document to the user (150). As it arrives and is opened by the user (155), full 3D rotation, scale, translation, object selection interactions are available to the recipient of the document. By using this three-tier design, PDF documents do not need to be persistent within server storage systems, rather can be generated on-the-fly by user initiated requests.
Figure 2 shows the 3D document generator internal architecture and major components. As the 3D document generator embodiment may be a library with a defined external interface, API, provided in the form of a software development kit (SDK), we see in this diagram that any number of diverse and distinct host application(s) 200 may chose to utilize the services of the document generator. Any of such host applications may use the generator by reference to two categories of process; conversion and export. If the application finds it appropriate to populate geometric objects with scene-graph organisation, the Scene Graph Connector (205) is available. Here the data organisation is hierarchical, with nodes, meshes and attributes. At each position in the scene-tree hierarchy, nodes may be inserted to hold model entities (208). According to geometric mesh, grid, polygon or polyhedral types, Mesh connectors are provided to allow population of geometric model entities (206). Attributes are then associated at both model node level or at mesh primitive level (207). Alternatively various scientific, technical or 3D multi-media data types may be present in the host-application, where a scene-tree may not be the most appropriate technique. A set of technical data source access connectors are provided which assist matching to many common data types (210). As these types may not be exactly what is required for document generation, the connectors call on services within a Data Model Visualization Object Generator suite (215). Here technical data is interpreted to create visualization data objects which may substitute or represent key characteristics of the technical data for presentation. For instance, The mesh may require reduction such as sub-sampling or the rejection of degenerate polygons, or missing data values removed in the Mesh & Data Geometry Filtering block (216). Specific types of meshes may benefit from algorithms performing computational mesh simplification (not to be confused with continuous level of detail or CLOD) at the data preparation stage (217), such as triangle reduction on TINs (triangular networks) based on curvature or rectilinear decimation based on data gradients. At this stage it may be advantageous to substitute numerical field values with color textures, which may be compressed at later stages using image compression techniques (218).
As the U3D specification requires a high level of detail, it is often the case that such specification is incomplete, or at least the application programmer responsible for the host application using the 3D document generator may not wish to be forced to provide a great deal of default information, or additional derived information that may be time consuming to create. Using the Automatic Default Scene Creation (230) services, virtually any amount of information may be absent or unspecified, with this module taking actions to provide reasonable and intuitive defaults. For instance the Camera (231 ) default module may analyse the object size and position, then automatically calculate appropriate camera positions, view frustum, angle, etc. to allow good object visibility. Similarly if no lights are specified, rather than a default scene with no lights (black, nothing visible), default lights appropriate to light object surfaces are specified (232). If a single object arrives without a hierarchy, a default hierarchy with root node and model node are defined (235). Similarly default surface rendering attributes (233) or default animation behaviour (234) may be completed internal to the document generator.
In the present embodiment the processed input data, model, geometry, textures and attributes are assembled into a data structure (245) according to U3D specification ECMA-363, using some elements of the U3D sample implementation services (240). As part of this assembly process, converted models may be compiled into a compressed or reduced structure, using continuous level-of-detail (CLOD) services (240). The important architectural feature is that such CLOD generation is independent of the host application graphics pipeline and is independent from any software used by the recipient for viewing the resulting 3D PDF content, most notably the Adobe Reader. Hence the CLOD generation or compilation step is isolated and independent from layers outside of the 3D document generator which allows for freedom of host application design.
Advantageously, the 3D document generator may include the automatic generation of attributes. This may be based on a 3D template (280) which serves to enable disparate and distinct forms and structures of 3D input data provided by potential data sources, such as 3D geometric files, applications, simulations and measurement systems. The 3D template (280) also accommodates varying levels of completeness in the input data (as compared to a fully completed 3D template), such that the absence of 3D parameters, attributes and values may be unknown prior to receiving 3D input data. As noted earlier, prior art systems rely on complex conversions involving library plug-ins in order to manipulate the diverse data structures received from different sources.
It is therefore an object of the current invention to provide an automatic attribute generator which solves the deficiencies of the prior art, thereby enabling processing of data sourced from different data providers and with widely varying structures and forms. Moreover, because prior art systems are not capable of handling the diversity of data structures, system failures, such as measurement failure or a simulation exceeding valid ranges, may occur and no valid input 3D data may be supplied. It is therefore a further objective of the invention to provide a fall- back position: the 3D template completes the required components of a blank 3D view in an associated PDF document.
The automatic attribute generation aspect is based on the use of a 3D template (280) associated with a PDF document, whereby said 3D template is established or generated prior to the introduction of 3D input data, followed by the identification of those parameters within the 3D template which are considered required to enable the generation of an output 3D document and those parameters which are not required or optional to this operation. The distinction between required parameters and not required parameters and classification thereof is explained in detail in a later passage in this description.
The 3D document generator uses the 3D template as a basis for insertion of input 3D data gathered from data connection means, where the input 3D data selectively updates portions of the template. After receiving 3D input data, there are further means for automatically updating the 3D template where any required parameters may be absent or missing. Once complete, the 3D template information is embedded within a PDF document structure, where the generated document contains integral 3D content for interactive manipulation by the recipient of the PDF document.
The 3D template (280) structure is established before any external data is received. The details of how such a 3D template is established including possible embodiments are described in the following passage. Internal data structures, which are normally hidden and private from systems outside the 3D document generator, are established prior to receiving 3D input data. The template is composed of a collection of typed data structures which are capable of holding hold key information, lists, arrays, text strings, and numerical values. As soon as the template is first established constructor methods are performed and allocate transient storage areas of the data structure. Portions of the 3D template structure are derived from the U3D specification (ECMA-363). As part of the template a U3D first root node is defined. All transformations, controlling scale, rotation and position of geometric entities, normally holding data in the form of a 3x3, 3x4 or 4x4 numerical transformation matrix, are set to identify values. All vector quantities are set to a nominal unit vector. A set of default progress reporting and error reporting methods are connected, such that if they are not replaced by alternatives while receiving 3D input data at a later stage, will produce diagnostic output for monitoring the 3D document generation process. Some attributes of the template may remain empty.
The template generator has the capacity to generate a 3D template by establishing a transient storage area suitable for holding an unpopulated 3D template. Once the template has been established, the generator is operable to provide initial values for the parameters of the 3D template. Some of these initial values may be directly specified initial values while others are specified as null values. An example of a directly specified parameter may be the background color. It should be noted that the initial parameter values are established after transient storage is established and prior to receiving 3D input data.
After receiving 3D input data, the 3D template configuration information, parameters are partially filled in, overlaid, replaced or updated by attributes in the 3D input data. If, for a given attribute or parameter, the data is absent, then that attribute is unchanged and remain at the state or value initially set in the template.
For some parameters a third state exists: in cases where neither 3D input data nor the initial state of the 3D template have supplied values, the parameter is empty and remains empty despite the receipt of incoming 3D data. Such parameters in the 3D template will require further actions or processing, as they are nominated or classified as required parameters. The completion step is able to identify such empty, required parameters and invoke associated methods in order to complete these parameters. The completion step may include the assignment of flags or null pointers to these parameters. An examination of required entities may further lead to their completion where the flag is not set or the data pointer remains null. The 3D template structure may be used to optimise the completion step by organising the classification of required or not required parameters into groups: the template may apply a completion procedure which includes dynamic parameter generation which analyses at least a subset of the fields in the input data and generates values to be imposed on third state parameters which reflect the values in the subset. The subset is itself defined by the parameter in question and uniquely associated with it.
Note that, in this description, the terms parameter, data structure, entity, resource and attribute are used interchangeably to refer to items in the 3D template structure. Object refers to a geometric representational object forming a portion of the received 3D input data.
The following is a description of how parameters are classified as required or not required parameters. Normally, the classification would remain static over the life of a 3D document generation for a particular 3D view. However, it is also anticipated that analysis of the received 3D input data or other metadata could dynamically update this classification. The classification is established by technical analysis of the range of possible input 3D data. Where an attribute or parameter is set to a value which is adequate and reasonable for general utility and is also invariant over the domain of possible received 3D input data values, then the attribute may be considered not required. However, if there is a dependency or interaction between the parameter and any subset of the possible input values, i.e. where the parameter is not invariant over the domain of possible received 3D input data values, then the parameter is considered required.
To illustrate this in simpler terms, consider the analogy of a model entering a photographer's studio, requesting a portrait. The photographer's camera may be left against a wall from the previous day, with the lens aimed at the wall. The model is not expected to understand the photographic process and expects to leave with a portrait photograph. The photographer must recognize that the camera is not set up and move the camera to a suitable position with the lens aimed towards the model, otherwise a photograph of the wall will be made instead of the model. Identifying that certain 3D template parameters are required is similar to the photographer identifying that the model will not set up the camera nor specify the exact lens placement; that some 3D parameters are empty and require completion is similar to the photographer identifying that the camera is not set up; and completing required parameters in the 3D template is similar to the required actions of the photographer to place the camera.
Further, these associations may be established by analysis of various 3D input data and analysis of resulting 3D documents for interactivity, visual quality, fidelity, compression, and feedback from document recipients. Such associations are adjusted from time to time when such analysis indicates a change for improvement or 3D document generation efficiency.
The following table shows an exemplary embodiment of a 3D template, where 3D geometric parameters are shown with a typical value of required or not required along with notes indicating related issues. To avoid confusion, the "Required" column indicates which attributes are required to be completed after receiving 3D input, used by the finalising and completion step uses the Required notification to perform completion operations. This is not indicating a requirement on the received 3D input data. Where "Required" is "Y" (Yes), and after receiving 3D input data these attributes are not updated, they are considered empty, by consideration of a flag or null pointer, thus causing the finalise and completion step to perform further completion methods.
Example 3D Template Outline
Figure imgf000027_0001
Figure imgf000028_0001
To give an illustration of the required classification, consider a purely geometric mesh containing geographically located 3D vertices, lines and surface polygons originating from a geophysical survey of an oil reservoir, as a single geometric object. This object is received as 3D input data and updates the 3D template parameters. As the object did not contain any information about lights or base mesh colour or camera background colour, these missing parameters will take the values originating from the establishment of the 3D template. As the object did not contain camera or animation parameters, these remain empty; and as according to the above table illustration these are classified as required. In this case during the finalise and completion step, the 3D geographically located maximum extent of the object is used to set a default view point such that the object is centred and positioned within the camera view. Here the camera position and viewing direction are dependent on the object extent and must be established after input 3D data is available, otherwise the object would most likely be off-screen and (unacceptably) invisible to the 3D document recipient. Likewise the object did not specify animation parameters. Here a default overview animation is again classified as a required parameter, where the geometric extent and shape of the oil reservoir object are used to set a motion path.
After 3D template completion, the resulting 3D information is placed inside a PDF document where it becomes visible and allows 3D interaction by the document recipient. The means of placing 3D information in a PDF document may implement a process which includes a number of steps. If no previous document exists, a blank, template document structure is created. This template document is then populated with general document attributes including title, author, page height, page width. The means allows for multiple 3D views to be placed on the same or different pages within a PDF document. For a particular 3D view, a view window position is established on a particular page, with margin or other page layout parameters controlling position. The 3D template information is then attached, or embedded and added inside the PDF document as a compressed or uncompressed stream, as a 3D annotation entity within the PDF document structure. In this way the PDF document structure is updated such that the view window is associated with a 3D annotation object which corresponds to the 3D template information.
To assist preparation and operations during the 3D model export phase, the Meta-Data connectors (220) may be used by the host application to set non- geometric aspects of the 3D PDF content. A variety of services are available for specification, where the host application may supply additional information about the model with the expectation that this information will be published within the generated document accompanying the interactive 3D content. This meta-data may for example include a title (221 ) to label the 3D view port; a caption (222) to provide a text box explanation of 3D view port content or user instructions; numerical units, labels, axes to assist the viewer in interpreting 3D information, date and author (224) of the document for attribution reference, etc. The meta-data connectors also include specification for the 3D view port or multiple view ports within the PDF document page such as layout, and attributes of the PDF document itself (225).
Once all relevant information is assembled, the 3D document generator performs the PDF document generation embedding (250) the U3D and meta-data into the output document. The document itself may be a new creation, or the content may be appended or pre-pended into an existing PDF document. The document may then be stored as a PDF output file (260) or sent by transfer or streaming through network services, including but not limited to the internet (270) for viewing by recipients through web-browsers (275), where web-browsers may include or launch PDF viewer services, including but not limited to the Adobe Reader.
After embedding the 3D template information, further aspects of the PDF document are specified by further means in the 3D document generator. These include setting a preview image, such that when the document is first opened a preview image is presented prior to any 3D interaction with the view. The 3D default view camera position is specified as an attribute of the 3D view, and any other optional view points are added such that the document recipient may navigate the 3D scene using these optional view points. If dynamic behaviour or custom interaction is associated with the 3D view, this is added as an additional stream, whereby the instructions in this stream are activated during the recipient viewing session. The most typical form for specifying such dynamic behaviour is javascript. Finally, when all elements of the document are specified, the table of contents tags are updated and the PDF document is closed.
As examples of dynamic behaviour introduced into the 3D view, animation paths may spin the 3D objects or specify that the camera rotate automatically around the centre point of the 3D objects. Or if the object is composed of a number of part variations, the dynamic behaviour instructions may control the sequential visibility of such variations. Further, the dynamic behaviour instructions may specify alternative 3D interaction, such as constraining rotation to a specific axis.
Figure 3 shows a high level view of public interfaces available to host applications (310). Any host application wishing to use the 3D document generator, uses 3D PDF Public Interface (300) methods. These interfaces are generally used in sequence or logical order as shown in the drawing. The first step may be initialization (301 ) of the 3D document generator. The second step may be the use of the various connectors previously described to connect the host application 3D data to the document generator 3D model (302). The next step is to convert the model into the internal U3D data structures (303) which may involve further internal data transformations such as visualization object generation, texture generation, CLOD, etc. The next steps are to specify preferences for the output PDF document (304) and populate any meta-data (305) through connector interfaces. Finally the export process (306) is specified, including details export file format, filename, destination, etc., while reporting status back to the host application.
Figure 4 shows a view of both internal and public interfaces to the 3D document generator. The host application (400) uses the provided 3D PDF Interface (405) to connect, populate and convert 3D content. Internally, the 3D document generator may use one or more other internal interfaces (410). These may include, for illustration, a visualization sub-system interface (411 ), U3D service interface (412) and/or PDF document handling service interface (413).
In Figure 5 some interfaces are registered with the PDF3D Library. Although the interfaces belong to the Internal Software System (410); they may be implemented in a format specified by the PDF3D Library. When the "Convert" use case is executed the PDF3D library should begin the conversion process. While performing the conversion the PDF3D should issue commands to the registered interfaces in a predefined order that helps in easy conversion of 3D models.
Figure 5 shows a portion of the structure involved in assembling U3D model data structures (510). The host application or other derived data source (500) may provide mesh specifications (501 ) appropriate to allow initiation of the geometry compiler (502). Preferably the geometry compiler assembles and unifies information for the data structure and provides services such as geometric compression, continuous level of detail (CLOD) generation. The geometry compiler output is a CLOD mesh resource (503). The 3D scene graph hierarchy (511 ) references Node Palette (512) which includes references to scene nodes, and Generator Palette (513) which includes references to resources used by nodes. The Node Palette (512) references a Root Node (520) and at least one Model Node (530). The Model Node (530) then references mesh resources which in turn reference the CLOD Mesh Resource (503). Figure 6 shows a possible node hierarchy. The U3D data structure includes nodes arranged in a hierarchy, where some nodes are involved in models and attributes such as described in Figure 5, while other specify views and lights. In the Figure 6 example, a single root node (520) references a number of other nodes. These include 1 to N View nodes (601), containing information about view positions, orientations. Also shown are 1 to N Light nodes (602), specifying light position, type, color and other illumination parameters. Also referenced, as mentioned earlier, are 1 to N model nodes (603), referencing the scene tree data structures of Figure 5.
Figure 7 shows the connection relationships between a host application (200) and the 3D PDF Generation System (405). The host application architecture shown is merely a possible example for illustration, as the internal architecture of host applications very widely. The example shown is typical of an engineering analysis, where finite-element or fluid dynamics analysis simulation results are processed and reviewed. At the start of the host application technical data sources are accessed (701 ), generally from files and loaded into memory structures. During a numerical analysis phase (702), simulation, data filtering, data selection or derived quantity computations are performed. At this stage data structures are appropriate for numerical analysis but may not be appropriate for direct graphical display. To aid interpretation, Visualization Objects are generated (703) which are geometric and colored models designed for interactive display. Such visualization operations may produce bounding boxes, slice planes, contour maps, legends, isosurfaces or vector arrow objects, or replace mesh attributes with texture maps. The resulting geometric objects are then suitable for display using a Scene Graph (704) display architecture. The Scene Graph (704) assembles geometric entities into a logical tree structure, with local transformations and attributes. As part of the scene graph management, level of detail (LOD) (705) techniques may be used to both generate LOD and traverse LOD data structures to optimize interactive 3D display performance. The Scene Graph (704) system traverses graphical information for display and responds to events from the window manager or user interactions, using System Support Layers (706), such as window manager event services. In addition, the host application (200) may provide paths for saving graphical representations of the 3D scene, such as in CGM, Postscript, MPEG, AVI, VRML, X3D, HDF5, Flash, 2D PDF, SVG, DXF, DWG, XML or other output formats (710). In addition image representations may be saved such as GIF, TIFF, JPEG, PNG, BMP formats.
As previously described, the 3D PDF Generation System (405) or 3D document generator, provides a number of optional connection processes
(connectors) for use by the host application (200). Once sufficient information is provided, internal layers of the 3D document generator are able to associate animation scripts (223), local level of detail generation (240), automatic default scene creation (230), and meta-data support within PDF embedding processes (250).
The host application (200) would normally issue one or more API calls to set up a PDF file into which the 3D model would be placed. API calls are provided to specify the following aspects of the PDF file:
1. Name of the PDF file
2. Path of the PDF file (relative or absolute)
3. Size of the pages in the PDF file. Standard sizes like AO, A1 , A2, A3 etc are supported. The host application may also specify custom page sizes.
4. Viewport into which the 3D object shall be placed. The viewport coordinates are specified in terms of a quadruple where each component is a floating point number between 0.0 and 1.0.
The important points of interest in Figure 7 are the multiple connection options coupling the host application (200) and the 3D PDF Generation System (405). The possible connection points may be where technical data sources (701 to 210) are used, whereby the 3D document generator produces independent data visualization content; and/or where aspects of numerical simulation (702) may provide information to meta-data connectors (220) (such as numerical ranges or geographical references); and/or Visualization Object generation (703) in the host application (200) may be used in conjunction with Visualization Object generation (215) within the 3D document generator (405). As distinct from graphical output files (710) produced and/or directly managed by the host application Scene Graph system support layers (706), the 3D document generator produces output in PDF format (260) including fully interactive 3D content.
As a further example of the use of the 3D document generator within a host application, we show an integration example with the Visualization Tool Kit (VTK, see references above). Here most applications based on VTK process and analyse technical data, often 3D, presenting data visualization results in interactive viewer windows. As such, VTK contains it's own scene tree and graphics pipeline. Within the context of typical VTK application usage, the 3D document generator PDF3D Library may be connected to current VTK scenes allowing export of scene content, using a subset of available data connection processes. The following pseudo-code illustrates this process:
VTKScene scene; // Create Scene (www.vtk.org) scene. SetDataFileName( infile ); scene. InitializeSceneO;
PDF3DlnterfaceDesc desc; // Prepare for conversion desc.Scenelnterface = new VTKScenelnterface; desc. Model Interface = new VTKModel Interface; desc.Lightlnterface = new VTKLightlnterface; desc.Viewlnterface = new VTKViewlnterface;
PDF3DConversionManager converter; // create PD F3D converter converter.SetlnterfaceDesc( desc ); // link interface to scene
((VTKScenelnterface*)(desc.Scenelnterface))->SetVTKScene( &scene ); ((VTKModel Interface*)
(desc.Modellnterface))->SetCLODGenerationEnabled( false );
converter. InitializeQ; // initialize the converter converter.ConvertQ; // perform the conversion PDF3DExporter exporter; // export into PDF exporter.SetOutputFormat( PDF3DExporter::PDF ); exporter.SetOutputFileName( outfile ); exporter.GetPDFOptionsQ.Title = "Some Title"; // Meta-data exporter.GetPDFOptions().Author = "Author"; exporter.GetPDFOptionsQ. Creator = " Creator"; exporter.GetPDFOptionsQ. Producer = "Producer"; exporter. Export("3D Document Generator Page Title");
Insofar as embodiments of the invention described above are implementable, at least in part, using an instruction configurable programmable processing device such as a Digital Signal Processor, FPGA, microprocessor, other processing devices, data processing apparatus or computer system, it will be appreciated that program instructions for configuring a programmable device, apparatus or system to implement the foregoing described methods is envisaged as an aspect of the present invention. The program instructions (such as, for example, computer program instructions) may be embodied as source code and undergo compilation for implementation on a processing device, apparatus or system, or may be embodied as object code, for example. The skilled person would readily understand that the term computer in its most general sense encompasses programmable devices such as referred to above, and data processing apparatus and computer systems.
Suitably, the program instructions are stored on a carrier medium in machine or device readable form, for example in solid-state memory, magnetic memory such as disc or tape, optically or magneto-optically readable memory, such as compact disk read-only or read-write memory (CD-ROM, CD-RW), digital versatile disk (DVD) etc., and the processing device utilises the program instructions or a part thereof to configure it for operation. The program instructions may be supplied from a remote source embodied in a communications medium such as an electronic signal, radio frequency carrier wave or optical carrier wave. Such carrier media are also envisaged as aspects of the present invention.
Although the invention has been described in relation to the preceding example embodiments, it will be understood by those skilled in the art that the invention is not limited thereto, and that many variations are possible falling within the scope of the invention, which is defined by the appended claims. For example, methods for performing operations in accordance with any one or combination of the embodiments and aspects described herein are intended to fall within the scope of the invention.
The scope of the invention is defined by the claims, with the description providing an aid to interpretation thereof, and includes any novel feature or combination of features disclosed therein either explicitly or implicitly or any generalisation thereof. The applicant hereby gives notice that new claims may be formulated to such features during the prosecution of this application or of any such further application derived therefrom. In particular, with reference to the appended claims, any number of features from any one or more claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the claims.

Claims

1. An apparatus for generating 3D documents comprising: a plurality of data connection means, at least one of said data connection means being adapted to access, receive and transmit 3D input data; means for generating a 3D template; means for identifying in said template parameters for which no update is required; means for identifying in said input data parameters which are required to update said template; means for automatically updating said 3D template by applying the values of said required parameters of said 3D input data to said template; means for integrating the updated 3D template into a PDF document.
2. An apparatus as defined in Claim 1 wherein the automatic updating means is operable to fill in, partially fill in, substitute, overlay or replace parameter values in the 3D template with values of required parameters in the input data.
3. An apparatus as defined in Claim 1 or Claim 2 wherein the automatic updating means is operable to apply a null update when the said required parameters in the input data have zero or empty values.
4. An apparatus as defined in Claim 3 wherein the automatic updating means is operable to perform a further completion procedure when the said required parameters in the input data have zero or empty values.
5. An apparatus as defined in Claim 4 wherein the automatic updating means is operable to perform said further completion procedure, said updating means further comprising a dynamic parameter generator for generating a value of said required parameter depending on a subset of the other parameters, the subset being defined and associated with that required parameter.
6. An apparatus as defined in any one of Claims 3 to 5 wherein the automatic updating means is operable to reference a flag or null pointer when the said required parameters in the input data have zero or empty values.
7. An apparatus as defined in any previous claim wherein the identifying means is operable to identify as non-required parameters those parameters which are invariant over the range of possible received 3D input data values.
8. An apparatus as defined in any previous claim wherein the identifying means is operable to identify as required parameters those parameters which are dependent on at least a subset of the possible received 3D input data values.
9. An apparatus as defined in any previous claim wherein each said data connection means is configured to accept a distinct data type.
10.An apparatus as defined in Claim 9 wherein the data type is at least one of key data, lists, arrays, text strings and numerical values.
11.An apparatus as defined in any previous claim wherein at least one data connection means is a scene graph connector for transmitting 3D data.
12.An apparatus as defined in any previous claim further comprising at least one host means for storing and supporting a plurality of distinct host applications, said data connection means accessing, receiving and transmitting data from said host means.
13.An apparatus as defined in any previous claim wherein at least one data connection means is a technical data source access connector for receiving technical data, the technical data being stored in a host application stored and supported on the host means.
14.An apparatus as in any previous claim further comprising means for directly receiving the input 3D data from said host applications stored and supported on said host means.
15.An apparatus as in any previous claim wherein the integrating means further comprises viewer means for making the 3D information which results from integrating the updated 3D template visible in a dedicated window in the PDF document and capable of manipulation in 3D by the user.
16.An apparatus according to any previous claim, further comprising output means for producing computer readable documents, said documents being either stored files or streamed as network data.
17.An apparatus according to any previous claim, wherein at least one of said data connection means accepts geometric entities including vertices.
18.An apparatus according to any preceding claim, wherein said integral 3D input data includes spatially referenced numerical coordinate information.
19.An apparatus according to Claim 18, wherein said spatially referenced numerical coordinate information comprises geographical reference data comprising longitude, latitude, altitude and directional bearings.
20.An apparatus according to Claim 18 wherein said spatially referenced numerical coordinate information comprises molecular referenced coordinates.
21.An apparatus according to Claim 18 wherein said spatially referenced numerical coordinate information comprises real physical dimensions or real physical properties of an object or simulated object.
22.An apparatus according to any preceding claim, wherein the generating means is operable to perform one or more of the following operations on the 3D input data: geometric compression, geometric reduction, level of detail simplification, or continuous level of detail processes.
23.An apparatus according to any preceding claim, wherein the generating means is operable to accept time varying input data and to produce output suitable for replay of said time varying data.
24.An apparatus according to any preceding claim, wherein at least one of said data connection means is configured to accept meta-data; and said meta-data is included, reported or present in the generated output.
25.An apparatus according to any preceding claim, wherein the data connection means is operable to access, receive and transmit 3D input data comprising one or more of: coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper- spectral colors, displacements or time-dependent attributes.
26.A method for generating 3D documents comprising: - providing a plurality of data connection means, at least one of said data connection means being adapted to access, receive and transmit 3D input data;
- generating a 3D template
- identifying in said template parameters for which no update is required - identifying in said input data parameters which are required to update said template
- automatically updating said 3D template by applying the values of said required parameters of said 3D input data to said template
- integrating the updated 3D template into a PDF document
27.A method as defined in Claim 26 wherein, in the automatic updating step, parameter values in the 3D template are filled in, partially filled in, substituted, overlaid or replaced with values of required parameters in the input data.
28.A method as defined in Claim 26 or Claim 27 wherein, in the automatic updating step, a null update is applied when the said required parameters in the input data have zero or empty values.
29.A method as defined in Claim 28 wherein, in the automatic updating step, a further completion procedure is applied when the said required parameters in the input data have zero or empty values.
30. A method as defined in Claim 29 wherein said further completion procedure comprises a dynamic parameter generation step, generating a value of said required parameter depending on a subset of the other parameters, the subset being defined and associated with that required parameter.
31.A method as defined in any one of Claims 28 to 30 wherein the automatic updating step references a flag or null pointer when the said required parameters in the input data have zero or empty values.
32. A method as defined in any one of Claims 26 to 31 wherein the identifying step identifies as non-required parameters those parameters which are invariant over the range of possible received 3D input data values.
33. A method as defined any one of Claims 26 to 32 wherein the identifying step identifies as required parameters those parameters which are dependent on at least a subset of the possible received 3D input data values.
34.A method as defined in any one of Claims 26 to 33 further comprising configuring said data connection means to accept a distinct data type.
35.A method as defined in Claim 34 wherein the data type is at least one of key data, lists, arrays, text strings and numerical values.
36.A method as defined in any one of Claims 26 to 35 wherein, in the providing step, at least one data connection means is a scene graph connector for transmitting 3D data.
37.A method as defined any one of Claims 26 to 36 further comprising at storing and supporting a plurality of distinct host applications, said data connection means accessing, receiving and transmitting data from said host applications.
38.A method as defined in any one of Claims 26 to 37 wherein, in the providing step, at least one data connection means is a technical data source access connector for receiving technical data, the technical data being stored in a host application stored and supported on the host means.
39. A method as in any one of Claims 26 to 38 wherein the input 3D data is received directly from said host applications stored and supported on said host means. I
40. A method as in any one of Claims 26 to 39 wherein the integrating step further comprises making the 3D information which results from integrating the updated 3D template visible in a dedicated window in the PDF document and capable of manipulation in 3D by the user.
41. A method according to any one of Claims 26 to 40, further comprising output means for producing computer readable documents, said documents being either stored files or streamed as network data.
42. A method according to any one of Claims 26 to 41 , wherein at least one of said data connection means accepts geometric entities including vertices.
43.A method according to any preceding claim, wherein said integral 3D input data includes spatially referenced numerical coordinate information.
44.A method according to Claim 43, wherein said spatially referenced numerical coordinate information comprises geographical reference data comprising longitude, latitude, altitude and directional bearings.
45.A method according to Claim 43 wherein said spatially referenced numerical coordinate information comprises molecular referenced coordinates.
46.A method according to Claim 43 wherein said spatially referenced numerical coordinate information comprises real physical dimensions or real physical properties of an object or simulated object.
47.A method according to any one of Claims 26 to 46, wherein, in the generating step, one or more of the following operations is performed on the 3D input data: geometric compression, geometric reduction, level of detail simplification, or continuous level of detail processes.
48.A method according to any preceding claim, wherein, in the generating step, time varying input data is accepted and output suitable for replay of said time varying data is produced.
49.A method according to any preceding claim, wherein at least one of said data connection means accepts meta-data; and said meta-data is included is reported or present in the generated output.
50. A method according to any preceding claim, wherein the data connection means accesses, receives and transmits 3D input data comprising one or more of: coordinate lists, connectivity lists, points, lines, polygons, polyhedrons, triangle strips, meshes, cells, splines, surfaces, grids, adaptive mesh refinements, multi-block grids, voxels, normals, colors, color indexes, color look-up tables, textures, reflection maps, transformations, transparency, shaders, object hierarchies, hyper-spectral colors, displacements or time-dependent attributes.
51. A computer program product comprising a storage medium for storing machine readable instructions for implementing the method of Claims 26 to 50.
52.An interactive graphics application product comprising a computer program product as defined in Claim 51.
PCT/GB2007/050497 2006-09-01 2007-08-20 3 d pdf document generator and method for generating 3d pdf documents WO2008026003A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0617294.4 2006-09-01
GB0617294A GB2441352A (en) 2006-09-01 2006-09-01 3D document generator

Publications (2)

Publication Number Publication Date
WO2008026003A2 true WO2008026003A2 (en) 2008-03-06
WO2008026003A3 WO2008026003A3 (en) 2008-05-22

Family

ID=37137225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2007/050497 WO2008026003A2 (en) 2006-09-01 2007-08-20 3 d pdf document generator and method for generating 3d pdf documents

Country Status (2)

Country Link
GB (1) GB2441352A (en)
WO (1) WO2008026003A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197908A (en) * 2013-04-09 2013-07-10 广东粤铁瀚阳科技有限公司 Information display platform based PDF (portable document format) file display method and information display platform based PDF file display system
CN108920432A (en) * 2018-06-25 2018-11-30 广州文冲船厂有限责任公司 Method for transformation, device, terminal device and the storage medium of 3D pdf document
WO2022075634A1 (en) * 2020-10-08 2022-04-14 삼성엔지니어링 주식회사 Method for implementing 3d pdf drawing from 3d model of plant
CN115098100A (en) * 2022-06-24 2022-09-23 华南理工大学 Digital twin body component driving method based on cloud-native industrial application scene
CN117475093A (en) * 2023-12-28 2024-01-30 齐马(海南)科技有限公司 Automatic conversion method from XML Meng Ka-based geometric representation to three-dimensional CAD model

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111415398B (en) * 2019-01-08 2024-01-05 杭州海康威视数字技术股份有限公司 Method and device for displaying annotation on display screen

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857064A (en) * 1995-04-03 1999-01-05 Object Technology Licensing Corporation System for imaging complex graphical images
JP3602037B2 (en) * 1999-08-23 2004-12-15 株式会社フジエ How to create a moving image data file

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A RAZO, D SOL: "Standard 2D and 3D geo-spatial data formats for a Volcano Geographic Information System" TERCER ENCUENTRO INTERNACIONAL DE CIENCIAS DE LA COMPUTACIÓN., [Online] September 2001 (2001-09), XP002472456 Aguascalientes, México Retrieved from the Internet: URL:http://ict.udlap.mx/activities/GIS/html/publicaciones.html> [retrieved on 2008-03-12] *
ANONYMOUS: "XSL Transformations (XSLT) Version 1.0" W3C RECOMMENDATION, [Online] 16 November 1999 (1999-11-16), XP001152387 Retrieved from the Internet: URL:http://www.w3.org/TR/1999/REC-xslt-19991116> [retrieved on 2008-03-12] *
GEORGI: "Create pdf from external application using pdf-template and u3d m" PLANET PDF FORUM ARCHIVE, [Online] 18 July 2006 (2006-07-18), XP002472458 Retrieved from the Internet: URL:http://www.planetpdf.com/forumarchive/152269.asp> [retrieved on 2008-03-12] *
NICHOLAS F. POLYS: "Stylesheet transformations for interactive visualization: towards a Web3D chemistry curricula" PROCEEDINGS OF THE EIGHTH INTERNATIONAL CONFERENCE ON 3D WEB TECHNOLOGY, SAINT MALO, FRANCE, MARCH 09 - 12, 2003, 2003, pages 85-90,205, XP002472457 *
NICHOLAS F. POLYS: "Publishing Paradigms for X3D" 2005, SPRINGER , IN VISUALIZING INFORMATION USING SVG AND X3D, VLADIMIR GEROIMENKO, CHAOMEI CHEN EDITORS , XP002472455 page 153, paragraph 7.1 page 157, paragraph 7.1.3 - page 158 page 166, paragraph 7.4 - page 173 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197908A (en) * 2013-04-09 2013-07-10 广东粤铁瀚阳科技有限公司 Information display platform based PDF (portable document format) file display method and information display platform based PDF file display system
CN108920432A (en) * 2018-06-25 2018-11-30 广州文冲船厂有限责任公司 Method for transformation, device, terminal device and the storage medium of 3D pdf document
CN108920432B (en) * 2018-06-25 2022-07-05 广州文冲船厂有限责任公司 Method and device for converting 3D PDF file, terminal equipment and storage medium
WO2022075634A1 (en) * 2020-10-08 2022-04-14 삼성엔지니어링 주식회사 Method for implementing 3d pdf drawing from 3d model of plant
CN115098100A (en) * 2022-06-24 2022-09-23 华南理工大学 Digital twin body component driving method based on cloud-native industrial application scene
CN115098100B (en) * 2022-06-24 2024-03-26 华南理工大学 Digital twin body assembly driving method oriented to industrial application scene based on cloud protogenesis
CN117475093A (en) * 2023-12-28 2024-01-30 齐马(海南)科技有限公司 Automatic conversion method from XML Meng Ka-based geometric representation to three-dimensional CAD model
CN117475093B (en) * 2023-12-28 2024-04-16 齐马(海南)科技有限公司 Automatic conversion method from geometric representation based on XML Meng Ka to three-dimensional CAD model

Also Published As

Publication number Publication date
WO2008026003A3 (en) 2008-05-22
GB0617294D0 (en) 2006-10-11
GB2441352A (en) 2008-03-05

Similar Documents

Publication Publication Date Title
Schilling et al. Using glTF for streaming CityGML 3D city models
Döllner et al. Integrating urban GIS, CAD, and BIM data by service-based virtual 3D city models
Turk et al. yt: A multi-code analysis toolkit for astrophysical simulation data
US8612040B2 (en) Automated derivative view rendering system
Robinet glTF: Designing an open-standard runtime asset format fabrice robinet, Re mi Arnaud, Tony Parisi, and Patrick Cozzi
WO2008026003A2 (en) 3 d pdf document generator and method for generating 3d pdf documents
Van Oosterom et al. Bridging the worlds of CAD and GIS
Döllner et al. An object-oriented approach for integrating 3D visualization systems and GIS
Hummel et al. Leveraging nvidia omniverse for in situ visualization
Arroyo Ohori azul: A fast and efficient 3D city model viewer for macOS
Boutsi et al. Interactive online visualization of complex 3D geometries
Brovelli et al. Virtual globes for 4D environmental analysis
Masci et al. 3D in the CARARE project: Providing Europeana with 3D content for the archaeological and architectural heritage: The Pompeii case study
Zhang et al. Geospatial data interoperability, geography markup language (GML), scalable vector graphics (SVG), and geospatial web services
Zhang et al. U3D File format analyzing and 3DPDF generating method
Li et al. A web-based remote sensing data processing and production system with the unified integration of multi-disciplinary data and models
Sophocleous et al. Medici 2: A scalable content management system for cultural heritage datasets
CN114969586A (en) BIM (building information modeling) graphic engine loading method and device based on WEB side
Diez et al. 3D model management for e-commerce
Yao et al. Interoperable internet mapping—an open source approach
Romphf et al. Resurrect3D: An open and customizable platform for visualizing and analyzing cultural heritage artifacts
Petrova-Antonova et al. Towards a semantic 3D model of Sofia City
Milosavljević et al. An architecture for open and scalable WebGIS
Polys Publishing Paradigms for X3D
Lee 3d urban modeling and rendering with high resolution remote sensing imagery on mobile 3d and web 3d environments; system architecture and prototype implementation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07804414

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07804414

Country of ref document: EP

Kind code of ref document: A2