利用者:SaphireS/gsoc2016/notes
Notes
Papers/Articles - Bin Packing
We're looking for an algorithm for 2D nested bin packing of irregular shapes. Approaches to investigate include simulated annealing, genetic algorithms and lots of heuristics.
- http://www.dei.unipd.it/~fisch/ricop/tesi/tesi_dottorato_Lodi_1999.pdf Overview of bin packing algorithms, unfortunately box packing only. Still useful since it lists nearly all common approaches to bin packing.
- http://www.ai-junkie.com/ga/intro/gat1.html Overview of genetic algorithms
- http://gamedev.stackexchange.com/questions/2829/texture-packing-algorithm Good answers leading to further ressources, although pretty box-packing focused again.
- https://github.com/Jack000/SVGnest Nested packing for irregular 2d shapes, (SVG based software, searches iteratively for better solutions) !
- https://github.com/mses-bly/2D-Bin-Packing Java library for packing of complex irregular 2D shapes
- http://cimar.mae.ufl.edu/CIMAR/pages/thesis/Pasha_A_CISE.pdf GEOMETRIC BIN PACKING ALGORITHM FOR ARBITRARY SHAPES !
- https://www.researchgate.net/publication/222533158_A_packing_algorithm_for_particles_of_arbitrary_shapes A packing algorithm for particles of arbitrary shapes
- https://www.inf.utfsm.cl/~mcriff/EA/eva-space-planning/part1.pdf Two-dimensional Packing utilising Evolutionary Algorithms and other Meta-Heuristic Methods !
- http://www.orsj.or.jp/~archive/pdf/e_mag/Vol.45_02_145.pdf A SCANLINE-BASED ALGORITHM FOR THE 2D FREE-FORM BIN PACKING PROBLEM !
- http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1678-58782008000300005 Rotational placement of irregular polygons over containers with fixed dimensions using simulated annealing and no-fit polygons !
- http://www.cs.stir.ac.uk/~goc/papers/EffectiveHueristic2DAOR2013.pdf An effective heuristic for the two-dimensional irregular bin packing problem
- http://www.cs.jhu.edu/~misha/Fall09/Levy02.pdf Least Squares Conformal Maps for Automatic Texture Atlas Generation (Check chapter 4: Packing)
- Also worth to take a look at 1bit bitmap based packing algorithms since with UVs you're dealing with pixel-based data most of the time anyway.
- https://patentscope.wipo.int/search/en/detail.jsf?docId=WO2008107859 Compute convex/concave hull from set of points
Coding Style
https://wiki.blender.org/index.php/Dev:Doc/Code_Style
Blender Developer Tools repository: https://developer.blender.org/diffusion/BDT/
Wiki page: https://wiki.blender.org/index.php/Dev:Doc/Tools/Blender_Tools_Repo
Python coding style checker, IRC snippet:
17:12:46 - howardt: there's a python program that checks if you followed the rules. not sure if it is mentioned on that page. 17:13:15 - howardt: in source/tools, run something like this: 17:13:27 - howardt: python3 tools/blender-dev-tools/check_source/check_style_c.py blender/editors/uvedit 17:13:56 - howardt: i'm not sure if the blender-dev-tools/check_source is in the main blender tree or is a separate git checkout 17:14:22 - howardt: that command checks all the files in the directory named as the last parameter 17:18:17 - howardt: i think there's a python package you may have to install on your computer in order to get that script to work 17:19:41 - howardt: yeah, it is called pygments (a parser)
General info
https://wiki.blender.org/index.php/Dev:Doc/New_Committer_Info https://wiki.blender.org/index.php/Dev:Doc/Tools/Git#How_to_push_changes
UV code tasks (outdated but still useful information in there): https://wiki.blender.org/index.php/Dev:Source/Textures/UV/Unwrapping
Faster Builds
To get Blender to build faster (especially faster incremental rebuilds) there is a make lite make target which can be used. This disables installing a lot of dependencies and also build Blender without physics & sims or Cycles rendering, so be aware of that if you intend to work in these areas!
It is mentioned in brief here: https://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake#Automatic_CMake_Setup
11:59:32 - SaphireS: I see there's a "lite" make target, is that recommended for faster builds? (I'm only working in uvedit area) 12:02:38 - ideasman42: SaphireS, yes, you can use for a lot of development 12:02:57 - ideasman42: OTOH. you can just disable options for your existing build too 12:03:51 - ideasman42: if you already have a dev env setup, disable all WITH_*, except for WITH_PYTHON 12:04:09 - ideasman42: WITH_SYSTEM_* you can leave on too