A 3D graphics application development engine system, 3D graphics application and development method

By establishing a single source code system through a subset of TypeScript language data types, the problem of technology stack fragmentation in 3D graphics application development across different platforms is solved, achieving efficient and unified development and cross-platform compatibility, thus improving development efficiency and performance.

CN120803414BActive Publication Date: 2025-11-21LAYABOX NETWORK TECH (BEIJING) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511284233.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-09
Publication Date
2025-11-21
Estimated Expiration
2045-09-09

AI Technical Summary

Technical Problem

Existing 3D graphics application development faces problems such as high development costs, large technology stack fragmentation, heavy maintenance burden, complex release process, and significant performance differences across different platforms. Existing cross-platform workarounds cannot effectively solve the performance loss.

Method used

A single source code system is established using a subset of TypeScript language data types. Through project source code development and conversion modules, the source code of 3D graphics application projects can be converted between the web and native ends. Cross-platform abstraction modules and development tool modules are used to achieve unified development and release.

Benefits of technology

It reduces the learning and workload for developers, improves development efficiency, achieves a balance between cross-platform compatibility and performance, and shortens product launch time by 30-50%.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120803414B_ABST
    Figure CN120803414B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a 3D graphics application development engine system, a 3D graphics application and a development method, the 3D graphics application development engine system comprises a rendering API, the rendering API comprises a project source code development module based on a TypeScript language data type subset and a project source code conversion module, the former is used for developing 3D graphics application project source code by using the TypeScript language data type subset, the latter is used for converting 3D graphics application project source code developed by the project source code development module into a Web end development language code according to a first predetermined rule, and / or converting 3D graphics application source code developed by the project source code development module into a native end development language code according to a second predetermined rule. The embodiment of the application can reduce 3D graphics application development cost and improve development efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of 3D graphics application development, and in particular to a 3D graphics application development engine system, a 3D graphics application, and a 3D graphics application development method. Background Technology

[0002] 3D graphics applications are widely used across various application scenarios (platforms) and have been applied in fields such as engineering design, film and television special effects, game development, virtual reality, and military simulation. Different application scenarios (platforms), based on their own characteristics—such as the operating system used, graphics resource formats, and speed requirements—have significantly different API interfaces for 3D graphics applications. To accommodate these differences, even for the same 3D graphics application implementing the same functionality, it is often necessary to develop different versions in different languages ​​for different application scenarios (platforms), and then recode and maintain each version independently. See also... Figure 1 If a 3D game application project needs to be developed, in order to better promote the application, it is necessary to develop not only a JavaScript version adapted for the Web platform (Web client), but also a high-performance C++ version adapted for multiple operating systems (App client). This leads to problems such as high development costs, large fragmentation of the technology stack, heavy maintenance burden, complex release process, and significant performance differences in 3D graphics application development, which seriously restricts the high-quality development of 3D graphics applications.

[0003] To address one or more of the aforementioned problems faced by 3D graphics applications, existing technologies employ workarounds that adapt to one platform application using various methods. See also... Figure 2 This diagram illustrates the different development paths for web and native applications using various tools. For example, after developing a web-based JavaScript version of a 3D graphics application, instead of developing a separate native version, the JavaScript version is converted into a native C++ version using a runtime environment. Similarly, after developing a C++ version suitable for the app, it is converted back to JavaScript using WASM. However, both converting the web-based 3D graphics application to a native version and vice versa compromise the performance of the original version, reducing its speed and efficiency. Summary of the Invention

[0004] This application provides a 3D graphics application development engine system, a 3D graphics application, and a development method to reduce the cost of cross-platform development of 3D graphics applications and improve development efficiency.

[0005] In one aspect, the 3D graphics application development engine system provided by the embodiments of the present application can be used to develop a 3D graphics application project. The system comprises a rendering API, which comprises a project source code development module based on a TypeScript language data type subset and a project source code conversion module. The TypeScript language data type subset is a part of TypeScript language data types determined according to data types of a web-side development language and a native-side development language.

[0006] The project source code development module is configured to develop a 3D graphics application project source code using the TypeScript language data type subset.

[0007] The project source code conversion module is configured to convert the 3D graphics application project source code developed by the project source code development module into a web-side development language code according to a first predetermined rule, and / or convert the 3D graphics application source code developed by the project source code development module into a native-side development language code according to a second predetermined rule.

[0008] Preferably, the TypeScript language data type subset comprises data types determined by specializing corresponding data types in the TypeScript language that can achieve the same function according to one or more data types in the native-side development language.

[0009] Preferably, the first predetermined rule comprises at least a selection rule for converting into a web-side 3D graphics application project, and the second predetermined rule comprises at least a selection rule for converting into a native-side 3D graphics application project.

[0010] The project source code conversion module is configured to convert the 3D graphics application project source code developed by the project source code development module into a web-side development language code according to the first predetermined rule when receiving a conversion into a web-side 3D graphics application project, and convert the 3D graphics application project source code developed by the project source code development module into a native-side development language code according to the second predetermined rule when receiving a conversion into a native-side 3D graphics application project.

[0011] Preferably, the first predetermined rule and the second predetermined rule are two branch rules under the same total rule. The project source code conversion module is configured to select the first predetermined rule and / or the second predetermined rule according to the total rule when receiving an instruction at least comprising a conversion into a web-side 3D graphics application project and / or a native-side 3D graphics application project.

[0012] When the first predetermined rule is selected, the 3D graphics application project source code developed by the project source code development module is converted into a Web-side development language code according to the first predetermined rule, and when the first predetermined rule further includes a compilation and release instruction, the converted Web-side development language code is compiled and released; and / or,

[0013] When the second predetermined rule is selected, the 3D graphics application project source code of the project source code development module is converted into a native-side development language code according to the second predetermined rule, and when the first predetermined rule further includes a compilation and release instruction, the converted native-side development language code is compiled and released.

[0014] Preferably, the project source code conversion module is further configured to generate WebGPU rendering code from the converted Web-side development language code, generate a resource format suitable for Web-side distribution, and / or generate native-side executable files for different operating systems from the converted native-side development language code, and generate independent distributable programs.

[0015] Preferably, the generation of the native-side executable files for different operating systems specifically includes:

[0016] When the operating system is Windows,.exe executable files and installation packages are generated;

[0017] When the operating system is MacOS,.app application packages and.dmg installation images are generated;

[0018] When the operating system is Linux, distribution software packages are generated;

[0019] When the operating system is Android, Android APK installation packages are generated;

[0020] When the operating system is iOS, iOS IPA installation packages are generated.

[0021] Preferably, the system further includes a cross-platform abstraction module and a development tool module, wherein:

[0022] The cross-platform abstraction module includes a resource manager for texture, model, and audio resource loading and management, a window manager for window creation, event processing, and full-screen switching functions, and an input processing module;

[0023] The development tool module includes a visual scene editor for supporting 3D application scene visualization building and editing, a material editor for node material and shader editing, an animation editor for keyframe animation and skeletal animation editing, and a performance analyzer for real-time performance monitoring and bottleneck analysis.

[0024] In another aspect, the embodiments of the present application also provide a 3D graphics application, which is an application developed by using the 3D graphics application development engine system according to any one of the preceding technical solutions.

[0025] In another aspect, the embodiments of the present application also provide a 3D graphics application project development method, which comprises the following key steps:

[0026] The 3D graphics application project source code is based on a TypeScript language data type subset, which is a part of TypeScript language data types determined according to the data types of the web-side development language and the native-side development language;

[0027] The 3D graphics application project source code is converted into web-side development language code according to a first predetermined rule, and / or the 3D graphics application project source code is converted into native-side development language code according to a second predetermined rule;

[0028] The 3D graphics application project is developed based on the converted web-side development language code and / or native-side development language code.

[0029] Preferably, the TypeScript language data type subset comprises data types determined by specializing corresponding data types in the TypeScript language that can achieve the same function according to one or more data types in the native-side development language.

[0030] Compared with the prior art, the embodiments of the present application establish a single source code system, and developers do not need to learn different language writing knowledge of the web-side and the native-side respectively, do not need to master the JavaScript / WebGL technology special for the web-side and the C++ / OpenGL or Vulkan development method or knowledge special for the native-side respectively, and do not need to repeatedly implement the same business logic in different languages, which greatly reduces the learning amount and development workload of the developers, and effectively improves the development work efficiency. BRIEF DESCRIPTION OF DRAWINGS

[0031] The accompanying drawings, which are included to provide a further understanding of the present application, constitute a part of the present application and illustrate the illustrative embodiments of the present application and their descriptions serve to explain the present application, and do not constitute improper limitations on the present application. In the drawings:

[0032] Figure 1 It is a use scenario diagram of the 3D graphics application in the prior art;

[0033] Figure 2 It is a path diagram for solving the technical problems of the prior art;

[0034] Figure 3Figure 3D is a schematic diagram of a structure of a 3D graphics application development engine system according to an embodiment of the present application.

[0035] Figure 4 Figure 4D is a schematic diagram of a function layer of a 3D graphics application development engine according to an embodiment of the present application. DETAILED DESCRIPTION

[0036] Before various embodiments of the present application are fully described, some basic background and basic terms and concepts are briefly introduced for ease of understanding. With the development of information computer technology, people have used 3D graphics applications (3D applications) in various occasions. 3D (Three-Dimensional) graphics application technology simulates the visual characteristics of the human eye, and presents a stereoscopic visual effect on a two-dimensional plane display device through three-dimensional coordinate modeling. Its superior presentation effect is widely used in various fields. For example, in the field of film and television special effects, Maya, 3DMAX and other software are used to realize character animation and scene rendering through polygon modeling, and various cool and immersive effects are displayed on the screen. In the field of game development, real-time rendering engines such as Unity and UnrealEngine are used to generate dynamic scenes, greatly enhancing the interactive game experience. Due to the differences between platforms, the same 3D application has to be developed and operated multiple times for publication to adapt to the characteristics of each platform. As introduced in the background section, this mode will bring a series of problems. For example, in terms of development stage, since the 3D graphics application under different platforms or scenes needs to be developed independently, the developer needs to learn and master the development technology of different terminals. Web-side 3D graphics applications need to use Web-side technology stacks (Web-side usually uses JavaScript / WebGL technology stacks), while native-side 3D graphics applications need to use native-side technology stacks (native-side usually uses C++ / OpenGL or Vulkan). This obviously increases the learning cost and labor cost of developing 3D graphics applications. Due to the existence of this “technology stack split”, the same application uses different languages and must repeat the implementation of the same business logic, further increasing the development cost. Not only the development stage cost increases, but in terms of 3D graphics application maintenance, different platform versions need to be maintained independently, and when the function is updated, multiple sets of code need to be modified simultaneously. In terms of product release, different platforms require different build tools, packaging methods and distribution channels. The “cost” of the same 3D application due to different platforms has not brought significant performance improvement due to the performance limitations of the Web version JavaScript language “fast on the surface and slow on the bottom” and the performance limitations of the native version C / C++ language “fast on the bottom but complex to develop”.

[0037] To solve this problem, two compromise solutions in the prior art have emerged: one is to modify the Web end to adapt to the native end, and the other is to modify the native end to adapt to the Web end. Continuing to refer to Figure 2 For the former, taking LayaAir as an example, the source code written in TypeScript language (TS language) can be directly applied to the Web end. In order to obtain the native end code corresponding to the 3D graphics application with the same function, the TypeScript language code is converted into JavaScript code (JS code), and then compiled into a C++ version, and the relevant processing is realized by running in the Runtime. Since TypeScript and JavaScript are mainly for the Web end, although this "modification" can enable the 3D graphics application to achieve the same function, its performance is far lower than that of a pure native end 3D graphics application. For the latter, taking Unity as an example, the native end code written in C++ language can be directly used for a native end 3D graphics application. In order to obtain the Web end code corresponding to the 3D graphics application with the same function, the C++ code is converted into JavaScript language through WASM, and then a Web end is generated, but its performance is far lower than that of a pure Web end. As can be seen, neither way can fundamentally solve the problem.

[0038] Before the embodiment of the present application is formally proposed, a new development language, TypeScript language, is introduced. The language is an open source programming language developed by Microsoft Corporation, which expands the syntax of JavaScript by adding optional static types and class-based object-oriented programming, and can be converted into JavaScript code through TypeScript editor or Babel. Any existing JavaScript program can run in the TypeScript environment, that is, all valid JavaScript code is also valid TypeScript code. At the same time, the TypeScript language can run in any browser and any operating system, such as Chrome, IE, Safari, Firefox, Edge, etc., solving the problem that JavaScript language is difficult to undertake large project development and maintenance due to its own limitations. Therefore, the TypeScript language is obviously more adaptable than the JavaScript language. For example, when the code written in JavaScript language does not give the type, an error will be reported during the compilation of the JavaScript language, but in the TypeScript language, the TypeScript compiler can automatically infer the type by using the type inference function. If there is no type to be inferred due to lack of declaration, it will be the dynamic any type by default, thereby realizing various application scenarios. As described above, it can be seen that the TypeScript language has a deep origin with the JavaScript language, and based on this origin, the TypeScript language is usually similar to the JavaScript language, and even because of its open and inclusive syntax structure, the TypeScript language is more suitable for the Web side than the JavaScript language. The embodiment of the present application attempts to break this mindset and unify the development of 3D graphics applications for the Web side and the native side by using the TypeScript language, so that the user only needs to develop once, and can publish the JavaScript version suitable for the Web platform and the high-performance C++ version suitable for multiple operating systems at the same time.

[0039] To achieve the above object, the embodiment of the present application establishes a single source code system, establishes a unified development language based on a strict data type subset of the TypeScript language, and uses the language to complete the development of 3D graphics applications. Specifically, referring to Figure 3The 3D graphics application development engine system U3 provided by the embodiments of the present application, when used for developing a 3D graphics application project, its core rendering API component U30 includes a project source code development module U31 and a project conversion module U32, wherein: the project source code development module U31 is used for developing a 3D graphics application project source code based on a TypeScript language data type subset; the project source code conversion module U32 is used for converting the 3D graphics application project source code developed by the project source code development module into a Web-side development language code according to a first predetermined rule, and optionally or simultaneously, converting the 3D graphics application source code developed by the project source code development module into a native-side development language code according to a second predetermined rule. The 3D graphics application development engine system (other parts or other independent components) uses the converted Web-side development language code or the native-side development language code to finally complete the 3D graphics application development project.

[0040] In the above embodiments, the project source code development module is different from the development module in the prior art, but is a new module based on a subset of TypeScript language data types. The subset of TypeScript language data types is a part of the existing TypeScript language data types based on the TypeScript language, and is a limitation of the TypeScript language (which can be referred to as X-TypeScript). This limitation does not form an obstacle in achieving the same target function compared to the original JavaScript language, and more importantly, it can also meet the needs of the native language. Details are described below. The TypeScript language data types include basic types (such as boolean, number, string, etc.), composite types (such as arrays, tuples, enumerations, etc.), and special types (such as any, unknown, never, etc.). These types inherit the characteristics of JavaScript and enhance the robustness of the code through static type checking. Taking the basic type (PrimitiveTypes) as an example, the numeric type can support decimal, binary, hexadecimal, and floating-point numbers. These data types can be used for TypeScrip and JavaScript, and the code written will not report an error in the compilation phase. However, when the code written using these data types is used to generate the native side, since the native side is mainly based on C / C++, it does not support some language data types. If the TypeScrip code is directly used as a unified language, even if it can pass the test of JavaScript and adapt to the needs of the Web side, it cannot adapt to the native side code, and will report an error during compilation and cannot be published. Therefore, the embodiments of the present application modify the data types of the TypeScrip language according to the data types of the native side, such as not using the extensive support of the TypeScrip language data types, but fixing the data types of the TypeScrip language according to the data content of the native side.

[0041] Here, the subset of TypeScript language data types based on TypeScript language data types can be understood in two ways: first, the data types obtained by directly limiting the TypeScript language data types, which are excluded from the "subset of TypeScript language data types" because the TypeScript language data types may not exist in the native language; second, the data content suitable for the native language formed by indirectly limiting the TypeScript language data types based on the modification of the TypeScript language data types.

[0042] As described above, according to different application scenarios, when the 3D graphics application engine is used to develop a 3D graphics application project, the core rendering API in the engine system for 3D graphics application development can include two aspects: one is for the native end, and the native end mainly depends on the system or platform used. Different systems or platforms use different graphic engine interfaces. For example, the Metal engine interface is used in the iOS system of Apple Inc.; Microsoft uses DirectX, Android and LINUX use OpenGLES, Vulkan, etc.; the other direction is for the Web end, and the graphic interface used includes WebGL, WebGPU, etc. As can be seen from the above embodiments, the embodiments of the present application break this difference and provide a single source code system based on a strict subset of TypeScrip. Under this system, although the TypeScrip language is limited to a certain extent, the code written by using the TypeScrip language can be compiled without obstacles through the JavaScript compiler, and the standard JavaScript code is output, so that the Web end 3D application can be generated and published without obstacles, and the 3D application can still play the effect of the JavaScript language. Since the TypeScrip language is limited according to the native end language, it can adapt to the compilation of the native end language, directly convert the TypeScrip code into equivalent C++ code, implement JavaScript with a lightweight runtime, and thus generate native executable files for different operating systems. Based on the single source code system, the embodiments of the present application can meet the needs of the Web end, continue to maintain the advantages of the JavaScript language in the Web end 3D application publishing, maintain the compatibility and portability characteristics of the Web platform, automatically generate WebGPU rendering code and generate resource formats suitable for Web distribution; and can also meet the advantages of the native end publishing on various platforms, support various optimization features of modern browsers.

[0043] In the encoding link, a single source code system is established, whether it is for the development of 3D graphics application of the Web end or the development of 3D graphics application of the native end, the restricted TypeScrip language can be used, the developer does not need to learn the knowledge of different language programming of the Web end and the native end respectively, does not need to master the JavaScript / WebGL technology special for the Web end and the C++ / OpenGL or Vulkan technology special for the native end respectively, and does not need to repeatedly implement the same business logic with different languages, which greatly reduces the learning amount and the development workload of the developer, and effectively improves the development work efficiency. In the publishing link, different from the existing technology which needs different construction tools, packaging methods and distribution channels for different platforms, a unified cross-platform abstraction layer and a unified development tool chain can be constructed on the basis of the technical scheme of the embodiment, so that multiple target platforms can be started and constructed in parallel, the construction efficiency is improved, and the Web version publishing package and the native version publishing package can be generated to realize the cross-platform compatibility guarantee effect. In terms of performance, the Web version of the existing technology is limited by the performance of JavaScript, and the performance of the native version is excellent but the development is complex, the embodiment overcomes the shortcomings of the two aspects, and the development efficiency and the performance of different versions are considered, and the problems of cross-platform 3D application development, publishing and performance are perfectly solved.

[0044] In the foregoing embodiments, the concept of "data type subset" is mentioned. To make the technical solutions of the present application more clear, further explanation is given here. Data types are indispensable for any programming language, but different programming languages have different data types. The absence of a specific data type in a certain language will result in a failed compilation. For example, in C++ language, there are integer type, floating point type, character type, Boolean type, etc., among which the integer type includes short type (short integer), int (basic integer), long (long integer), and long long (extended long integer). Different types are fixed in the number of bytes used to store integers, which shows the feature of C language that data types are strictly fixed. Unlike C language, TypeScript language does not have many built-in data types for declaring variables, only string, number and Boolean types, and these three types are all subtypes of any type. Variables declared by these four types can be set or tested for Null or undefined types, and these methods can also be declared as Void. It is this flexibility that makes TypeScript language, as a superset of JavaScript language, not applicable to C++ language which has better underlying performance. The embodiments of the present application propose the concept of data type subset, which adopts a "bottom-up" strategy, starting from the perspective of the underlying development language (such as C / C++ language) applied to the native side, appropriately limits the flexibility of TypeScript language data types, so as to adapt to the needs of C / C++ language, and forms a data type subset after limiting the TypeScript language data types. Since the data type subset is the intersection of the data types of the native side development language and the web side development language, it can meet the development needs of the native side development language for native side 3D graphics application, and also meet the development needs of the web side development language for web side 3D graphics application.

[0045] Based on the detailed description of the data type subset, the 3D graphics application code written in a single source code system also needs to be compiled and published as a 3D graphics application on the same platform. Since the same source code is used to write the code, but the compilation and publication are usually targeted at different application environments (different operating systems), therefore, after the code is written, the 3D graphics application needs to be compiled and published according to the needs of the specific application scenario. According to the different overall strategies, there are two feasible modes: one is "parallel strategy", that is, each different application scenario independently completes the compilation and publication and other work; the other is "total and partial strategy", that is, by judging the received instructions, it is decided which branch needs to be selected for compilation and publication. The following will be described in detail.

[0046] For the "parallel strategy", when the 3D graphics application code is completed using the subset of data types based on the TypeScript language, the corresponding target of each rule is implemented simultaneously or separately according to the predetermined rules. For example, the first predetermined rule is set to publish a Web-side 3D application, and the second predetermined rule is set to publish a native-side 3D application. When the 3D application code is completed, if it is desired to publish a Web-side 3D graphics application, the first predetermined rule is selected, and the project source code conversion module of the 3D graphics engine system converts the 3D graphics application code of the project source code development module into Web-side development language code according to the first predetermined rule, and then compiles and publishes it. If it is desired to publish a native-side 3D graphics application, the second predetermined rule is selected, and the project source code conversion module of the 3D graphics engine system converts the 3D graphics application code of the project source code development module into native-side language code according to the second predetermined rule, and then compiles and publishes it. Of course, both predetermined rules can be selected at the same time to generate respective 3D graphics applications. This establishes a "one-key" publishing mechanism, that is, a Web version and a native version are generated simultaneously under a single command. The "first" and "second" here are used to mark different rules and do not represent the order of the rules, that is, they can be in order or out of order, and there can be only two rules or multiple rules. For example, for the Web side, there can be different scenarios, such as WebGL (a 3D drawing protocol that combines JavaScript and OpenGL ES), WebGPU (an emerging API that provides access to the graphics and computing capabilities of hardware on the network), and for these two scenarios, there can be respective rules (the first predetermined rule and the second predetermined rule) for compilation and publishing according to the respective rules. For the native side, there are also different application scenarios, such as Windows, MacOS, Linux, Android, and iOS. For these different operating systems, different predetermined rules can be set, and after receiving the corresponding instructions, they are compiled and published simultaneously or independently according to the predetermined rules. Further, for different operating systems, different installation packages can be generated or published: when the operating system is Windows,.exe executable files and installation packages are generated; when the operating system is MacOS,.app application packages and.dmg installation images are generated; when the operating system is Linux, distribution software packages are generated; when the operating system is Android, Android APK installation packages are generated; and when the operating system is iOS, iOS IPA installation packages are generated.

[0047] For the "total score strategy", since the embodiments of the present application provide a unified platform, different paths can be compiled and packaged, and external total instructions are accepted, and then the instructions are analyzed, and then the first predetermined rule, the second predetermined rule, the third predetermined rule, etc. are implemented under the total rule. Under this strategy, multiple command packages can be generated at the same time, and multiple target platforms can be constructed in parallel, which greatly improves the generation efficiency of 3D graphics applications, and the 3D graphics application product can be shortened by 30-50%. It should be noted that whether the first predetermined rule, the second predetermined rule or the total rule, the content of the rule should at least include the selection of converting the Web end and / or native end 3D graphics application project. In addition to the "selection" instruction, the compilation instruction and the release instruction for compiling and releasing the Web end and / or native end 3D graphics application project can also be included according to actual needs, so as to effectively link the complete development process of the 3D graphics application.

[0048] In the above embodiments, although the subject matter is a 3D graphics application development engine system, only the rendering API as the core component of the 3D graphics application development system is emphasized, and other parts of the 3D graphics application development engine system except the rendering API are not mentioned, as well as the relationship between the 3D graphics application development engine system and the 3D graphics application development system. The following will be described in detail with reference to the accompanying drawings. Figure 4 Briefly described, as a complete 3D graphics application development engine system, in addition to the core rendering API, other components of the 3D engine API (of course, whether the other components are part of the "3D graphics engine system" can be constructed according to actual conditions) are also needed. For example, the 3D graphics application development engine system of the embodiments of the present application can also include a cross-platform abstraction layer (module), a development tool module, a cross-platform abstraction module, which can include scene management, animation system, physics system, collision detection system, script engine, network engine, etc., which together constitute the engine part of completing the 3D graphics application development. See Figure 4As shown, in terms of the cross-platform abstraction layer (module), the 3D graphics application engine function layer can include (1) a unified image API abstraction built on a strict subset of TypeScrip: based on the WebGPU standard, shielding the differences between underlying graphics APIs; (2) a unified resource management: a unified loading and management mechanism for resources such as textures, models, and audio; (3) a unified input processing: a unified interface for input devices such as mouse, keyboard, touch, and handle; (4) a unified window management: unified functions such as window creation, event handling, and full-screen switching. In terms of the development tool chain (module), it can include a resource manager for texture, model, and audio resource loading and management, a window manager for window creation, event handling, and full-screen switching functions, and an input processing module; a development tool module including a visual scene editor for supporting 3D application scene visualization and editing, a material editor for node material and shader editing, an animation editor for keyframe animation and skeletal animation editing, and a performance analyzer for real-time performance monitoring and bottleneck analysis.

[0049] Likewise, the 3D graphics application development engine system is a component of the 3D graphics application development system, which can also include a target compilation system, an automated publishing system, a commercial support part, etc. For example, the target compilation system can include a JavaScript target compilation subsystem and a C++ target compilation subsystem, the former of which can automatically generate WebGPU rendering code, support various optimization features of modern browsers, generate resource formats suitable for Web distribution, etc., and the latter of which can utilize the deep optimization capabilities of the C++ compiler, support static linking, generate independent distributable programs, etc. In fact, to some extent, the target compilation system can be considered both as a component of the 3D graphics application development engine system and as a component of the 3D application development system outside the 3D graphics application development engine system.

[0050] The above embodiment is an introduction of the 3D graphics application engine system, which can be used for developing 3D graphics applications. When developing a 3D graphics application, picture resources, sound resources and the like are prepared first, and then a series of operations such as coding, source code conversion, compiling, conversion and even publishing can be performed by using the foregoing 3D graphics application engine system, so as to complete the rendering, compiling, publishing and displaying of the 3D graphics. When developing a 3D graphics application, the 3D graphics application development engine described in the embodiment of the present application is used for development in the following manner: a project source code of the 3D graphics application is written based on a data type subset of a TypeScript language, the data type subset being an intersection of data types of a native end development language and a Web end development language; the 3D application code is converted into the Web end development language code according to a first predetermined rule, and / or the 3D application code is converted into the native end development language code according to a second predetermined rule; and the converted Web end development language code and / or the native end development language code is packaged into the 3D graphics application. The 3D graphics application is developed by using the development engine of the embodiment of the present application, which is efficient, good in effect and capable of meeting market demand.

[0051] The embodiments of the present application can achieve all the purposes of the present application by using the foregoing software, and therefore mainly introduce the software part. Those skilled in the art should understand that the embodiments of the present application can be provided as devices, systems or related computer program products. Therefore, the present application can be implemented in the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, the present application can be implemented in the form of a computer program product implemented on one or more computer usable storage media (including but not limited to disk storage, CD-ROM, optical storage and the like) containing computer usable program codes.

[0052] The present application is described with reference to flowcharts and / or block diagrams according to the methods, devices (systems) and computer program products of the embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of the flows and / or blocks in the flowcharts and / or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device that implements the functions specified in the flowcharts and / or block diagrams. Figure 1 The functions specified in one flow or multiple flows and / or blocks Figure 1 The functions specified in one flow or multiple flows and / or blocks

[0053] These computer program instructions can also be stored in a computer- readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the Figure 1 function specified in the flow or flows and / or blocks Figure 1 of the block or blocks.

[0054] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the Figure 1 function specified in the flow or flows and / or blocks Figure 1 of the block or blocks.

[0055] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.

[0056] The memory can include non-persistent memory and / or volatile memory, such as a random access memory (RAM) including a cache area for the temporary storage of data. The memory can also include non-volatile memory, such as a read only memory (ROM), EPROM, EEPROM, or flash memory. The memory can be another form of computer-readable media.

[0057] Computer-readable media includes permanent and non-permanent, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital versatile disc (DVD), or other optical storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible to a computing device. According to the definition herein, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.

[0058] It is also to be noted that the terms "comprising", "including", and any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises a... " does not, without more constraints, exclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.

[0059] The above description is merely illustrative of the application, and not restrictive. Various modifications and changes can become apparent to those skilled in the art. Incorporating any modification, equivalent substitution, improvement, etc. within the spirit and principle of the application, shall be included in the scope of the claims of the application.

Claims

1. A 3D graphics application development engine system, characterized in that, The system can be used to develop 3D graphics application projects. The system includes a rendering API, which includes a project source code development module and a project source code conversion module based on a subset of TypeScript language data types. The subset of TypeScript language data types is a part of TypeScript language data types determined according to the data types of web-side development languages ​​and native-side development languages. The project source code development module is used to develop 3D graphics application project source code using the subset of TypeScript language data types. The project source code conversion module is used to convert the 3D graphics application project source code developed by the project source code development module into Web-based development language code according to a first predetermined rule, and / or to convert the 3D graphics application source code developed by the project source code development module into native-based development language code according to a second predetermined rule. The TypeScript language data type subset includes data types that are determined by specifying the corresponding data types in the TypeScript language that can achieve the same function based on one or more data types in native development languages.

2. The system according to claim 1, characterized in that, The first predetermined rule includes at least a selection rule for converting to a web-based 3D graphics application project, and the second predetermined rule includes at least a selection rule for converting to a native 3D graphics application project. The project source code conversion module is used to convert the 3D graphics application project source code developed by the project source code development module into web-based development language code according to a first predetermined rule when receiving a project to be converted into a web-based 3D graphics application project; and to convert the 3D graphics application project source code developed by the project source code development module into native-based development language code according to a second predetermined rule when receiving a project to be converted into a native-based 3D graphics application project.

3. The system according to claim 1, characterized in that, The first predetermined rule and the second predetermined rule are two branch rules under the same general rule. The project source code conversion module is used to select the first predetermined rule and / or the second predetermined rule according to the general rule when it receives an instruction that includes at least converting to a web-based 3D graphics application project and / or a native 3D graphics application project. When the first predetermined rule is selected, the 3D graphics application project source code developed by the project source code development module is converted into web-based development language code according to the first predetermined rule. If the first predetermined rule also includes compilation and release instructions, the converted web-based development language code is compiled and released; and / or, When the second predetermined rule is selected, the 3D graphics application project source code of the project source code development module is converted into native client development language code according to the second predetermined rule. When the first predetermined rule also includes a compilation and release instruction, the converted native client development language code is compiled and released.

4. The system according to claim 1, characterized in that, The project source code conversion module is also used to generate WebGPU rendering code from the converted Web-side development language code, generate resource formats suitable for Web-side distribution, and / or generate native executable files for different operating systems from the converted native-side development language code, and generate independent distributable programs.

5. The system according to claim 4, characterized in that, The generation of native executable files for different operating systems specifically includes: When the operating system is Windows, an .exe executable file and an installation package are generated. When the operating system is macOS, generate the .app application package and the .dmg installation image; When the operating system is Linux, generate the distribution's software package; When the operating system is Android, an Android APK installation package is generated; When the operating system is iOS, an iOS IPA installation package is generated.

6. The system according to claim 1, characterized in that, The system also includes a cross-platform abstraction module and a development tool module, wherein: The cross-platform abstraction module includes a resource manager for loading and managing textures, models, and audio resources; a window manager for window creation, event handling, and full-screen switching functions; and an input processing module. The development tool module includes a visual scene editor for supporting the visualization and editing of 3D application scenarios, a material editor for editing node materials and shaders, an animation editor for editing keyframe animations and skeletal animations, and a performance analyzer for real-time performance monitoring and bottleneck analysis.

7. A 3D graphics application, characterized in that, The 3D graphics application is an application developed using the 3D graphics application development engine system described in any one of claims 1 to 6.

8. A method for developing 3D graphics application projects, characterized in that, The method includes: 3D graphics application project source code development based on a subset of TypeScript language data types, wherein the subset of TypeScript language data types is a part of TypeScript language data types determined according to the data types of web-side development languages ​​and native-side development languages; The source code of the 3D graphics application project is converted into web-based development language code according to a first predetermined rule, and / or the source code of the 3D graphics application project is converted into native-based development language code according to a second predetermined rule. 3D graphics application projects were developed based on the converted web-based development language code and / or native-based development language code. The TypeScript language data type subset includes data types that are determined by specifying the corresponding data types in the TypeScript language that can achieve the same function based on one or more data types in native development languages.

Citation Information

Patent Citations

  • Static compiling method and device for TypeScript

    CN117032719A

  • Multi-terminal application development system and method

    CN117369777A