Scene3D is a true 3D engine aix on the AppInventor&Thunkable platform. Its main program has a complete program framework, and all other functions are implemented through the plugin system.
This is the basic structure of the main program：
When using for the first time, you need to register Scene3D aix to a horizontallayout:
And load a list of plugins you want:
So there will be a lot of aix.
Soon, I will post the Scene3D main program to github so that more developers can improve Scene3D and develop their own plugins.
In the Scene3D plugin I developed, there are some plugins that are necessary (you can’t do anything without them), I packaged this plugin into the Core package.
If we import it, we will see the image below:
BasicGeometry is a plugin that creates basic geometry, which you can use to create cubes, cuboids, cylinders, cones, circles, planes, rings, tubes, and more, based on specified parameters.
Light is a plugin that creates and manages all the lights in your Scene. You can create your light and modify its light intensity (r, g, b), light source position and other parameters. Of course, this plugin is just one of the operating point lights. Tools, for the modification of ambient light, you should use the building blocks in WorldHandler to modify.
This is one of the most important Plugins in Scene3D. Without it, almost everything can’t be done, so it’s in the Core package. It has the ability to control all the Object3D objects you create. The building blocks are almost the most plugin of all plugins. Please use “set Object3D to [your object3D]” before using, and then you can call all Object3D. Function.
Texture is a texture plugin that you can use to create your texture through images, colors.
TextureManager is a Texture container, all textures must be added and named, then you can set the Object3DHandler’s Texture property to give the Object3D texture, and the TextureManager is valid in all Screens, and still exists in the companion update. , so when you add Texture, it is best to first determine if the TextureManager already contains Texture.
The math vector tool is also the data type of all coordinates and vectors of Scene3D.
WorldHandler is the world controller. Every Object3D you create will be added to the world through this plugin (this is the most commonly used function). Of course, it has many functions, such as setting the ambient light intensity and getting all the Object3D added to World. .
And there are a lot of Plugins:
If we want to develop first-person games, AR and other 3D programs that need to change the perspective, you may need to have it.
If you want to configure something
This is probably one of the most important Plugins, it allows you to write your own GLSL for real 3D program development.But it is still testing.
It allows you to add shadows through the Shader.
This is another very important plugin, which implements the transformation of 3D and 2D coordinates. Scene3D allows 3D views to be merged with 2D GUI, so you can control your 3D scenes through events in Canvas.
This is a 3D model loader and should be a very important plugin that allows you to load 3D files like OBJ, ASC, 3DS, MD2, etc., and allows you to add materials via Texture and TextureManager.
Output debugging information.
Scene3D main program download：
cn.zzq.Scene3D.Main.aix (631.2 KB)
If you are interested in the Scene3D project, want to improve the Scene3D framework, or want to develop your own plugin, you can View Source.
In a few days I will develop an AR plugin on Scene3D and plan to open source for free.
A good news now that the Core package is also available for free download, you can use the Primitives plugin to create some basic geometry.
cn.zzq.Scene3D.Core.aix (78.3 KB)
The fps effect in the video is an OBJ car model opened with the Loader plugin and an MD2 keyframe model. The Camera plugin is also used to control camera motion and change the angle of view. In addition, the Cube with UV coordinates created by the ExtendPrimitives plugin.