The purpose of the work is the development of program algorithm for objects morphing on the basis of current methods of basic bodies’ parametrical change. The article carries out the analysis of current methods of objects’ morphing and their realization at the program level. An algorithm of the morphing library work was developed.
With development of the three-dimensional (3D) graphics, there are a lot of tasks where the morphing of objects according to developer’s requirements can be applied. It includes a sphere of animation, an online application with three-dimensional visualization and a game industry. For example, the modem industry of the computer games and animation makes high demands to realness of the environment representation, an individualization and specification of animated characters. To realize these requirements it is necessary to perform a large amount of works which will demand the considerable expenses of resources that will lead to decrease of the product competitiveness and of the project profitability.
Today, it is possible to distinguish some main approaches to the creation of 3D models of objects, offered today in the most successful 3D programs – schedules: the creation of solid bodies by means of Boolean operations – by addition, subtraction or crossing of models material; the formation of the composite polygonal surfaces, which are called as a Mesh-surfaces, by polygonal or NURBS modeling; the use of geometry modifiers. There are the main organizations using these techniques in its products: Autodesk, Dessault System, Unity and others. The programs Autodesk 3Ds Max, Autodesk Maya, Unity 3D work with objects of the different type, including the polygonal grids to which the term “morphing” is directly applied.
Let’s give the definition of the concept a morphing. Morphing is a smooth transformation of the image of one object to another. One of the tasks, where the object morphing is successfully applied, is the creation of game characters with different external data. For this purpose to the developer will optimum work with a basic body, what in the professional environment is called ”primitive”. Setting parameters for morphing, the developer will receive a number of the same objects, unique on the external data, for example, game characters, and won’t spend much less temporary resources. One more example of the task where an online object morphing is successfully applied, it is, so-called, “the 3D – fitting rooms”. The essence of the operation of such application is that the user, having intuitively clear interface, enters parameters of his body, thereby editing the basic object, in this case 3D-dummy, under individual parameters, and after this tries on the three-dimensional clothes preparations provided by known trademarks. The application allows to estimate the product appearance on the user’s body, and also to pick up an appropriate size. Use of such application on the site of the producer increases online sales and considerably minimizes risks of the goods return.
The direction of modules integration on an object morphing in the real-time mode develops in Russia since 2011. Corporations carry out orders to the research centers for the software product development to improvement the content quality that they can use for visualization of practical material in internal and external activity. Orders arrive from versatile representatives, among them automobile consortia, marketing services, textile productions, and a raw segment of the Russian business. Developers use various ways to execute the module most close to the mortgaged requirements. Working on the subject domain analysis, it becomes clear that there is no universal utility at the moment. Existing software products are applicable only in the specialized areas.
Objects morphing and its realization at the program level
It is difficult to find issued in the book information about of parametrical objects morphing at the moment, Actual information can be found at specialized forums of programmers, often foreign, or in personal contact with the practicing experts. We will begin with definition of Morphing, as process.
Morphing (Morph) is a process of transformation of one object to another, by means of object’s tops provision changing. Editing of the polygonal objects can be made both at the level of object in general, and at the level of subobjects: sides, edges or tops. Prom it depends on what algorithm of work will be applied for morphing. The real secret of combined transformations use is the announcement of a reference mesh in the equation. The basic mesh (basic object) determines the initial coordinates of each top in a mesh before morphing application. Often the basic mesh is the initial mesh of morphing operation. In an example of the person face mesh the person face with the closed mouth and open eyes is basic. When you combine two morphing meshes (or any quantity meshes), you define a difference of tops coordinates of the each morphing mesh and the basic mesh. You unite these differences of coordinates in the resultant combined morphing mesh.
The morphing can be applied to net objects, patches or NURBS surfaces. Further, we will consider a net morphing. However, its principles are uniform for objects of any origin. A necessary condition of the objects morphing creation – is the preservation of number of tops: it has to be the same, as in inoculating object. This results from the fact that operation of a morphing simply moves the inoculating object’s tops that they coincided with the corresponding tops of object-purpose. If the number of tops changes, the morphing doesn’t work.
Polygonal grid (slangy “the mesh” from English “polygon mesh”) is a set of tops» edges and sides, which define a form of many-sided object in three-dimensional computer graphics and volume modeling. Sides usually are triangles, quadrangles or other simple convex polygons (grounds) as it simplifies visualization (rendering), but grids can also consist and of the most general concave polygons, or polygons with holes.
Work with polygonal grids – is big subsection of computer graphics and geometrical modeling. The set of the operations performed over grids can include Boolean algebra, smoothing, simplification and many others. Different representations of polygonal grids are used for the different purposes and appendices. For transfer of polygonal grids network representations’ on a network, such as “stream” and “progressive” grids are used. Volume grids differ from polygonal in that they obviously represent both surface and volume of structure whereas polygonal grids obviously represent only surface, but not volume. As polygonal grids are widely used in computer graphics, algorithms of beams trace, detection of collisions and dynamics of solid bodies are developed for them.
Mathematical equivalent of polygonal grids is unstructured grids.
Basic spatial forms are: parallelepiped, cone, sphere, torus, wedge, cylinder (Fig. 1, 2).
Fig. 1. Basic spatial forms
Fig. 2. Elements of polygonal grid modeling
The objects created by means of polygonal grids have to store different types of elements, such as tops, edges, sides, grounds and surfaces. Only tops, edges and either sides, or grounds are stored in many cases. The top is a position together with other information, such as color, a normal vector and coordinates of texture. The edge is a connection between two tops. The side is the closed set of edges in which the triangular side has three edges and quadrangular – four. The ground is a set of sides.
In systems, which support multilateral sides, grounds and sides are equivalent. Mathematically, the polygonal grid can be presented in the form of an unstructured grid, or the nondirectional count, with addition of properties of geometry, a form and topology.
Usually for a grid are defined materials, which allows different parts of grid to use different shaders for rendering. The majority of the grid formats also assume UV coordinates which are the separate two-dimensional representation of a polygonal grid developed’1 to show, what part of two-dimensional texture is applied to different grounds of a grid.
At the program level, polygonal data can be stored and transferred in various formats: *3ds.*stl.*obj.*x3d and so on. Each of them has the advantages and shortcomings. Generally, the characteristic of this or that format depends on the program parent, the volume and contents of file’s data, and depends on compatibility with other software products. According to skilled data the.*obj format has the optimum characteristic to assume it as a basis the developed library.
A Java/JNI part of the JNI interface and а set of java classes. Classes Morpher and MoiphObject – java wrappers for JNI interface. Class MorpherError contains the error codes.