From BlenderWiki

Jump to: navigation, search

User:Broken/VolumeRenderingDev

User:Broken/FlareResearch

User:Broken/ShadingSystemScratchpad

User:Broken/BreakingRenderCompatibility


User:Broken/SummerOfDocs2006Restructure



http://wiki.blender.org/index.php/BlenderDev/EventsToolApiNotes

[edit] Broken things I've found in 2.5

  • file selector should warn on file ops (i.e. file name exists) before closing file manager. if cancelled, should give an opportunity to rectify within the file browser (i.e. choosing a new name). Popping up afterwards is easy to miss and gives a false impression that it succeeded.
  • Tweaking hair virtual parents: crash in psys_face_mat() - dm = 0x000000000001

[edit] 2.5 Todo

  • Investigate using horizontal motion for dolly zoom, rather than vertical, as a preference for maya/c4d users
  • fix blender's camera model

[edit] comp stuff

  • manipulators
    • leading to roto shapes
  • non-awful image sequence handling
  • RGBA toggles, extra settings
  • procedural, concatenated transformation matrix/deformation

[edit] Fluid Sim

Getting animated fluid settings working in 2.5:

(12:48:48 PM) Aligorith: in that case, you might want to call BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short recalc) for every frame that would be baked
(12:49:14 PM) broken: for i=1 to 100, get the value of the curve at timerange/100 * i, or whtaever
(12:49:21 PM) Aligorith: then save the value of every relevant property on every frame
(12:49:23 PM) broken: ah, great
(12:49:25 PM) broken: yep
(12:49:37 PM) Aligorith: id should probably by the object
(12:49:40 PM) broken: by saving it, it owuld be jsut putting it into an array (fluidsim channel whatever)
(12:49:51 PM) Aligorith: adt you can get it by doing BKE_animdata_from_id(ob)
(12:49:54 PM) broken: what's AnimData?
(12:49:55 PM) broken: ah
(12:50:08 PM) broken: so, how about getting a property's value?
(12:50:11 PM) Aligorith: ctime is your loop counter
(12:50:22 PM) broken: ctime is jsut time in blender frames, yeah?
(12:50:32 PM) Aligorith: and recalc needs to be ADT_RECALC_ALL
(12:51:06 PM) Aligorith: the problem is that this won't totally work for drivers if your drivers depend on anything that is not animated within the object :/
(12:52:31 PM) Aligorith: BKE_animsys_evaluate_all_animation (Main *main, float ctime)  <--- that's the main call that should be used for all animation update things 
(12:53:55 PM) broken: so running evaluate sort of flushes everything
(12:53:59 PM) Aligorith: it just does it once at the start I guess
(12:54:01 PM) broken: then jsut take the value straight from DNA ?
(12:54:05 PM) Aligorith: yep
(12:54:08 PM) broken: ah, that's awesome

[edit] Notes

  • Point cache - doing an entire scene update at render time?

render_initialize_from_scene - BKE_ptcache_make_cache -> scene_update

[edit] Compiling libs on Mac Os X

[edit] Intel

[edit] FFMPEG

Currently scons works well to compile FFMPEG as part of the build process - I did this to generate the .a libraries which we can then use as precompiled. When scons is going through the dependencies, it runs the configure scripts for the various parts of FFMPEG. Sometimes we need to modify these a bit

  • matroska (libavformat) has a bzlib option for bzip2 compression. The configure script automatically enables this, regardless of whether you have the necessary bzlib libraries or headers installed. If you don't (as you wouldn't usually on Mac), configure ffmpeg manually before build by:
cd extern/ffmpeg
./configure --disable-bzlib

EDIT: Fixed this in the Sconscript


  • xvidcore has trouble in the build system if you have assembler enabled (it is enabled by default). To disable it:
cd extern/xvidcore/build/generic
./configure --disable-assembly

EDIT: Fixed this in the darwin-config

  • If you don't have yasm (an assembly compiler) you'll also need to disable assembly in other areas (I think x264 for one). This can probably be done a similar way. I opted to install yasm on my system - the most convenient way is to install from source, since the latest .dmg I tried on the yasm download page was made by macports, and installed to /opt/local/ which was not in any executable/include/library paths on my system. Installing from source works much better, though you have to uninstall it manually. To install yasm from source is simple, just:
cd yasm-source-dir
./configure && make && make install

By default, yasm installs to /usr/local/...

  • Once this is configured:
python scons/scons.py

to install (with your relevant user-config.py)

[edit] fftw

  • fftw in blender needs the single threaded option so:
cd fftw-source-dir
./configure --disable-threads
make && make install


[edit] notes

Useful things:

deployment min 10.4 for intel, min 10.3 for ppc?


env var MACOSX_DEPLOYMENT_TARGET

env var? SDKROOT

gcc -mmacosx-version-min=10.4 gcc-4.0 -mmacosx-version-min=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk

-Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk

Comand line utils: otool lipo


http://lists.apple.com/archives/unix-porting/2003/Oct/msg00051.html http://lists.apple.com/archives/xcode-users/2005/Dec/msg00524.html


Building python 3.1:

export MACOSX_DEPLOYMENT_TARGET=10.4
export SDKROOT=/Developer/SDKs/MacOSX10.4u.sdk
export C_INCLUDE_PATH=/Developer/SDKs/MacOSX10.4u.sdk/usr/include
export CFLAGS="-mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
./configure --prefix=/Users/matt/Desktop/py10.4_install/ --enable-universalsdk=/Developer/SDKs/MacOSX10.4u.sdk --with-pydebug
make; make install