We have already seen a few cool microStudio demos of pseudo-3D techniques, like a Raycasting demo, a 3D cube, or projects using sprite scaling tricks. However, why should microStudio be limited to only a 2D drawing API? I will introduce a fully working 3D API, which will be derived from BabylonJS. You will be able to import 3D models (FBX, GLTF, OBJ), textures, animations in your project and to leverage accelerated 3D graphics through WebGL. All that with the ease of use of microStudio.
Sounds great! What's the estimated time of arrival?
This is quite a long term plan and I don't think it will land in microStudio before 2022. I have a clear idea of how I will implement this (actually I even have a working experiment, based on Three.js, but I would like to switch to BabylonJS). The thing is I have many other tasks to complete before I can start working on it!
Here is said demo: https://microstudio.io/gilles/fishdemo/plop/ (gamepad required to control the fish). It has all the basics, creating a scene, setting the objects, the camera, triggering animations. The fish is imported as a GLTF model.
Wow, nice! Is the specular light part of the model or actually part of the render?
The specular light is a result of the render. The model is shaded using the PBR shader in THREE.js (currently). The plan is that in the end you can use all the common material shaders and also the post-processing shaders built in BabylonJS. I also want to enable custom shaders (using GLSL).
OoooOOooOO! That sounds great!!! I can't wait :).
But what would happen if I made a working model importer into my raytracer first? I should be able to figure out triangle intersection, so watch out! Evil laugh
Adding this may need to have much more storage for users.
I guess it depends on what you want to model.
Low polygon models can be far smaller than the average image file. Actually, if it is textured the texture images probably use up the most space.
And if it supports voxel style models the data files are even smaller.
Ok, if one plans on high detail models and complete 3D levels ... Yes, then you need space :)
As @TinkerSmith says, it depends on your project. Just with code, you will be able to create primitive shapes like spheres, boxes, planes. You will also have the opportunity to generate meshes procedurally, like terrains etc. Such a 3D project won't require any storage space.
On the other hand, if you import detailed, animated models with high res textures and the like, then yes 20 Mb storage is definitely short! Maybe I will be able increase this limit in the future depending on how the storage is used globally. Also if someone plans to work on a big 3D project with lots of data, the best will certainly be to work locally with the standalone app in the end.
Wow, that seriously sounds amazing! As for the primitives, however, how would you be able to manipulate the objects though, would it be similar to the
screen.fillrect(x,y,width,height,<color>) function but for a 3d object? Eg.
And last off, would you be able to manipulate the render? Like controlling specularity or ambient light?