Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. Assimp Regression Test Suite
  2. ============================
  3. 1) How does it work?
  4. ---------------------------------------------------------------------------------
  5. run.py checks all model in the <root>/test/models folder and compares the result
  6. against a regression database provided by us (db.zip). If the test passes
  7. successfully, Assimp definitely WORKS perfectly on your system. A few failures
  8. are totally fine as well (see sections 7+). You need to worry if a huge
  9. majority of all files in a particular format or post-processing configuration
  10. fails - this might be a sign of a recent regression in assimp's codebase.
  11. 2) What do I need?
  12. ---------------------------------------------------------------------------------
  13. - you need Python installed - 3.x !!
  14. - you need to build tools/assimp_cmd as described in the INSTALL file (
  15. make && make install on unixes,release-dll target with msvc).
  16. 3) How to add more test files?
  17. ---------------------------------------------------------------------------------
  18. Use the following procedure:
  19. - verify the correctness of your assimp build - run the regression suite.
  20. DO NOT continue if one or more tests fail.
  21. - add your additional test files to <root>/test/models/<fileformat>, where
  22. <fileformat> is the file type (typically the file extension)
  23. - rebuild the regression database using gen_db.py
  24. - run the regression suite again - all tests should pass, including
  25. those for the new files.
  26. - contributors: commit the db.zip plus your additional test files to
  27. the SVN repository.
  28. 4) I made a change/fix/.. to a loader, how to update the database?
  29. ---------------------------------------------------------------------------------
  30. - rebuild the regression database using gen_db.py
  31. - run the suite - all tests should pass now. If they do not, don't continue
  32. - contributors: commit the db.zip to the SVN repository
  33. 5) How to add my whole model repository to the suite?
  34. ---------------------------------------------------------------------------------
  35. Edit the reg_settings.py file and add the path to your repository to
  36. <<model_directories>>. Then, rebuild the suite.
  37. 6) So what is actually verified?
  38. ---------------------------------------------------------------------------------
  39. The regression database includes mini dumps of the aiScene data structure -
  40. the scene hierarchy plus the sizes of all data arrays MUST match. Floating-point
  41. data buffers, such as vertex positions, are handled less strictly: min,max and
  42. average values are stored with lower precision. This takes hardware- or
  43. compiler-specific differences in floating-point computations into account.
  44. Generally, almost all significant regressions will be detected while the
  45. number of false positives is relatively low.
  46. 7) The test suite fails, what do do?
  47. ---------------------------------------------------------------------------------
  48. Get back to ../results and check out regression_suite_failures.txt
  49. It contains a list of all files which failed the test ... they're copied to
  50. ../results/tmp. Both an EXPECTED and an ACTUAL file is produced per test.
  51. The output of `assimp cmpdump` is written to regressions_suite_output.txt.
  52. To quickly find all all reports pertaining to tests which failed, I'd
  53. recommend grepping for 'but' because its a constituent of all error messages
  54. produced by assimp_cmd :) Error reports contain detailed information
  55. regarding the point of failure inside the data structure, the values of
  56. the two corresponding fields that were found to be different from EXPECTED
  57. and ACTUAL, respectively, ... this should offer you enough information to start
  58. debugging.
  59. 8) fp:fast vs fp:precise fails the test suite (same for gcc equivalents)
  60. ---------------------------------------------------------------------------------
  61. As mentioned above, floating-point inaccuracies between differently optimized
  62. builds are not considered regressions and all float comparisons done by the test
  63. suite involve an epsilon. Changing floating-point optimizations can, however,
  64. lead to *real* changes in the output data structure, such as different number
  65. of vertices or faces, ... this violates one of our primary targets, that is
  66. produce reliable and portable output. We're working hard on removing these
  67. issues, but at the moment you have to live with few of them.
  68. Currently, the regression database is build on Windows using MSVC8 with
  69. fp:precise. This leads to a small number of failures with fp:fast and
  70. virtally every build with gcc. Be patient, it will be fixed.