2024-10-17 07:55:13 -07:00
2024-10-15 15:00:51 -07:00
2024-10-23 16:36:37 -07:00
2024-10-15 15:00:51 -07:00
2024-08-21 20:48:44 -07:00
2019-08-08 08:52:20 -07:00
2024-08-05 15:33:28 -07:00
2024-01-31 09:09:09 -08:00
2024-10-15 15:00:51 -07:00
2024-09-06 08:16:47 -07:00

meshoptimizer

Mesh optimizer is an efficient mesh optimization library that reduces the storage size of 3D mesh data and improves rendering performance through various techniques. It is mainly used for optimizing 3D models (such as index Optimization, vertex caching optimization, over drawing optimization, vertex acquisition optimization, vertex quantization, shadow indexing), especially when dealing with a large number of polygon 3D models, which can significantly reduce rendering burden and improve running efficiency.

Use Cases of meshoptimizer

Gltf (Graphics Library Transmission Format) is a royalty free specification aimed at improving the efficiency of application transmission and loading of 3D scenes and models. The introduction of meshoptimizer on OpenHarmony is mainly for decompressing the Ext_meshopt_compress extension format in gltf.

Directory Structure

demo        # demo file
extern      # third-party source code
gltf        # gltfpack is a tool that can automatically optimize gltf files, reducing download size and improving loading and rendering speed
js          # this folder contains JavaScript/WebAssembly modules that can be used to access some functions of the meshoptimizer library
src         # C++ source code directory of meshoptimizer containing decompression functions
CMakeLists.txt      # build description file
LICENSE.md      # license statement
README.MD       # software description 

The adaptation of meshoptimizer for OpenHarmony

OpenHarmony only compiles the source code and header files under the src/ directory in the meshoptimizer repository. meshoptimizer is introduced into the thirdparty directory of OpenHarmony and compiled using the method of dependent components in OpenHarmony.

Main Code Download

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

Depend on the modules in use.

deps = ["//third_party/meshoptimizer:meshoptimizer"]

Preprocessing

./build/prebuilts_download.sh

Compilation

./build.sh --product-name rk3568 --ccache

Relevant References

https://github.com/zeux/meshoptimizer

License

This project is subject to the license described in LICENCE.

meshoptimizer

##Usage in OpenHarmony ###Object oriented Developers of system applications and 3D graphics engines. ###Guidance and reference

deps = ["//third_party/meshoptimizer:meshoptimizer"]

Introduce this third-party library.

include "meshoptimizer.h"
meshopt_decodeVertexBuffer();
meshopt_decodeFilterOct();
meshopt_decodeFilterQuat();
meshopt_decodeFilterExp();
meshopt_decodeIndexBuffer();

Introduce the meshoptimizer. h header file and use the corresponding functions. For specific instructions on the functions, please refer to: https://github.com/zeux/meshoptimizer

S
Description
meshoptimizer 是一个高效的网格优化库,旨在通过多种技术减少 3D 网格数据的存储大小和提升渲染性能。它主要用于图形学和游戏开发领域,尤其是处理大量多边形的 3D 模型时,能够显著降低渲染负担,提高运行效率。
Readme 13 MiB
Languages
C++ 78.7%
JavaScript 11%
C 8%
Makefile 1.1%
CMake 0.7%
Other 0.5%