3D graph application development engine system and 3D graph application and development method
By establishing a single source code system through a subset of TypeScript language data types, the high cost and performance differences in cross-platform development of 3D graphics applications are solved, efficient and unified cross-platform development and release are achieved, and development efficiency and performance are improved.
Patent Information
- Application Number
- CN202511284233.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-09
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2045-09-09
AI Technical Summary
Existing 3D graphics application development faces problems such as high cross-platform development costs, large technology stack fragmentation, heavy maintenance burden, complex release process, and significant performance differences. The existing cross-platform development model cannot effectively solve the performance loss problem.
A single source code system is established using a subset of TypeScript language data types. Through the project source code development module and the project source code conversion module, cross-platform conversion of 3D graphics application project source code is achieved, and development language code suitable for the Web and native ends is generated. The cross-platform abstract module and development tool module are used to support unified development.
It reduces the learning and workload of developers, improves development efficiency, achieves a balance between cross-platform compatibility and performance, and shortens product launch time by 30-50%.
Smart Images

Figure CN120803414A_ABST
Abstract
Description
Technical Field
[0001] The present 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 Art
[0002] 3D graphics applications are widely used in various application scenarios (platforms) and have been used in engineering design, film and television special effects, game development, virtual reality, military simulation and other fields. Different application scenarios (platforms) have their own characteristics, such as the current operating system, graphics resource format, and running speed requirements. There are significant differences in the API interface of 3D graphics applications. To accommodate these differences, the same 3D graphics application that implements the same function often needs to be written in different language versions for different application scenarios (platforms) during development, and each version needs to be recoded and maintained independently during maintenance. Figure 1 Developing a 3D game application requires developing not only a JavaScript version suitable for the web platform (web side) but also a high-performance C++ version suitable for multiple operating systems (app side) to promote its use. This leads to high development costs, fragmented technology stacks, heavy maintenance burdens, complex release processes, and significant performance differences in 3D graphics application development, severely hindering the high-quality development of 3D graphics applications.
[0003] In order to solve one or more of the above problems faced by 3D graphics applications, there are workarounds in the prior art that use various methods based on one platform application to adapt to another platform. Figure 2 This diagram illustrates the path for developing web and native applications using different 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-friendly C++ version using a runtime. After developing a C++ version suitable for the app, it is converted back into JavaScript using WASM. However, both converting the web-based 3D graphics application version to the native version and vice versa compromises the performance of the original version, reducing both speed and efficiency. Summary of the Invention
[0004] The embodiments of the present application provide a 3D graphics application development engine system, a 3D graphics application, and a development method for reducing the cost of cross-platform development of 3D graphics applications and improving 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 means of 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-mentioned target, 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 may also be stored in a computer readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.
[0054] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing the instructions executed on the computer or other programmable device for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.
[0055] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.
[0056] Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0057] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can be implemented using any method or technology to store information. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change RAM (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 technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable 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 also 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 a 3D graphics application project. The system includes a rendering API. The rendering API 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 portion of TypeScript language data types determined based on data types of a Web-side development language and a native-side development language. The project source code development module is used to develop 3D graphics application project source code using the TypeScript language data type subset; 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 a Web-end 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 a native-end development language code according to a second predetermined rule.
2. The system according to claim 1, wherein: The TypeScript language data type subset includes data types determined by specializing corresponding data types in the TypeScript language that can implement the same functions based on one or more data types in the native development language.
3. The system according to claim 2, characterized in that The first predetermined rule includes at least a selection rule for converting to a Web-side 3D graphics application project, and the second predetermined rule includes at least a selection rule for converting to a native-side 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 a Web-side development language code according to a first predetermined rule when receiving a conversion to a Web-side 3D graphics application project; and to 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 a second predetermined rule when receiving a conversion to a native-side 3D graphics application project.
4. The system according to claim 2, wherein: 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 configured to select the first predetermined rule and / or the second predetermined rule according to the general rule when receiving an instruction at least including conversion to a Web-side 3D graphics application project and / or a native-side 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 a Web-end development language code according to the first predetermined rule, and when the first predetermined rule further includes a compile and publish instruction, the converted Web-end development language code is compiled and published; 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-end development language code according to the second predetermined rule. When the first predetermined rule also includes compilation and release instructions, the converted native-end development language code is compiled and released.
5. The system according to claim 1, wherein: The project source code conversion module is also used to generate WebGPU rendering code from the converted Web development language code, generate a resource format suitable for Web distribution, and / or generate native executable files for different operating systems from the converted native development language code, and generate an independent distributable program.
6. The system according to claim 5, characterized in that The generation of native executable files for different operating systems specifically includes: When the operating system is Windows, generate an .exe executable file and installation package; When the operating system is MacOS, generate .app application package and .dmg installation image; When the operating system is Linux, generate the distribution package; When the operating system is Android, generate an Android APK installation package; When the operating system is iOS, an iOS IPA installation package is generated.
7. The system according to claim 1, wherein: The system also includes a cross-platform abstraction module and a development tool module, wherein: The cross-platform abstract module includes a resource manager for loading and managing texture, model, and audio resources, a window manager for window creation, event processing, and full-screen switching functions, and an input processing module; The development tool module includes a visual scene editor for supporting the visual construction and editing of 3D application scenes, a material editor for editing node materials and shaders, an animation editor for editing keyframe animation and skeletal animation, and a performance analyzer for real-time performance monitoring and bottleneck analysis.
8. A 3D graphics application, characterized in that: The 3D graphics application is an application developed using the 3D graphics application development engine system according to any one of claims 1 to 7.
9. A 3D graphics application project development method, characterized in that: The method comprises: Develop 3D graphics application project source code based on a subset of TypeScript language data types, where the subset is a portion of the TypeScript language data types determined based on the data types of the web-side development language and the native-side development language. Converting the 3D graphics application project source code into a Web-side development language code according to a first predetermined rule, and / or converting the 3D graphics application project source code into a native-side development language code according to a second predetermined rule; Develop and complete 3D graphics application projects based on the converted web-side development language code and / or native-side development language code.
10. The method according to claim 9, characterized in that The TypeScript language data type subset includes data types determined by specializing corresponding data types in the TypeScript language that can implement the same functions based on one or more data types in the native development language.
Citation Information
Patent Citations
Static compiling method and device for TypeScript
CN117032719A
Multi-terminal application development system and method
CN117369777A
Generating Interfaces From Data and Service Definitions For Developing Applications
US20200272434A1