项目作者: aiekick

项目描述 :
MagicaVoxel File Writer dependency free cpp class
高级语言: C++
项目地址: git://github.com/aiekick/MagicaVoxel_File_Writer.git
创建时间: 2018-05-29T16:53:55Z
项目社区:https://github.com/aiekick/MagicaVoxel_File_Writer

开源协议:MIT License

下载


MagicaVoxel File Writer

Rust Version available here : MagicaVoxel File Writer for Rust

vox.hm is the file format descriptor for HexaMonkey :

App

the main.cpp file show you how to generate a quick file :

With this simple code

  1. #include "VoxWriter.h"
  2. int main()
  3. {
  4. const int32_t SIZE = 189;
  5. const int32_t OFFSET = SIZE;
  6. const float Z_SCALE = 1.0f;
  7. const int32_t FRAMES = 30;
  8. const float len_ratio = 1.0f / (SIZE * SIZE);
  9. vox::VoxWriter vox;
  10. vox.StartTimeLogging();
  11. float time = 0.0f;
  12. for (int32_t k = 0; k < FRAMES; ++k) {
  13. vox.SetKeyFrame(k);
  14. for (int32_t i = -SIZE; i < SIZE; ++i) {
  15. for (int32_t j = -SIZE; j < SIZE; ++j) {
  16. float len = (i * i + j * j) * len_ratio;
  17. int32_t pz = (int32_t)((std::sin(len * 10.0 + time) * 0.5 + 0.5) * (std::abs(50.0f - 25.0f * len)) * Z_SCALE);
  18. int32_t cube_color = (int32_t)(len * 100.0) % 255 + 1;
  19. vox.AddVoxel(i + OFFSET, j + OFFSET, pz, cube_color); // magicavoxel use the z as up axis
  20. }
  21. }
  22. time += 0.5f;
  23. }
  24. vox.StopTimeLogging();
  25. vox.SaveToFile("output_voxwriter.vox");
  26. vox.PrintStats();
  27. }

you can generate that (previewed in Magicavoxel

main

possible console print ( vox.PrintStats() ) :

  1. ---- Stats ------------------------------
  2. Volume : 377 x 377 x 49
  3. count cubes : 9
  4. count key frames : 30
  5. -----------------------------------------
  6. o--\-> key frame : 0
  7. \-> voxels count : 142884
  8. \-> elapsed time : 0.045 secs
  9. o--\-> key frame : 1
  10. \-> voxels count : 142884
  11. \-> elapsed time : 0.046 secs
  12. o--\-> key frame : 2
  13. \-> voxels count : 142884
  14. \-> elapsed time : 0.046 secs
  15. o--\-> key frame : 3
  16. \-> voxels count : 142884
  17. \-> elapsed time : 0.047 secs
  18. o--\-> key frame : 4
  19. \-> voxels count : 142884
  20. \-> elapsed time : 0.047 secs
  21. o--\-> key frame : 5
  22. \-> voxels count : 142884
  23. \-> elapsed time : 0.048 secs
  24. o--\-> key frame : 6
  25. \-> voxels count : 142884
  26. \-> elapsed time : 0.048 secs
  27. o--\-> key frame : 7
  28. \-> voxels count : 142884
  29. \-> elapsed time : 0.047 secs
  30. o--\-> key frame : 8
  31. \-> voxels count : 142884
  32. \-> elapsed time : 0.048 secs
  33. o--\-> key frame : 9
  34. \-> voxels count : 142884
  35. \-> elapsed time : 0.048 secs
  36. o--\-> key frame : 10
  37. \-> voxels count : 142884
  38. \-> elapsed time : 0.048 secs
  39. o--\-> key frame : 11
  40. \-> voxels count : 142884
  41. \-> elapsed time : 0.047 secs
  42. o--\-> key frame : 12
  43. \-> voxels count : 142884
  44. \-> elapsed time : 0.047 secs
  45. o--\-> key frame : 13
  46. \-> voxels count : 142884
  47. \-> elapsed time : 0.049 secs
  48. o--\-> key frame : 14
  49. \-> voxels count : 142884
  50. \-> elapsed time : 0.049 secs
  51. o--\-> key frame : 15
  52. \-> voxels count : 142884
  53. \-> elapsed time : 0.049 secs
  54. o--\-> key frame : 16
  55. \-> voxels count : 142884
  56. \-> elapsed time : 0.05 secs
  57. o--\-> key frame : 17
  58. \-> voxels count : 142884
  59. \-> elapsed time : 0.048 secs
  60. o--\-> key frame : 18
  61. \-> voxels count : 142884
  62. \-> elapsed time : 0.049 secs
  63. o--\-> key frame : 19
  64. \-> voxels count : 142884
  65. \-> elapsed time : 0.049 secs
  66. o--\-> key frame : 20
  67. \-> voxels count : 142884
  68. \-> elapsed time : 0.049 secs
  69. o--\-> key frame : 21
  70. \-> voxels count : 142884
  71. \-> elapsed time : 0.05 secs
  72. o--\-> key frame : 22
  73. \-> voxels count : 142884
  74. \-> elapsed time : 0.049 secs
  75. o--\-> key frame : 23
  76. \-> voxels count : 142884
  77. \-> elapsed time : 0.05 secs
  78. o--\-> key frame : 24
  79. \-> voxels count : 142884
  80. \-> elapsed time : 0.049 secs
  81. o--\-> key frame : 25
  82. \-> voxels count : 142884
  83. \-> elapsed time : 0.05 secs
  84. o--\-> key frame : 26
  85. \-> voxels count : 142884
  86. \-> elapsed time : 0.05 secs
  87. o--\-> key frame : 27
  88. \-> voxels count : 142884
  89. \-> elapsed time : 0.051 secs
  90. o--\-> key frame : 28
  91. \-> voxels count : 142884
  92. \-> elapsed time : 0.051 secs
  93. o--\-> key frame : 29
  94. \-> voxels count : 142884
  95. \-> elapsed time : 0.051 secs
  96. -----------------------------------------
  97. voxels total : 4286520
  98. total elapsed time : 1.472 secs
  99. -----------------------------------------