Go to file
Sergey Sharybin 3a370ec6ec Move curve's boundbox and texspace calculation out of modifier stack
There were several issues with how bounding box and texture space
are calculated:

- This was done at the same time as applying modifiers, meaning if
  several objects are sharing the same curve datablock, bounding
  box and texture space will be calculated multiple times.

  Further, allocating bounding box wasn't safe for threading.

- Bounding box and texture space were evaluated after pre-tessellation
  modifiers are applied. This means Curve-level data is actually
  depends on object data, and it's really bad because different
  objects could have different modifiers and this leads to
  conflicts (curve's data depends on object evaluation order)
  and doesn't behave in a predictable way.

  This commit moves bounding box and texture space evaluation from
  modifier stack to own utility functions, just like it's was done
  for meshes.

  This makes curve objects update thread-safe, but gives some
  limitations as well. Namely, with such approach it's not so
  clear how to preserve the same behavior of texture space:
  before this change texture space and bounding box would match
  beveled curve as accurate as possible.

  Old behavior was nice for quick texturing -- in most cases you
  didn't need to modify texture space at all. But texture space
  was depending on render/preview settings which could easily lead
  to situations, when final result would be far different from
  preview one.

  Now we're using CV points coordinates and their radius to approximate
  the bounding box. This doesn't give the same exact texture space,
  but it helps a lot keeping texture space in a nice predictable way.

  We could make approximation smarter in the future, but fir now
  added operator to match texture space to fully tessellated curve
  called "Match Texture Space".

Review link:

  https://codereview.appspot.com/15410043/

Brief description:

  http://wiki.blender.org/index.php/User:Nazg-gul/GSoC-2013/Results#Curve_Texture_Space
2013-12-11 16:32:41 +06:00
build_files Minor fix to generated settings for scons (affected ilmbase/openexr). 2013-12-10 22:28:02 +01:00
doc Game Engine: Option to record static objects animation 2013-12-09 22:28:38 +11:00
extern CMake: report messages as status (else ccmake treats like an error) 2013-12-10 13:18:46 +11:00
intern Cache limiter cleanup and small fixes 2013-12-11 16:32:41 +06:00
release Move curve's boundbox and texspace calculation out of modifier stack 2013-12-11 16:32:41 +06:00
scons@2d6ebcb239 Squashed commit of the following: 2013-11-21 16:51:29 +01:00
source Move curve's boundbox and texspace calculation out of modifier stack 2013-12-11 16:32:41 +06:00
.arcconfig Added the wrong file. Now addin .arcconfig for real. 2013-11-15 20:40:43 +06:00
.gitignore Ignore *.patch and *.diff files which are in the working tree root 2013-11-22 23:28:35 +06:00
.gitmodules Initialize git submodules for addons, locales and scons 2013-11-15 12:19:08 +06:00
CMakeLists.txt Cycles: network render code updated for latest changes and improved 2013-12-07 12:26:58 +01:00
COPYING == docs == 2010-10-13 14:44:22 +00:00
GNUmakefile Convenience Makefile: spaces in the build path would fail still. 2013-11-17 21:16:39 +11:00
SConstruct Scons: as requested by Ideasman, make MACOSX_COMPILER -> C_COMPILER_ID, 2013-12-08 15:35:21 +01:00