-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Little, Easy but Cool Features to Add... #9
Comments
Hi Ultran, Many thanks to the awesome proposal, especially with the clear demonstration images. I have the interests to make them happen, but may not be very fast since some of features are easy to add, but some of them may need redesign of the code structure. I will make a plan for v3 first, and track them in Thank you in advance for your help. The plugins can help more people for sure. Again feel free to add more comments and contributions ; ) Regards, |
Update 1: Update 2: Example usage:
|
Amazing job @topskychen ! I tried both of them and they just work fine! Keep it up man... |
Thanks @Bit00009! I have some questions about the features. Feature 3: Feature 4: |
Thanks Ultran. I would add a meta file to output voxel information (i.e., surface, solid etc). And feature 2 bound clipping is supported now. The example commands are as follows.
|
Hi there @topskychen, How are you? Stay safe. |
Thanks for asking. Feature 4 (Voxel Meta Bit Flags) is supported with flag
Also an example to read the meta file is added as |
I tested it today and it's just amazing Chen!! |
Thanks for trying and great to hear that. In terms of feature 3, I do have some idea described here. I will work on it when I have more time. By the way, would you like to recommend any tools to visualize the feature 5, 6 etc? |
Hi Chen! Thanks for your great support! About feature 5 and 6, what about using ImGui and a simple opengl or directx backend? Also if you can do a favor I'll be very thankful, Can you separate data folder to a different branch or some cloud drive? I know it's not much size but I feel it's an extra size I have to download on each commit. Thanks and Stay Safe! |
Agree that we can provide the Thanks for the recommendation. I will take a look at the ImGui library. I have moved other files to Google Drive except the sphere.obj, which should be very small-size. |
Hi @topskychen Any news on the project? |
@topskychen wow dude you're making a very good library my friend!! +1 Star from me |
Thank you ; ) @RossetaGotStoned |
Any updates? |
Hi Dear Qian (@topskychen )
First of all thanks a lot for your great support and great library!
These are a series of suggested features that are simple to implement but very useful and have been used in several powerful voxelizers, Using these capabilities, you can produce interesting meshes...
I made the following proposal for you :
Voxel Size based voxelizer model so we have two options like
![VoxelSize1](https://user-images.githubusercontent.com/65079764/86522342-8b8bd380-be71-11ea-9bfb-164637aa3034.jpg)
![VoxelSize2](https://user-images.githubusercontent.com/65079764/86522358-c1c95300-be71-11ea-8226-b2ed880c956d.jpg)
GRID_SIZE_BASED
andVOXEL_SIZE_BASED
flags also it will be great if you add a Vector3 input like --size=(10 20 15) and if we select VOXEL_SIZE_BASED it will be used as voxel size , size parameter is Vector3 and Flag is a Byte :And with Vector3 Input :
Bound Clipping : in this feature we have our original bounding box and a clipper one with a Vector3 input (parameter is Vector3) :
![BoundClip](https://user-images.githubusercontent.com/65079764/86522375-18cf2800-be72-11ea-8407-c12a01694e4e.jpg)
Tight Fit Mode : Tight fit voxelizing is such that we check whether the center point of each voxel is inside the mesh or outside it, and if it is outside, we remove it. (parameter is Boolean)
![TightFit](https://user-images.githubusercontent.com/65079764/86522525-82503600-be74-11ea-88a4-b8bf0bb9131f.jpg)
Voxel Meta Bit Flags : It's extremely helpful if we know which voxel is solid and which one is surface, It would be great if you can add a flag to each voxel like SURFACE_VOXEL and
![SolidSurfaceFlag](https://user-images.githubusercontent.com/65079764/86522543-dc50fb80-be74-11ea-86b3-5839261d898d.jpg)
SOLID_VOXEL
(parameter is Byte) :Voxel Spacing We take voxels and add a Vector3 space between them (parameter is Vector3) :
![Spacing](https://user-images.githubusercontent.com/65079764/86522614-e7585b80-be75-11ea-95cd-18995e7259a3.jpg)
Voxels Transformation : A very good feature to edit and change voxels transformations using modifiers like 3D Noises , Perlin and stuff. This feature data can be kept as extra voxel meta data, so each voxel can have a pos , rotation and scale.
![VoxelTranformation](https://user-images.githubusercontent.com/65079764/86522648-69488480-be76-11ea-8b16-0b9b9e016ace.jpg)
![VoxelTransformationbyNoise](https://user-images.githubusercontent.com/65079764/86522666-9ac15000-be76-11ea-9781-8b189c22cadc.jpg)
Perlin 3D Noises :
Face Aligning : A very interesting method to align solid and surface voxels on original mesh surface (parameter is Boolean) :
![FaceAlignVoxel](https://user-images.githubusercontent.com/65079764/86522680-eaa01700-be76-11ea-8eb9-f0074fef9f11.jpg)
Row Offset Alternating : A simple but cool method to offset odd rows by a float value relative to voxel size. (parameter is Float) :
![RowOffseting](https://user-images.githubusercontent.com/65079764/86522701-3a7ede00-be77-11ea-9dc4-5c2feb5a56da.jpg)
UV Mapping and Color Picking : In this method voxelizer keeps UV of original base mesh and also pick a color from input texture and store it in voxel meta data like vector VoxelColors or even can be stored in voxel itself :
![UVMapandColorPick](https://user-images.githubusercontent.com/65079764/86522814-7f574480-be78-11ea-8b8f-7a8465fd09c8.jpg)
![UVExample](https://user-images.githubusercontent.com/65079764/86522816-9302ab00-be78-11ea-87b5-dc3b5ebbd5f5.jpg)
Sphere UV before and after voxelization :
I made this images using a commercial voxelizer and All of them are doable and technically possible.
With these features, your voxelizer will be one of the best and can help a lot of people. I have not very knowledge in this field, but I will help you wherever I can and also I can also make it a plugin for 3D software like 3ds Max, Blender or Maya.
And if this features be added, it's going to be hard to use using a command liner I can make a good GUI for it too.
Thanks for reading,
Regards,
Ultran
The text was updated successfully, but these errors were encountered: