recp / assetkit Goto Github PK
View Code? Open in Web Editor NEW🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also known as (AssetIO)
License: Apache License 2.0
🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also known as (AssetIO)
License: Apache License 2.0
AssetKit must support Android JNI / NDK. Currently I couldn't build AssetKit for Android because of I couldn't build libxml2 for Android.
Dropping some dependencies is an option to make it more build friendly, especially for Android.
The page build failed with the following error:
The submodule registered for
./lib/libxml2
could not be cloned. Make sure it's using https:// and that it's a public repo. For more information, see https://help.github.com/articles/page-build-failed-invalid-submodule.For information on troubleshooting Jekyll see:
https://help.github.com/articles/troubleshooting-jekyll-builds
If you have any questions you can contact us by replying to this email.
NOTE: libxml2 submodule reference link starts with git:// not https://, also GitBook maybe used instead of Jekyll, not sure!
Lines 145 to 146 in 35910c2
Should be mesh_edit_buff.c and mesh_edit_mesh_buff.c after this refactor commit.
As default behavior, AssetKit tries convert document coordinate system to default coordinate system which is configurable option AK_OPT_COORD
. But the problem is that viewer may not want involve to any coord-sys specific operation.
Making this step optional will improve loading performance
Default is Y_UP but with an option like ak_opt_set(AK_OPT_USE_DOC_COORD, true);
loaded document's coord sys can be considered as default coord-sys e.g. if imported document is Z_UP default will be Z_UP and loader will skip converting coord-sys (geometries, transforms, cameras, lights...)
AK_OPT_USE_DOC_COORD
should not override AK_OPT_COORD
option
If mesh doesn't contain normals then they must be generated if this option is not disabled.
This is optional for users. Default behavior is generate normals if needed.
Currently I'm duplicating positions for different input values for same position. For instance consider a CUBE; cube has 8 unique positions, and 24 normals. So we have single INDEX/ELEMENT ARRAY in GL.
Assume that COLLADA gives two different index for describe POSITION and NORMAL indices e.g.:
1 0 2 0 3 0 1 1 4 1 2 1 ...
During parsing I'm converting this indices (<p>) to: ( by duplicating positions )
1 2 3 4 5 6 ...
In the end, I'm making 8 positions to 24 then send GPU,
Maybe there are better way to do this?
Please provide new usage example for reading meshes or update the wiki tutorial.
I couldn't make the library work.
In the current design, we store joints and joint weights in skin object. But these data could be stored in mesh instead of skin like glTF design. In this way we could access joints and weights more easily. Render engines could load joints/weights more easily...
It seems there is a bug about parsing skin or maybe controller, check ak_dae_skin
See: https://mail.gnome.org/archives/desktop-devel-list/2018-August/msg00010.html ("git.gnome.org being discontinued: Thursday 23th of August")
It seems like include/ak/*.h
are directly copied to /usr/include
.
Currently AssetKit uses stb_image to load images but maybe creating a separate library for images would be better and give more control for loading images.
I am running Garuda Linux
I git clone the repository run cmake/automake as in the tutorial and i get compile errors after I run make.
Consolidate compiler generated dependencies of target ds
[ 0%] Building C object deps/ds/CMakeFiles/ds.dir/src/util.c.o
/home/snake/Desktop/AssetKit/deps/ds/src/util.c: In function ‘ds_print_i64’:
/home/snake/Desktop/AssetKit/deps/ds/src/util.c:122:16: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘int64_t’ {aka ‘long int’} [-Werror=format=]
122 | printf("\t%llu\n", *(int64_t *)key);
| ~~~^ ~~~~~~~~~~~~~~~
| | |
| | int64_t {aka long int}
| long long unsigned int
| %lu
/home/snake/Desktop/AssetKit/deps/ds/src/util.c: In function ‘ds_print_ui64’:
/home/snake/Desktop/AssetKit/deps/ds/src/util.c:128:16: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Werror=format=]
128 | printf("\t%llu\n", *(uint64_t *)key);
| ~~~^ ~~~~~~~~~~~~~~~~
| | |
| | uint64_t {aka long unsigned int}
| long long unsigned int
| %lu
cc1: all warnings being treated as errors
make[2]: *** [deps/ds/CMakeFiles/ds.dir/build.make:104: deps/ds/CMakeFiles/ds.dir/src/util.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:672: deps/ds/CMakeFiles/ds.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
If I try to hand fix these errors, a bunch of errors pop up, not just warning, but errors like AK_INLINE, AkFloat3 etc.
Type punned pointers used some places especially for flexible array members, maybe strict-aliasing must be disabled completely or just for for some files.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.