cesiumgs / cesium-ion-blender-addon Goto Github PK
View Code? Open in Web Editor NEWBlender add-on for uploading and tiling models with Cesium ion. https://cesium.com
License: Apache License 2.0
Blender add-on for uploading and tiling models with Cesium ion. https://cesium.com
License: Apache License 2.0
Relating to this issue : CesiumGS/cesium-unreal#1271
I believe it would be beneficial to provide Blender/Unreal with equivalent access to 3D tiles, enhancing the toolset available for modeling and animation on the Cesium surface.
Additionally, implementing an option to cache tiles—allowing their fixation or the programming of Level of Detail (LOD) for a specified volume zone via blueprint or geometry node—could prove highly advantageous. The current transitions between LODs are quite noticeable. An alternative to the existing dither transition would be welcome, as it tends to significantly delay transitions, resulting in tiles that appear blurry for an extended period during sequence rendering.
Here is the process for becoming an official blender addon...
Source: https://wiki.blender.org/wiki/Process/Addons
Blender Foundation will accept add-ons from commercial vendors or services (like 3d printing, web publishing, renderfarms) under the following conditions:
Blender Depot Seems to be a place to host un-official blender add-ons. While it is a 3rd party provider it might be in our interest to be available through their add-on.
When running on windows automatic vendor creation does not work.
The command python3 utils.py vendor
outputs...
python3 utils.py vendor
Checking for old third_party...
Installing vendor (Ignore non-exitting errors)...
/usr/lib/python3/dist-packages/pip/commands/install.py:212: UserWarning: Disabling all use of wheels due to the use of --build-options / --global-options / --install-options.
cmdoptions.check_install_build_global(options)
Cleaning up...
Traceback (most recent call last):
File "utils.py", line 149, in
install_third_party(module_dir)
File "utils.py", line 130, in install_third_party
packages_dir = next(Path(tmp_vendor_dir).glob("**/site-packages"))
StopIteration
Currently the project is built for blender 2.8 which uses python 3 instead of version 2. It also means the glTF exporter is not bundled by default. If the demand is high enough or if there is enough residual users of blender 2.79 that could warrant making a 2.79 version.
To do this we would have to backport python 3 code to version 2 using a library like 3to2. Additionally, the gltf exporter would have to be bundled with our project so the user has the library by default. As long as the library for converting from python 3 to python 2 works the bundling would not be too hard.
I think version 2.8 will suffice for but it could be something we decide to approach if the demand is there.
Matt asked me to look into ways to open an upload dialog from the File -> Export menu, without causing a file dialog to show up.
I did a little testing, and I was able to get a mostly-blank Blender "Operator" to run there. By default, most export examples declare a Python class like this:
class ExportSomething(bpy.types.Operator, bpy_extras.io_utils.ExportHelper):
This is Python's multiple inheritance, and including the ExportHelper
as a base class is what mandates the file dialog will show up. But this is not required to install a generic operation into the export menu. For example:
class Export2ion(bpy.types.Operator):
bl_idname = 'export_scene.cesium_ion'
bl_label = 'Upload to Cesium ion'
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
# Do something to show the upload UI...
print("**** Open upload options panel here ****")
return {'FINISHED'}
# end of class Export2ion
def menu_func_export(self, context):
self.layout.operator(Export2ion.bl_idname, text='Cesium ion...')
def register():
bpy.utils.register_class(Export2ion)
bpy.types.TOPBAR_MT_file_export.append(menu_func_export)
def unregister():
bpy.utils.unregister_class(Export2ion)
bpy.types.TOPBAR_MT_file_export.remove(menu_func_export)
This doesn't answer the question of how exactly to show the upload UI to the user. But it allows one to install a menu option in the export list that will invoke arbitrary Python code, without needing to display a file dialog.
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.