[Bf-blender-cvs] CVS commit: blender/intern/elbeem SConscript blender/intern/elbeem/extern LBM_fluidsim.h blender/intern/elbeem/intern ntl_lighting.cpp ntl_lighting.h attributes.cpp attributes.h cfglexer.cpp cfgparser.cpp cfgparser.h elbeem.cpp elbeem.h isosurface.cpp ...

Nils Thuerey nils at thuerey.de
Mon Feb 27 12:45:43 CET 2006


n_t (Nils Thuerey) 2006/02/27 12:45:43 CET

  Modified files:
    blender/intern/elbeem SConscript 
    blender/intern/elbeem/extern LBM_fluidsim.h 
    blender/intern/elbeem/intern attributes.cpp attributes.h 
                                 cfglexer.cpp cfgparser.cpp 
                                 cfgparser.h elbeem.cpp elbeem.h 
                                 isosurface.cpp isosurface.h 
                                 ntl_blenderdumper.cpp 
                                 ntl_bsptree.cpp ntl_bsptree.h 
                                 ntl_geometryclass.h 
                                 ntl_geometrymodel.cpp 
                                 ntl_geometryobject.cpp 
                                 ntl_geometryobject.h 
                                 ntl_geometryshader.h 
                                 ntl_matrices.h ntl_ray.cpp 
                                 ntl_ray.h ntl_vector3dim.h 
                                 ntl_world.cpp ntl_world.h 
                                 parametrizer.cpp parametrizer.h 
                                 particletracer.cpp 
                                 particletracer.h 
                                 simulation_object.cpp 
                                 simulation_object.h 
                                 solver_class.h solver_init.cpp 
                                 solver_interface.cpp 
                                 solver_interface.h 
                                 solver_main.cpp solver_relax.h 
                                 solver_util.cpp utilities.cpp 
                                 utilities.h 
    blender/source/blender/blenkernel/intern DerivedMesh.c 
                                             depsgraph.c effect.c 
                                             ipo.c 
    blender/source/blender/blenloader/intern readfile.c 
    blender/source/blender/include BSE_editipo.h butspace.h 
    blender/source/blender/makesdna DNA_ID.h DNA_ipo_types.h 
                                    DNA_object_fluidsim.h 
    blender/source/blender/render/intern/source convertblender.c 
    blender/source/blender/src buttons_object.c drawobject.c 
                               editipo.c editipo_lib.c 
                               editipo_mods.c fluidsim.c 
                               header_ipo.c 
  Added files:
    blender/intern/elbeem/intern ntl_lighting.cpp ntl_lighting.h 
  Removed files:
    blender/intern/elbeem/intern blendercall.cpp blenderdummy.cpp 
                                 globals.h ntl_lightobject.cpp 
                                 ntl_lightobject.h ntl_material.h 
                                 ntl_renderglobals.h 
                                 ntl_rndstream.h ntl_scene.cpp 
                                 ntl_scene.h ntl_triangle.h 
                                 solver_dimenions.h 
  
  Log:
  Sorry for the big commit, but I've been fixing many of these
  issues in parallel... So this commit contains: an update of
  the solver (e.g. moving objects), integration of blender IPOs,
  improved rendering (motion blur, smoothed normals) and a first particle
  test. In more detail:
  
  Solver update:
  - Moving objects using a relatively simple model, and not yet fully optimized - ok
    for box falling into water, water in a moving glass might cause trouble. Simulation
    times are influenced by overall no. of triangles of the mesh, scaling meshes up a lot
    might also cause slowdowns.
  - Additional obstacle settings: noslip (as before), free slip (move along wall freely)
    and part slip (mix of both).
  - Obstacle settings also added for domain boundaries now, the six walls of the domain are
    obstacles after all as well
  - Got rid of templates, should make compiling for e.g. macs more convenient,
    for linux there's not much difference. Finally got rid of parser (and some other code
    parts), the simulation now uses the internal API to transfer data.
  - Some unnecessary file were removed, the GUI now needs 3 settings buttons...
    This should still be changed (maybe by adding a new panel for domain objects).
  
  IPOs:
  - Animated params: viscosity, time and gravity for domains. In contrast
    to normal time IPO for Blender objects, the fluidsim one scales the time
    step size - so a constant 1 has no effect, values towards 0 slow it down,
    larger ones speed the simulation up (-> longer time steps, more compuations).
    The viscosity IPO is also only a factor for the selected viscosity (again, 1=no effect).
  - For objects that are enabled for fluidsim, a new IPO type shows up. Inflow
    objects can use the velocity channels to animate the inflow. Obstacles, in/outflow
    objects can be switched on (Active IPO>0) and off (<0) during the simulation.
  - Movement, rotation and scaling of those 3 types is exported from the normal
    Blender channels (Loc,dLoc,etc.).
  
  Particles:
  - This is still experimental, so it might be deactivated for a
    release... It should at some point be used to model smaller splashes,
    depending on the the realworld size and the particle generation
    settings particles are generated during simulation (stored in _particles_X.gz
    files).
  - These are loaded by enabling the particle field for an arbitrary object,
    which should be given a halo material. For each frame, similar to the mesh
    loading, the particle system them loads the simulated particle positions.
  - For rendering, I "abused" the part->rt field - I couldnt find any use
    for it in the code and it seems to work fine. The fluidsim particles
    store their size there.
  
  Rendering:
  - The fluidims particles use scaled sizes and alpha values to give a more varied
    appearance. In convertblender.c fluidsim particle systems use the p->rt field
    to scale up the size and down the alpha of "smaller particles". Setting the
    influence fields in the fluidims settings to 0 gives equally sized particles
    with same alpha everywhere. Higher values cause larger differences.
  - Smoothed normals: for unmodified fluid meshes (e.g. no subdivision) the normals
    computed by the solver are used. This is basically done by switching off the
    normal recalculation in convertblender.c (the function calc_fluidsimnormals
    handles other mesh inits instead of calc_vertexnormals).
    This could also be used to e.g. modify mesh normals in a modifier...
  - Another change is that fluidsim meshes load the velocities computed
    during the simulation for image based motion blur. This is inited in
    load_fluidsimspeedvectors for the vector pass (they're loaded during the
    normal load in DerivedMesh readBobjgz). Generation and loading can be switched
    off in the settings. Vector pass currently loads the fluidism meshes 3 times,
    so this should still be optimized.
  
  Examples:
  - smoothed normals versus normals from subdividing once:
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_1smoothnorms.png
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_2subdivnorms.png
  - fluidsim particles, size/alpha influence 0:
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_3particlesnorm.png
    size influence 1:
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_4particlessize.png
    size & alpha influence 1:
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_5particlesalpha.png
  - the standard drop with motion blur and particles:
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/elbeemupdate_t2new.mpg
    (here's how it looks without
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/elbeemupdate_t1old.mpg)
  - another inflow animation (moving, switched on/off) with a moving obstacle
    (and strong mblur :)
    http://www10.informatik.uni-erlangen.de/~sinithue/temp/elbeemupdate_t3ipos.mpg
  
  Things still to fix:
  - rotating & scaling domains causes wrong speed vectors
  - get rid of SDL code for threading, use pthreads as well?
  - update wiki documentation
  - cool effects for rendering would be photon maps for caustics,
    and motion blur for particles :)
  
  Revision  Changes    Path
  1.15      +1 -13     blender/intern/elbeem/SConscript
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/SConscript.diff?r1=1.14&r2=1.15&cvsroot=bf-blender>
  1.4       +3 -3      blender/intern/elbeem/extern/LBM_fluidsim.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/extern/LBM_fluidsim.h.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.4       +174 -16   blender/intern/elbeem/intern/attributes.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/attributes.cpp.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.4       +43 -8     blender/intern/elbeem/intern/attributes.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/attributes.h.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.10      +348 -345  blender/intern/elbeem/intern/cfglexer.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/cfglexer.cpp.diff?r1=1.9&r2=1.10&cvsroot=bf-blender>
  1.8       +118 -116  blender/intern/elbeem/intern/cfgparser.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/cfgparser.cpp.diff?r1=1.7&r2=1.8&cvsroot=bf-blender>
  1.5       +1 -1      blender/intern/elbeem/intern/cfgparser.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/cfgparser.h.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.5       +211 -12   blender/intern/elbeem/intern/elbeem.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/elbeem.cpp.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.2       +87 -20    blender/intern/elbeem/intern/elbeem.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/elbeem.h.diff?r1=1.1&r2=1.2&cvsroot=bf-blender>
  1.8       +122 -355  blender/intern/elbeem/intern/isosurface.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/isosurface.cpp.diff?r1=1.7&r2=1.8&cvsroot=bf-blender>
  1.5       +23 -13    blender/intern/elbeem/intern/isosurface.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/isosurface.h.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.5       +83 -44    blender/intern/elbeem/intern/ntl_blenderdumper.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_blenderdumper.cpp.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.6       +19 -3     blender/intern/elbeem/intern/ntl_bsptree.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_bsptree.cpp.diff?r1=1.5&r2=1.6&cvsroot=bf-blender>
  1.4       +7 -5      blender/intern/elbeem/intern/ntl_bsptree.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_bsptree.h.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.2       +8 -0      blender/intern/elbeem/intern/ntl_geometryclass.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_geometryclass.h.diff?r1=1.1&r2=1.2&cvsroot=bf-blender>
  1.4       +75 -71    blender/intern/elbeem/intern/ntl_geometrymodel.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_geometrymodel.cpp.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.5       +451 -13   blender/intern/elbeem/intern/ntl_geometryobject.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_geometryobject.cpp.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.4       +87 -13    blender/intern/elbeem/intern/ntl_geometryobject.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_geometryobject.h.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.4       +3 -0      blender/intern/elbeem/intern/ntl_geometryshader.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_geometryshader.h.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.2       +49 -6     blender/intern/elbeem/intern/ntl_matrices.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_matrices.h.diff?r1=1.1&r2=1.2&cvsroot=bf-blender>
  1.5       +254 -10   blender/intern/elbeem/intern/ntl_ray.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_ray.cpp.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.3       +279 -6    blender/intern/elbeem/intern/ntl_ray.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_ray.h.diff?r1=1.2&r2=1.3&cvsroot=bf-blender>
  1.10      +1 -0      blender/intern/elbeem/intern/ntl_vector3dim.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_vector3dim.h.diff?r1=1.9&r2=1.10&cvsroot=bf-blender>
  1.4       +148 -139  blender/intern/elbeem/intern/ntl_world.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_world.cpp.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.3       +280 -3    blender/intern/elbeem/intern/ntl_world.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/ntl_world.h.diff?r1=1.2&r2=1.3&cvsroot=bf-blender>
  1.6       +174 -160  blender/intern/elbeem/intern/parametrizer.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/parametrizer.cpp.diff?r1=1.5&r2=1.6&cvsroot=bf-blender>
  1.4       +36 -75    blender/intern/elbeem/intern/parametrizer.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/parametrizer.h.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.4       +184 -72   blender/intern/elbeem/intern/particletracer.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/particletracer.cpp.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.3       +85 -62    blender/intern/elbeem/intern/particletracer.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/particletracer.h.diff?r1=1.2&r2=1.3&cvsroot=bf-blender>
  1.5       +90 -52    blender/intern/elbeem/intern/simulation_object.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/simulation_object.cpp.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.5       +19 -21    blender/intern/elbeem/intern/simulation_object.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/simulation_object.h.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.5       +293 -77   blender/intern/elbeem/intern/solver_class.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_class.h.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.6       +1035 -423 blender/intern/elbeem/intern/solver_init.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_init.cpp.diff?r1=1.5&r2=1.6&cvsroot=bf-blender>
  1.4       +57 -300   blender/intern/elbeem/intern/solver_interface.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_interface.cpp.diff?r1=1.3&r2=1.4&cvsroot=bf-blender>
  1.3       +110 -436  blender/intern/elbeem/intern/solver_interface.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_interface.h.diff?r1=1.2&r2=1.3&cvsroot=bf-blender>
  1.6       +518 -418  blender/intern/elbeem/intern/solver_main.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_main.cpp.diff?r1=1.5&r2=1.6&cvsroot=bf-blender>
  1.5       +299 -158  blender/intern/elbeem/intern/solver_relax.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_relax.h.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.5       +710 -307  blender/intern/elbeem/intern/solver_util.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/solver_util.cpp.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.7       +13 -5     blender/intern/elbeem/intern/utilities.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/utilities.cpp.diff?r1=1.6&r2=1.7&cvsroot=bf-blender>
  1.6       +3 -3      blender/intern/elbeem/intern/utilities.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/intern/elbeem/intern/utilities.h.diff?r1=1.5&r2=1.6&cvsroot=bf-blender>
  1.109     +199 -22   blender/source/blender/blenkernel/intern/DerivedMesh.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/blenkernel/intern/DerivedMesh.c.diff?r1=1.108&r2=1.109&cvsroot=bf-blender>
  1.41      +3 -3      blender/source/blender/blenkernel/intern/depsgraph.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/blenkernel/intern/depsgraph.c.diff?r1=1.40&r2=1.41&cvsroot=bf-blender>
  1.87      +105 -1    blender/source/blender/blenkernel/intern/effect.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/blenkernel/intern/effect.c.diff?r1=1.86&r2=1.87&cvsroot=bf-blender>
  1.32      +8 -1      blender/source/blender/blenkernel/intern/ipo.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/blenkernel/intern/ipo.c.diff?r1=1.31&r2=1.32&cvsroot=bf-blender>
  1.239     +5 -1      blender/source/blender/blenloader/intern/readfile.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/blenloader/intern/readfile.c.diff?r1=1.238&r2=1.239&cvsroot=bf-blender>
  1.23      +2 -1      blender/source/blender/include/BSE_editipo.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/include/BSE_editipo.h.diff?r1=1.22&r2=1.23&cvsroot=bf-blender>
  1.77      +3 -2      blender/source/blender/include/butspace.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/include/butspace.h.diff?r1=1.76&r2=1.77&cvsroot=bf-blender>
  1.12      +2 -1      blender/source/blender/makesdna/DNA_ID.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/makesdna/DNA_ID.h.diff?r1=1.11&r2=1.12&cvsroot=bf-blender>
  1.19      +21 -1     blender/source/blender/makesdna/DNA_ipo_types.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/makesdna/DNA_ipo_types.h.diff?r1=1.18&r2=1.19&cvsroot=bf-blender>
  1.5       +39 -0     blender/source/blender/makesdna/DNA_object_fluidsim.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/makesdna/DNA_object_fluidsim.h.diff?r1=1.4&r2=1.5&cvsroot=bf-blender>
  1.23      +235 -10   blender/source/blender/render/intern/source/convertblender.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/render/intern/source/convertblender.c.diff?r1=1.22&r2=1.23&cvsroot=bf-blender>
  1.149     +109 -8    blender/source/blender/src/buttons_object.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/buttons_object.c.diff?r1=1.148&r2=1.149&cvsroot=bf-blender>
  1.265     +11 -3     blender/source/blender/src/drawobject.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/drawobject.c.diff?r1=1.264&r2=1.265&cvsroot=bf-blender>
  1.91      +53 -1     blender/source/blender/src/editipo.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editipo.c.diff?r1=1.90&r2=1.91&cvsroot=bf-blender>
  1.3       +7 -0      blender/source/blender/src/editipo_lib.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editipo_lib.c.diff?r1=1.2&r2=1.3&cvsroot=bf-blender>
  1.6       +1 -0      blender/source/blender/src/editipo_mods.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editipo_mods.c.diff?r1=1.5&r2=1.6&cvsroot=bf-blender>
  1.19      +728 -322  blender/source/blender/src/fluidsim.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/fluidsim.c.diff?r1=1.18&r2=1.19&cvsroot=bf-blender>
  1.44      +15 -1     blender/source/blender/src/header_ipo.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/header_ipo.c.diff?r1=1.43&r2=1.44&cvsroot=bf-blender>



More information about the Bf-blender-cvs mailing list