[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15563] trunk/blender/source/blender/ render/intern/source/zbuf.c: Bugfix #17323
Revision: 15563 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15563 Author: ton Date: 2008-07-14 11:37:06 +0200 (Mon, 14 Jul 2008) Log Message: --- Bugfix #17323 Ztransp OSA render did not include z values anymore in pass... this is not good Z anyway (aliased), but at least it's back now. Note: for composites using Z values: use FSA for superior results. Modified Paths: -- trunk/blender/source/blender/render/intern/source/zbuf.c Modified: trunk/blender/source/blender/render/intern/source/zbuf.c === --- trunk/blender/source/blender/render/intern/source/zbuf.c2008-07-14 01:44:05 UTC (rev 15562) +++ trunk/blender/source/blender/render/intern/source/zbuf.c2008-07-14 09:37:06 UTC (rev 15563) @@ -3545,7 +3545,7 @@ for(rpass= rl->passes.first; rpass; rpass= rpass->next) { float *col= NULL; - int pixsize= 0; + int pixsize= 3; switch(rpass->passtype) { case SCE_PASS_RGBA: @@ -3580,6 +3580,10 @@ col= &shr->mist; pixsize= 1; break; + case SCE_PASS_Z: + col= &shr->z; + pixsize= 1; + break; case SCE_PASS_VECTOR: { @@ -3612,14 +3616,18 @@ for(samp= 1; samp1) { + col[1]+= fp[1]; + col[2]+= fp[2]; + if(pixsize==4) col[3]+= fp[3]; + } } col[0]*= weight; - col[1]*= weight; - col[2]*= weight; - if(pixsize) col[3]*= weight; + if(pixsize>1) { + col[1]*= weight; + col[2]*= weight; + if(pixsize==4) col[3]*= weight; + } } } @@ -3973,7 +3981,7 @@ /* general shader info, passes */ shade_sample_initialize(&ssamp, pa, rl); - addpassflag= rl->passflag & ~(SCE_PASS_Z|SCE_PASS_COMBINED); + addpassflag= rl->passflag & ~(SCE_PASS_COMBINED); addzbuf= rl->passflag & SCE_PASS_Z; if(R.osa) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15564] trunk/blender/source/blender/imbuf /intern/openexr/openexr_api.cpp: Bugfix #17327
Revision: 15564 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15564 Author: ton Date: 2008-07-14 12:26:11 +0200 (Mon, 14 Jul 2008) Log Message: --- Bugfix #17327 Small one: changed the string attribute in multilayer exr files to be: "2.43 and newer" To indicate that it's about compatibility of the exr file, not the version Blender saved it in. Modified Paths: -- trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp Modified: trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp === --- trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2008-07-14 09:37:06 UTC (rev 15563) +++ trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2008-07-14 10:26:11 UTC (rev 15564) @@ -451,7 +451,7 @@ openexr_header_compression(&header, compress); /* header.lineOrder() = DECREASING_Y; this crashes in windows for file read! */ - header.insert ("BlenderMultiChannel", StringAttribute ("Blender V2.43")); + header.insert ("BlenderMultiChannel", StringAttribute ("Blender V2.43 and newer")); data->ofile = new OutputFile(filename, header); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15565] trunk/blender/intern/elbeem/intern /solver_init.cpp: Win64 fix: disable 1GB restriction for 64bit windows systems, baking fluid with > 4GB is
Revision: 15565 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15565 Author: genscher Date: 2008-07-14 14:24:49 +0200 (Mon, 14 Jul 2008) Log Message: --- Win64 fix: disable 1GB restriction for 64bit windows systems, baking fluid with >4GB is verified to work on Vista64. Modified Paths: -- trunk/blender/intern/elbeem/intern/solver_init.cpp Modified: trunk/blender/intern/elbeem/intern/solver_init.cpp === --- trunk/blender/intern/elbeem/intern/solver_init.cpp 2008-07-14 10:26:11 UTC (rev 15564) +++ trunk/blender/intern/elbeem/intern/solver_init.cpp 2008-07-14 12:24:49 UTC (rev 15565) @@ -694,7 +694,7 @@ double maxDefaultMemChunk = 2.*1024.*1024.*1024.; //std::cerr<<" memEstFine "<< memEstFine <<" maxWin:" < maxWinMemChunk) { + if(sizeof(void *)==4 && memEstFine>maxWinMemChunk) { memBlockAllocProblem = true; } #endif // WIN32 ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15566] branches/apricot: svn merge -r15560:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/ blender
Revision: 15566 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15566 Author: campbellbarton Date: 2008-07-14 15:39:48 +0200 (Mon, 14 Jul 2008) Log Message: --- svn merge -r15560:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/blender Also topology mirror crashed when using smooth + mirror. use eve->hash rather them eve->tmp.l for storing edit vert indices's. Modified Paths: -- branches/apricot/intern/elbeem/intern/solver_init.cpp branches/apricot/source/blender/imbuf/intern/openexr/openexr_api.cpp branches/apricot/source/blender/include/BIF_meshtools.h branches/apricot/source/blender/render/intern/source/zbuf.c branches/apricot/source/blender/src/editmesh_mods.c branches/apricot/source/blender/src/meshtools.c branches/apricot/source/blender/src/transform_conversions.c branches/apricot/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp branches/apricot/source/gameengine/GameLogic/SCA_PythonController.cpp branches/apricot/source/gameengine/GamePlayer/ActiveX/BlenderPlayerCtl.cpp branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp branches/apricot/source/gameengine/GamePlayer/netscape/src/ketsji/KXH_ketsji_hooks.cpp branches/apricot/source/gameengine/Ketsji/KX_KetsjiEngine.cpp branches/apricot/source/gameengine/Ketsji/KX_PythonInit.cpp branches/apricot/source/gameengine/Ketsji/KX_PythonInit.h branches/apricot/source/gameengine/Ketsji/KX_SoundActuator.cpp Modified: branches/apricot/intern/elbeem/intern/solver_init.cpp === --- branches/apricot/intern/elbeem/intern/solver_init.cpp 2008-07-14 12:24:49 UTC (rev 15565) +++ branches/apricot/intern/elbeem/intern/solver_init.cpp 2008-07-14 13:39:48 UTC (rev 15566) @@ -694,7 +694,7 @@ double maxDefaultMemChunk = 2.*1024.*1024.*1024.; //std::cerr<<" memEstFine "<< memEstFine <<" maxWin:" < maxWinMemChunk) { + if(sizeof(void *)==4 && memEstFine>maxWinMemChunk) { memBlockAllocProblem = true; } #endif // WIN32 Modified: branches/apricot/source/blender/imbuf/intern/openexr/openexr_api.cpp === --- branches/apricot/source/blender/imbuf/intern/openexr/openexr_api.cpp 2008-07-14 12:24:49 UTC (rev 15565) +++ branches/apricot/source/blender/imbuf/intern/openexr/openexr_api.cpp 2008-07-14 13:39:48 UTC (rev 15566) @@ -451,7 +451,7 @@ openexr_header_compression(&header, compress); /* header.lineOrder() = DECREASING_Y; this crashes in windows for file read! */ - header.insert ("BlenderMultiChannel", StringAttribute ("Blender V2.43")); + header.insert ("BlenderMultiChannel", StringAttribute ("Blender V2.43 and newer")); data->ofile = new OutputFile(filename, header); } Modified: branches/apricot/source/blender/include/BIF_meshtools.h === --- branches/apricot/source/blender/include/BIF_meshtools.h 2008-07-14 12:24:49 UTC (rev 15565) +++ branches/apricot/source/blender/include/BIF_meshtools.h 2008-07-14 13:39:48 UTC (rev 15566) @@ -43,7 +43,7 @@ extern long mesh_octree_table(struct Object *ob, float *co, char mode); extern long mesh_mirrtopo_table(struct Object *ob, char mode); extern int mesh_get_x_mirror_vert(struct Object *ob, int index); -extern struct EditVert *editmesh_get_x_mirror_vert(struct Object *ob, struct EditVert *eve); +extern struct EditVert *editmesh_get_x_mirror_vert(struct Object *ob, struct EditVert *eve, int index); extern float *editmesh_get_mirror_uv(int axis, float *co, float *mirrCent, float *face_cent); extern int *mesh_get_x_mirror_faces(struct Object *ob); Modified: branches/apricot/source/blender/render/intern/source/zbuf.c === --- branches/apricot/source/blender/render/intern/source/zbuf.c 2008-07-14 12:24:49 UTC (rev 15565) +++ branches/apricot/source/blender/render/intern/source/zbuf.c 2008-07-14 13:39:48 UTC (rev 15566) @@ -3545,7 +3545,7 @@ for(rpass= rl->passes.first; rpass; rpass= rpass->next) { float *col= NULL; - int pixsize= 0; + int pixsize= 3; switch(rpass->passtype) { case SCE_PASS_RGBA: @@ -3580,6 +3580,10 @@ col= &shr->mist; pixsize= 1; break; + case SCE_PASS_Z: + col= &shr->z; + pixsize= 1; + break; case SCE_PASS_VECTOR:
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15567] branches/harmonic-skeleton: merge with trunk (15330 -> 15566)
Revision: 15567 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15567 Author: theeth Date: 2008-07-14 16:09:36 +0200 (Mon, 14 Jul 2008) Log Message: --- merge with trunk (15330 -> 15566) Modified Paths: -- branches/harmonic-skeleton/CMakeLists.txt branches/harmonic-skeleton/README branches/harmonic-skeleton/intern/bsp/intern/BSP_CSGMesh.cpp branches/harmonic-skeleton/intern/container/CTR_TaggedIndex.h branches/harmonic-skeleton/intern/decimation/intern/LOD_ManMesh2.cpp branches/harmonic-skeleton/intern/elbeem/intern/solver_init.cpp branches/harmonic-skeleton/intern/ghost/intern/GHOST_SystemWin32.cpp branches/harmonic-skeleton/intern/ghost/intern/GHOST_WindowWin32.cpp branches/harmonic-skeleton/intern/iksolver/intern/IK_QTask.h branches/harmonic-skeleton/intern/moto/include/GEN_Map.h branches/harmonic-skeleton/intern/moto/include/MT_random.h branches/harmonic-skeleton/intern/moto/intern/MT_random.cpp branches/harmonic-skeleton/projectfiles_vc7/blender/blenlib/BLI_blenlib.vcproj branches/harmonic-skeleton/projectfiles_vc7/blender/render/BRE_render.vcproj branches/harmonic-skeleton/projectfiles_vc7/blender/src/BL_src.vcproj branches/harmonic-skeleton/projectfiles_vc7/gameengine/gamelogic/SCA_GameLogic.vcproj branches/harmonic-skeleton/projectfiles_vc7/gameengine/ketsji/KX_ketsji.vcproj branches/harmonic-skeleton/projectfiles_vc7/gameengine/rasterizer/RAS_rasterizer.vcproj branches/harmonic-skeleton/release/scripts/animation_bake_constraints.py branches/harmonic-skeleton/release/scripts/c3d_import.py branches/harmonic-skeleton/release/windows/installer/00.sconsblender.nsi branches/harmonic-skeleton/source/blender/blenkernel/BKE_bmesh.h branches/harmonic-skeleton/source/blender/blenkernel/BKE_bmeshCustomData.h branches/harmonic-skeleton/source/blender/blenkernel/BKE_cloth.h branches/harmonic-skeleton/source/blender/blenkernel/BKE_customdata.h branches/harmonic-skeleton/source/blender/blenkernel/BKE_ipo.h branches/harmonic-skeleton/source/blender/blenkernel/intern/BME_Customdata.c branches/harmonic-skeleton/source/blender/blenkernel/intern/BME_conversions.c branches/harmonic-skeleton/source/blender/blenkernel/intern/BME_eulers.c branches/harmonic-skeleton/source/blender/blenkernel/intern/BME_mesh.c branches/harmonic-skeleton/source/blender/blenkernel/intern/BME_structure.c branches/harmonic-skeleton/source/blender/blenkernel/intern/BME_tools.c branches/harmonic-skeleton/source/blender/blenkernel/intern/DerivedMesh.c branches/harmonic-skeleton/source/blender/blenkernel/intern/action.c branches/harmonic-skeleton/source/blender/blenkernel/intern/bmesh_private.h branches/harmonic-skeleton/source/blender/blenkernel/intern/cloth.c branches/harmonic-skeleton/source/blender/blenkernel/intern/collision.c branches/harmonic-skeleton/source/blender/blenkernel/intern/customdata.c branches/harmonic-skeleton/source/blender/blenkernel/intern/image.c branches/harmonic-skeleton/source/blender/blenkernel/intern/implicit.c branches/harmonic-skeleton/source/blender/blenkernel/intern/ipo.c branches/harmonic-skeleton/source/blender/blenkernel/intern/library.c branches/harmonic-skeleton/source/blender/blenkernel/intern/modifier.c branches/harmonic-skeleton/source/blender/blenkernel/intern/object.c branches/harmonic-skeleton/source/blender/blenkernel/intern/particle.c branches/harmonic-skeleton/source/blender/blenkernel/intern/particle_system.c branches/harmonic-skeleton/source/blender/blenkernel/intern/pointcache.c branches/harmonic-skeleton/source/blender/blenkernel/intern/sca.c branches/harmonic-skeleton/source/blender/blenkernel/intern/text.c branches/harmonic-skeleton/source/blender/blenlib/BLI_arithb.h branches/harmonic-skeleton/source/blender/blenlib/BLI_winstuff.h branches/harmonic-skeleton/source/blender/blenlib/intern/BLI_kdopbvh.c branches/harmonic-skeleton/source/blender/blenlib/intern/arithb.c branches/harmonic-skeleton/source/blender/blenlib/intern/util.c branches/harmonic-skeleton/source/blender/blenloader/intern/readfile.c branches/harmonic-skeleton/source/blender/blenloader/intern/writefile.c branches/harmonic-skeleton/source/blender/imbuf/intern/IMB_anim.h branches/harmonic-skeleton/source/blender/imbuf/intern/anim.c branches/harmonic-skeleton/source/blender/imbuf/intern/openexr/openexr_api.cpp branches/harmonic-skeleton/source/blender/include/BDR_drawobject.h branches/harmonic-skeleton/source/blender/include/BIF_editaction.h branches/harmonic-skeleton/source/blender/include/BIF_editarmature.h branches/harmonic-skeleton/source/blender/include/BIF_resources.h branches/harmonic-skeleton/source/blender/include/BSE_sequence.h branches/harmonic-skeleton/source/blender/include/blendef
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15568] trunk/lib/windows/python/lib: Added separate 2005 and 2003 builds of the python 2.5 library.
Revision: 15568 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15568 Author: scourage Date: 2008-07-14 18:44:01 +0200 (Mon, 14 Jul 2008) Log Message: --- Added separate 2005 and 2003 builds of the python 2.5 library. The files in the directory are the 2003 build as well. To change, just copy the files for your compiler out. Modified Paths: -- trunk/lib/windows/python/lib/python25.dll trunk/lib/windows/python/lib/python25.lib trunk/lib/windows/python/lib/python25_d.dll trunk/lib/windows/python/lib/python25_d.lib trunk/lib/windows/python/lib/python25_d.pdb Added Paths: --- trunk/lib/windows/python/lib/lib25_vs2003/ trunk/lib/windows/python/lib/lib25_vs2003/python25.dll trunk/lib/windows/python/lib/lib25_vs2003/python25.lib trunk/lib/windows/python/lib/lib25_vs2003/python25_d.dll trunk/lib/windows/python/lib/lib25_vs2003/python25_d.lib trunk/lib/windows/python/lib/lib25_vs2003/python25_d.pdb trunk/lib/windows/python/lib/lib25_vs2005/ trunk/lib/windows/python/lib/lib25_vs2005/python25.dll trunk/lib/windows/python/lib/lib25_vs2005/python25.lib trunk/lib/windows/python/lib/lib25_vs2005/python25_d.dll trunk/lib/windows/python/lib/lib25_vs2005/python25_d.lib trunk/lib/windows/python/lib/lib25_vs2005/python25_d.pdb trunk/lib/windows/python/lib/readme.txt Added: trunk/lib/windows/python/lib/lib25_vs2003/python25.dll === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2003/python25.dll ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2003/python25.lib === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2003/python25.lib ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2003/python25_d.dll === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2003/python25_d.dll ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2003/python25_d.lib === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2003/python25_d.lib ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2003/python25_d.pdb === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2003/python25_d.pdb ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2005/python25.dll === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2005/python25.dll ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2005/python25.lib === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2005/python25.lib ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2005/python25_d.dll === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2005/python25_d.dll ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2005/python25_d.lib === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2005/python25_d.lib ___ Name: svn:mime-type + application/octet-stream Added: trunk/lib/windows/python/lib/lib25_vs2005/python25_d.pdb === (Binary files differ) Property changes on: trunk/lib/windows/python/lib/lib25_vs2005/python25_d.pdb ___ Name: svn:mime-type + application/octet-stream Modified: trunk/lib/windows/python/lib/python25.dll
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15569] trunk/lib/win64/pthreads/lib: Fixing crash with pthreads on win64 plattform
Revision: 15569 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15569 Author: genscher Date: 2008-07-14 19:09:47 +0200 (Mon, 14 Jul 2008) Log Message: --- Fixing crash with pthreads on win64 plattform Modified Paths: -- trunk/lib/win64/pthreads/lib/pthreadVC2.lib Added Paths: --- trunk/lib/win64/pthreads/lib/pthreadVC2.dll Added: trunk/lib/win64/pthreads/lib/pthreadVC2.dll === (Binary files differ) Property changes on: trunk/lib/win64/pthreads/lib/pthreadVC2.dll ___ Name: svn:mime-type + application/octet-stream Modified: trunk/lib/win64/pthreads/lib/pthreadVC2.lib === (Binary files differ) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15570] trunk/blender/source/blender/src/ buttons_scene.c: bugfix
Revision: 15570 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15570 Author: campbellbarton Date: 2008-07-14 19:19:24 +0200 (Mon, 14 Jul 2008) Log Message: --- bugfix * samples that wernt loaded could crash blender - divide by zero errors from having 0 channels or bits. * could also corrupt memory when selecting samples with long names. from the sample selector menu. Modified Paths: -- trunk/blender/source/blender/src/buttons_scene.c Modified: trunk/blender/source/blender/src/buttons_scene.c === --- trunk/blender/source/blender/src/buttons_scene.c2008-07-14 17:09:47 UTC (rev 15569) +++ trunk/blender/source/blender/src/buttons_scene.c2008-07-14 17:19:24 UTC (rev 15570) @@ -137,36 +137,42 @@ bSample *sample, *newsample; sound = G.buts->lockpoin; + + /* No Sound or Selected the same sample as we alredy have, just ignore */ + if (sound==NULL || str==sound->name) + return; + + if (sizeof(sound->sample->name) < strlen(str)) { + error("Path too long: %s", str); + return; + } + + // save values + sample = sound->sample; + strcpy(name, sound->sample->name); + strcpy(sound->name, str); + sound_set_sample(sound, NULL); + sound_initialize_sample(sound); - if (sound) { - // save values - sample = sound->sample; - strcpy(name, sound->sample->name); + if (sound->sample->type == SAMPLE_INVALID) { + error("Not a valid sample: %s", str); - strcpy(sound->name, str); - sound_set_sample(sound, NULL); - sound_initialize_sample(sound); + newsample = sound->sample; - if (sound->sample->type == SAMPLE_INVALID) { - error("Not a valid sample: %s", str); + // restore values + strcpy(sound->name, name); + sound_set_sample(sound, sample); - newsample = sound->sample; + // remove invalid sample - // restore values - strcpy(sound->name, name); - sound_set_sample(sound, sample); - - // remove invalid sample - - sound_free_sample(newsample); - BLI_remlink(samples, newsample); - MEM_freeN(newsample); - } + sound_free_sample(newsample); + BLI_remlink(samples, newsample); + MEM_freeN(newsample); + return; } - + BIF_undo_push("Load new audio file"); allqueue(REDRAWBUTSSCENE, 0); - } @@ -403,7 +409,7 @@ sample = sound->sample; /* info string */ - if (sound->sample && sound->sample->len) { + if (sound->sample && sound->sample->len && sound->sample->channels && sound->sample->bits) { char *tmp; if (sound->sample->channels == 1) tmp= "Mono"; else if (sound->sample->channels == 2) tmp= "Stereo"; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15571] branches/soc-2008-nicholasbishop/ source/blender/blenkernel/intern/multires.c: Some refactoring in multires.
Revision: 15571 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15571 Author: nicholasbishop Date: 2008-07-14 20:34:42 +0200 (Mon, 14 Jul 2008) Log Message: --- Some refactoring in multires. Modified Paths: -- branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c Modified: branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c === --- branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c 2008-07-14 17:19:24 UTC (rev 15570) +++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c 2008-07-14 18:34:42 UTC (rev 15571) @@ -1390,13 +1390,171 @@ VecCopyf(target, orco[f->v1]); } +DerivedMesh *multires_subdisp_pre(DerivedMesh *mrdm, int distance) +{ + DerivedMesh *final; + SubsurfModifierData smd; + + memset(&smd, 0, sizeof(SubsurfModifierData)); + smd.levels = distance; + final = subsurf_make_derived_from_derived_with_multires(mrdm, &smd, NULL, 0, NULL, 0, 0); + + return final; +} + +void multires_subdisp(DerivedMesh *orig, Mesh *me, DerivedMesh *final, int lvl, int totlvl, + int totsubvert, int totsubedge, int totsubface) +{ + DerivedMesh *mrdm; + MultiresModifierData mmd_sub; + MVert *mvs = CDDM_get_verts(final); + MVert *mvd, *mvd_f1, *mvs_f1, *mvd_f3, *mvd_f4; + MVert *mvd_f2, *mvs_f2, *mvs_e1, *mvd_e1, *mvs_e2; + int totorco, totvert; + int slo2 = multires_side_tot[totlvl - 2]; + int shi2 = multires_side_tot[totlvl - 1]; + int i, j; + + /* Base mesh */ + int base_totvert, base_totedge, base_totface; + MFace *base_mface; + if(me) { + base_totvert = me->totvert; + base_totedge = me->totedge; + base_totface = me->totface; + base_mface = me->mface; + } + else { + base_totvert = MultiresDM_get_totorco(orig); + base_totedge = MultiresDM_get_totored(orig); + base_totface = MultiresDM_get_totorfa(orig); + base_mface = MultiresDM_get_orfa(orig); + } + + mmd_sub.lvl = mmd_sub.totlvl = totlvl; + mrdm = multires_dm_create_from_derived(&mmd_sub, orig, 0, 0); + + mvd = CDDM_get_verts(mrdm); + /* Need to map from ccg to mrdm */ + totorco = MultiresDM_get_totorco(mrdm); + totvert = mrdm->getNumVerts(mrdm); + + /* Load base verts */ + for(i = 0; i < base_totvert; ++i) + VecCopyf(mvd[totvert - totorco + i].co, mvs[totvert - totorco + i].co); + + mvd_f1 = mvd; + mvs_f1 = mvs; + mvd_f2 = mvd; + mvs_f2 = mvs + totvert - totsubvert; + mvs_e1 = mvs + totsubface; + for(i = 0; i < base_totface; ++i) { + const int end = base_mface[i].v4 ? 4 : 3; + int x, y; + + mvd_f1 += 1 + end * (slo2-2); //center+edgecross + mvd_f3 = mvd_f4 = mvd_f1; + + for(j = 0; j < end; ++j) { + /* Update face centers created in the top level */ + for(y = 1; y < slo2 - 1; y += 2) { + for(x = 1; x < slo2 - 1; x += 2) { + VecCopyf(mvd_f1->co, mvs_f1->co); + mvd_f1 += 2; + mvs_f1 += 1; + } + mvd_f1 += slo2 - 3; + } + mvd_f1 -= slo2 - 2; + } + + /* update face center verts */ + VecCopyf(mvd_f2->co, mvs_f2->co); + + mvd_f2 += 1; + mvs_f2 += 1; + + /* update face edge verts */ + for(j = 0; j < end; ++j) { + VecCopyf(mvd_f2->co, mvs_e1->co); + mvd_f2++; + mvs_e1++; + for(x = 2; x < slo2 - 1; x += 2) { + VecCopyf(mvd_f2->co, mvs_f2->co); + mvd_f2++; + mvs_f2++; + + VecCopyf(mvd_f2->co, mvs_e1->co); + mvd_f2++; + mvs_e1++; + } + + for(y = 0; y < slo2/2 - 1; ++y) { + for(x = 0; x < slo2/2; ++x) { + VecCopyf(mvd_f3[1+(y*2) + x*(2 * (slo2-2))].co, +mvs_e1->co); + mvs_e1+=2; + } + } + + mvs_e1 -= (slo2/2) * (slo2/2 - 1) * 2 - 1; + f
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15572] branches/soc-2008-jaguarandi/ source/blender: Improved build time on BLI_kdopbvh
Revision: 15572 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15572 Author: jaguarandi Date: 2008-07-14 20:42:53 +0200 (Mon, 14 Jul 2008) Log Message: --- Improved build time on BLI_kdopbvh Its now faster than raytree (both on build and query) Things tryed: X=>Y=>Z=>X split (reduces build time.. but increases query time) bucket sorts (initial sorts for fast usage of bucket take a long time) (nth is linear.. so its quite fast already) Best times archieve with: *usage of 4-ary trees.. reduces build time and tree size but didnt decreased query time *quads are on the same node instead of splitting in 2 tris.. (this actually turned on speedup on query time.. since tree size is reduced by a factor of 2) *test ray-bb before ray-primitive gives better times on both tris and quads Notes: measures where made projecting a sphere from inside the head of suzanne. Modified Paths: -- branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/shrinkwrap.c branches/soc-2008-jaguarandi/source/blender/blenlib/intern/BLI_kdopbvh.c Modified: branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/shrinkwrap.c === --- branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/shrinkwrap.c 2008-07-14 18:34:42 UTC (rev 15571) +++ branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/shrinkwrap.c 2008-07-14 18:42:53 UTC (rev 15572) @@ -149,13 +149,13 @@ /* * Builds a bvh tree.. where nodes are the vertexs of the given mesh */ -static BVHTree* bvhtree_from_mesh_verts(DerivedMesh *mesh, float epsilon) +static BVHTree* bvhtree_from_mesh_verts(DerivedMesh *mesh, float epsilon, int tree_type, int axis) { int i; int numVerts= mesh->getNumVerts(mesh); MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); - BVHTree *tree = BLI_bvhtree_new(numVerts, 0, 2, 6); + BVHTree *tree = BLI_bvhtree_new(numVerts, epsilon, tree_type, axis); if(tree != NULL) { for(i = 0; i < numVerts; i++) @@ -170,7 +170,7 @@ /* * Builds a bvh tree.. where nodes are the faces of the given mesh. Quads are splitted in 2 triangles */ -static BVHTree* bvhtree_from_mesh_tri(DerivedMesh *mesh, float epsilon) +static BVHTree* bvhtree_from_mesh_tri(DerivedMesh *mesh, float epsilon, int tree_type, int axis) { int i; int numFaces= mesh->getNumFaces(mesh), totFaces; @@ -183,7 +183,7 @@ if(face[i].v4) totFaces++; /* Create a bvh-tree of the given target */ - tree = BLI_bvhtree_new(totFaces, epsilon, 2, 6); + tree = BLI_bvhtree_new(totFaces, epsilon, tree_type, axis); if(tree != NULL) { for(i = 0; i < numFaces; i++) @@ -210,6 +210,42 @@ } /* + * Builds a bvh tree.. where nodes are the faces of the given mesh. + */ +static BVHTree* bvhtree_from_mesh_faces(DerivedMesh *mesh, float epsilon, int tree_type, int axis) +{ + int i; + int numFaces= mesh->getNumFaces(mesh); + MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); + MFace *face = mesh->getFaceDataArray(mesh, CD_MFACE); + BVHTree *tree= NULL; + + /* Count needed faces */ + + /* Create a bvh-tree of the given target */ + tree = BLI_bvhtree_new(numFaces, epsilon, tree_type, axis); + if(tree != NULL) + { + for(i = 0; i < numFaces; i++) + { + float co[4][3]; + + VECCOPY(co[0], vert[ face[i].v1 ].co); + VECCOPY(co[1], vert[ face[i].v2 ].co); + VECCOPY(co[2], vert[ face[i].v3 ].co); + if(face[i].v4) + VECCOPY(co[3], vert[ face[i].v4 ].co); + + BLI_bvhtree_insert(tree, i, co[0], face[i].v4 ? 4 : 3); + } + + BLI_bvhtree_balance(tree); + } + + return tree; +} + +/* * Loads the coordinates of the requested tri */ static void bvhtree_from_mesh_get_tri(BVHMeshCallbackUserdata* userdata, int index, float **v0, float **v1, float **v2) @@ -248,7 +284,11 @@ bvhtree_from_mesh_get_tri( (BVHMeshCallbackUserdata*)userdata, index, &t0, &t1, &t2); - dist = sphereray_tri_intersection(ray, ((BVHMeshCallbackUserdata*)userdata)->sphere_radius, hit->dist, t0, t1, t2); + if(((BVHMeshCallbackUserdata*)userdata)->sphere_radius == 0.0f) + dist = ray_tri_intersection(ray, hit->dist, t0, t1, t2); + else + dist = sphereray_tri_intersection(ray, ((BVHMeshCallbackUserdata*)userdata)->sphere_radius, hit->dist, t0, t1, t2); + if(dist >= 0 && dist < hit->dist) { hit->index = index; @@ -259,28 +299,46 @@ } /* - * Callback to bvh tree raycast. The tree must bust have been built using bvhtre
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15573] branches/harmonic-skeleton/source/ blender/src/reeb.c: First draft of subgraph joining
Revision: 15573 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15573 Author: theeth Date: 2008-07-14 21:05:25 +0200 (Mon, 14 Jul 2008) Log Message: --- First draft of subgraph joining Modified Paths: -- branches/harmonic-skeleton/source/blender/src/reeb.c Modified: branches/harmonic-skeleton/source/blender/src/reeb.c === --- branches/harmonic-skeleton/source/blender/src/reeb.c2008-07-14 18:42:53 UTC (rev 15572) +++ branches/harmonic-skeleton/source/blender/src/reeb.c2008-07-14 19:05:25 UTC (rev 15573) @@ -103,7 +103,9 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count); void REEB_AxialSymmetry(BNode* root_node, BNode* node1, BNode* node2, struct BArc* barc1, BArc* barc2); +void flipArcBuckets(ReebArc *arc); + /* UTILS **/ void REEB_freeArc(BArc *barc) @@ -355,6 +357,16 @@ } } +void flipArc(ReebArc *arc) +{ + ReebNode *tmp; + tmp = arc->head; + arc->head = arc->tail; + arc->tail = tmp; + + flipArcBuckets(arc); +} + #ifdef DEBUG_REEB_NODE void NodeDegreeDecrement(ReebGraph *rg, ReebNode *node) { @@ -585,8 +597,8 @@ void allocArcBuckets(ReebArc *arc) { int i; - float start = ceil(((ReebNode*)arc->head)->weight); - arc->bcount = (int)(floor(((ReebNode*)arc->tail)->weight) - start) + 1; + float start = ceil(arc->head->weight); + arc->bcount = (int)(floor(arc->tail->weight) - start) + 1; if (arc->bcount > 0) { @@ -641,6 +653,86 @@ } } +void reweightBuckets(ReebArc *arc) +{ + int i; + float start = ceil((arc->head)->weight); + + if (arc->bcount > 0) + { + for(i = 0; i < arc->bcount; i++) + { + arc->buckets[i].val = start + i; + } + } +} + +static void interpolateBuckets(ReebArc *arc, float *start_p, float *end_p, int start_index, int end_index) +{ + int total; + int j; + + total = end_index - start_index + 2; + + for (j = start_index; j <= end_index; j++) + { + EmbedBucket *empty = arc->buckets + j; + empty->nv = 1; + VecLerpf(empty->p, start_p, end_p, (float)(j - start_index + 1) / total); + } +} + +void fillArcEmptyBuckets(ReebArc *arc) +{ + float *start_p, *end_p; + int start_index, end_index; + int missing = 0; + int i; + + start_p = arc->head->p; + + for(i = 0; i < arc->bcount; i++) + { + EmbedBucket *bucket = arc->buckets + i; + + if (missing) + { + if (bucket->nv > 0) + { + missing = 0; + + end_p = bucket->p; + end_index = i - 1; + + interpolateBuckets(arc, start_p, end_p, start_index, end_index); + } + } + else + { + if (bucket->nv == 0) + { + missing = 1; + + if (i > 0) + { + start_p = arc->buckets[i - 1].p; + } + start_index = i; + } + } + } + + if (missing) + { + end_p = arc->tail->p; + end_index = arc->bcount - 1; + + interpolateBuckets(arc, start_p, end_p, start_index, end_index); + } +} + +/ LENGTH CALCULATIONS / + void calculateArcLength(ReebArc *arc) { ReebArcIterator iter; @@ -966,7 +1058,121 @@ { BLI_sortlist(&rg->arcs, compareArcsWeight); } +/*** JOINING ***/ +void reweightArc(ReebArc *arc, ReebNode *start_node, float start_weight) +{ + float delta_weight = arc->tail->weight - arc->head->weight; + + if (arc->tail == start_node) + { + flipArc(arc); + } + + arc->head->weight = start_weight; + arc->tail->weight = start_weight + delta_weight; + + reweightBuckets(arc); + + /* recurse here */ +} + +void reweightSubgraph(ReebGraph *rg, ReebNode *start_node, float start_weight) +{ + ReebArc *arc; + + arc = start_node->arcs[0]; + +
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15574] branches/harmonic-skeleton/source/ blender/src/reeb.c: Subgraph joins to non-terminal nodes
Revision: 15574 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15574 Author: theeth Date: 2008-07-14 22:30:23 +0200 (Mon, 14 Jul 2008) Log Message: --- Subgraph joins to non-terminal nodes Modified Paths: -- branches/harmonic-skeleton/source/blender/src/reeb.c Modified: branches/harmonic-skeleton/source/blender/src/reeb.c === --- branches/harmonic-skeleton/source/blender/src/reeb.c2008-07-14 19:05:25 UTC (rev 15573) +++ branches/harmonic-skeleton/source/blender/src/reeb.c2008-07-14 20:30:23 UTC (rev 15574) @@ -1073,6 +1073,8 @@ arc->tail->weight = start_weight + delta_weight; reweightBuckets(arc); + resizeArcBuckets(arc); + fillArcEmptyBuckets(arc); /* recurse here */ } @@ -1093,15 +1095,17 @@ for (subgraph = 1; subgraph <= nb_subgraphs; subgraph++) { - ReebNode *start_node, *end_node; + ReebNode *start_node, *end_node, *next_node; - for (start_node = rg->nodes.first; start_node; start_node = start_node->next) + for (start_node = rg->nodes.first; start_node; start_node = next_node) { + next_node = start_node->next; + if (start_node->flag == subgraph && start_node->degree == 1) { for (end_node = rg->nodes.first; end_node; end_node = end_node->next) { - if (end_node->flag != subgraph && end_node->degree == 1 && VecLenf(start_node->p, end_node->p) < threshold) + if (end_node->flag != subgraph && VecLenf(start_node->p, end_node->p) < threshold) { break; } @@ -1119,7 +1123,7 @@ { reweightSubgraph(rg, end_node, start_node->weight); - end_arc->head = start_node; + start_arc->tail = end_node; merging = 1; } @@ -1127,7 +1131,7 @@ { reweightSubgraph(rg, start_node, end_node->weight); - end_arc->tail = start_node; + start_arc->head = end_node; merging = 1; } @@ -1135,12 +1139,12 @@ if (merging) { - resizeArcBuckets(end_arc); - fillArcEmptyBuckets(end_arc); + resizeArcBuckets(start_arc); + fillArcEmptyBuckets(start_arc); - NodeDegreeIncrement(rg, start_node); + NodeDegreeIncrement(rg, end_node); - BLI_removeNode((BGraph*)rg, (BNode*)end_node); + BLI_removeNode((BGraph*)rg, (BNode*)start_node); } joined = 1; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15575] branches/soc-2008-unclezeiv/source /blender/render/intern/source/lightcuts.c: - fixed terrible bug that prevented different light types to wor
Revision: 15575 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15575 Author: unclezeiv Date: 2008-07-15 00:23:39 +0200 (Tue, 15 Jul 2008) Log Message: --- - fixed terrible bug that prevented different light types to work together meaningfully - fixed silly bug in stats (large int multiplication could easily overflow...) - fixed a bug where cosine bounding for oriented lights returned wrong value - fixed: max_lights and max_cuts were still used interchangeably despite now having different meanings - textured area light does not create black lights anymore (as for environment maps) - debug: more logging (compiled out by default) - debug: changed false colour rendering (G: #directional lights / #cut; B: #oriented lights / #cut) Modified Paths: -- branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c Modified: branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c === --- branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c 2008-07-14 20:30:23 UTC (rev 15574) +++ branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c 2008-07-14 22:23:39 UTC (rev 15575) @@ -681,6 +681,7 @@ float area, gapx, gapy, factor, realw, realh; float xdir[3]; float ydir[3]; + float col[3]; float stepx, stepy, texvec[2]; LampRen *lar; float density; @@ -726,19 +727,12 @@ * objects... do we need objects there? */ gonew->ob= 0; /* XXX: or go->ob */ - - lar = (LampRen *)MEM_callocN(sizeof(LampRen), "lampren"); - - create_lamp_oriented(re, lar, orig); /* place a light in its own square with random jittering */ texvec[0]= gapx * (x + BLI_frand()); texvec[1]= gapy * (y + BLI_frand()); stepx= orig->area_size * (texvec[0] - 0.5f); stepy= orig->area_sizey * (texvec[1] - 0.5f); - lar->co[0]= orig->co[0] + xdir[0] * stepx + ydir[0] * stepy; - lar->co[1]= orig->co[1] + xdir[1] * stepx + ydir[1] * stepy; - lar->co[2]= orig->co[2] + xdir[2] * stepx + ydir[2] * stepy; if (use_texture) { int ret; @@ -749,19 +743,35 @@ texvec[1]= texvec[1]*2.0f - 1.0f; ret= multitex_ext(tex, texvec, NULL, NULL, 0, &texres); - lar->r= texres.tr * factor * orig->energy; - lar->g= texres.tg * factor * orig->energy; - lar->b= texres.tb * factor * orig->energy; + col[0]= texres.tr * orig->energy; + col[1]= texres.tg * orig->energy; + col[2]= texres.tb * orig->energy; } else { - lar->r= orig->r * factor; - lar->g= orig->g * factor; - lar->b= orig->b * factor; + col[0]= orig->r; + col[1]= orig->g; + col[2]= orig->b; } + + /* XXX: arbitrary limit */ + if (LC_LUMINOSITY(col) < 0.01f) + continue; + + lar = (LampRen *)MEM_callocN(sizeof(LampRen), "lampren"); + + create_lamp_oriented(re, lar, orig); + + lar->co[0]= orig->co[0] + xdir[0] * stepx + ydir[0] * stepy; + lar->co[1]= orig->co[1] + xdir[1] * stepx + ydir[1] * stepy; + lar->co[2]= orig->co[2] + xdir[2] * stepx + ydir[2] * stepy; + + lar->r= col[0] * factor; + lar->g= col[1] * factor; + lar->b= col[2] * factor; lar->energy= orig->energy * factor; #ifdef LIGHTCUTS_DEBUG - printf("coordinates: %4f %4f %4f\n", lar->co[0], lar->co[1], lar->co[2]); + //printf("coordinates: %4f %4f %4f\n", lar->co[0], lar->co[1], lar->co[2]); #endif BLI_addtail(&re->lampren, lar); @@ -879,7 +889,7 @@ BLI_timestr(lcd->tree_creation_time, tree_time_str); printf("Tree creation time: %12s\n", tree_time_str); - lcd->cut_nodes_size= (lcd->max_lights * 2 + 1); + l
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15576] branches/apricot/source: Apricot: GLSL
Revision: 15576 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15576 Author: blendix Date: 2008-07-15 01:26:38 +0200 (Tue, 15 Jul 2008) Log Message: --- Apricot: GLSL = * Added options to disable lights, shaders, shadows, ramps, nodes and textures other than col/alpha for GLSL, in the Game menu. * These have python access too to switch them in game, but it doesn't work correct yet with display lists enabled. * Fix issue with light lagging behind, debug stats drawing in wrong color, and a number of other small fixes. Modified Paths: -- branches/apricot/source/blender/blenkernel/BKE_global.h branches/apricot/source/blender/gpu/GPU_material.h branches/apricot/source/blender/gpu/intern/gpu_codegen.c branches/apricot/source/blender/gpu/intern/gpu_codegen.h branches/apricot/source/blender/gpu/intern/gpu_extensions.c branches/apricot/source/blender/gpu/intern/gpu_material.c branches/apricot/source/blender/gpu/intern/gpu_shader_material.glsl branches/apricot/source/blender/gpu/intern/gpu_shader_material.glsl.c branches/apricot/source/blender/python/SConscript branches/apricot/source/blender/python/api2_2x/Blender.c branches/apricot/source/blender/src/drawobject.c branches/apricot/source/blender/src/header_info.c branches/apricot/source/blender/src/space.c branches/apricot/source/gameengine/Converter/BL_BlenderDataConversion.cpp branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp branches/apricot/source/gameengine/Ketsji/BL_BlenderShader.cpp branches/apricot/source/gameengine/Ketsji/BL_BlenderShader.h branches/apricot/source/gameengine/Ketsji/KX_BlenderMaterial.cpp branches/apricot/source/gameengine/Ketsji/KX_BlenderMaterial.h branches/apricot/source/gameengine/Ketsji/KX_Light.cpp branches/apricot/source/gameengine/Ketsji/KX_Light.h branches/apricot/source/gameengine/Ketsji/KX_Scene.cpp branches/apricot/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp Modified: branches/apricot/source/blender/blenkernel/BKE_global.h === --- branches/apricot/source/blender/blenkernel/BKE_global.h 2008-07-14 22:23:39 UTC (rev 15575) +++ branches/apricot/source/blender/blenkernel/BKE_global.h 2008-07-14 23:26:38 UTC (rev 15576) @@ -218,9 +218,15 @@ #define G_FILE_NO_UI(1 << 10) #define G_FILE_GAME_TO_IPO (1 << 11) #define G_FILE_GAME_MAT (1 << 12) -#define G_FILE_DIAPLAY_LISTS(1 << 13) +#define G_FILE_DISPLAY_LISTS(1 << 13) #define G_FILE_SHOW_PHYSICS (1 << 14) #define G_FILE_GAME_MAT_GLSL(1 << 15) +#define G_FILE_GLSL_NO_LIGHTS (1 << 16) +#define G_FILE_GLSL_NO_SHADERS (1 << 17) +#define G_FILE_GLSL_NO_SHADOWS (1 << 18) +#define G_FILE_GLSL_NO_RAMPS(1 << 19) +#define G_FILE_GLSL_NO_NODES(1 << 20) +#define G_FILE_GLSL_NO_EXTRA_TEX (1 << 21) /* G.windowstate */ #define G_WINDOWSTATE_USERDEF 0 Modified: branches/apricot/source/blender/gpu/GPU_material.h === --- branches/apricot/source/blender/gpu/GPU_material.h 2008-07-14 22:23:39 UTC (rev 15575) +++ branches/apricot/source/blender/gpu/GPU_material.h 2008-07-14 23:26:38 UTC (rev 15576) @@ -44,6 +44,7 @@ struct Lamp; struct bNode; struct LinkNode; +struct Scene; struct GPUVertexAttribs; struct GPUNode; struct GPUNodeLink; @@ -108,9 +109,11 @@ /* High level functions to create and use GPU materials */ -int GPU_material_from_blender(struct Material *ma); +int GPU_material_from_blender(struct Scene *scene, struct Material *ma); void GPU_material_free(GPUMaterial *material); +void GPU_materials_free(); + void GPU_material_bind(GPUMaterial *material, int lay); void GPU_material_bind_uniforms(GPUMaterial *material, float obmat[][4], float viewmat[][4], float viewinv[][4]); void GPU_material_unbind(GPUMaterial *material); Modified: branches/apricot/source/blender/gpu/intern/gpu_codegen.c === --- branches/apricot/source/blender/gpu/intern/gpu_codegen.c2008-07-14 22:23:39 UTC (rev 15575) +++ branches/apricot/source/blender/gpu/intern/gpu_codegen.c2008-07-14 23:26:38 UTC (rev 15576) @@ -803,22 +803,34 @@ if (!shader) return; - /* create textures first, otherwise messes up multitexture state for -* following textures*/ - for (input=inputs->first; input; input=input->next) + GPU_shader_bind(shader); + + /* now bind the textures */ + for (input=inputs->first; input; input=input->next) { if (input->ima) input->tex = GPU_texture_from_blender(input->ima, input->iuser); - GPU_shader_bind(shader); - - /* pass dyn
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15577] trunk/blender/source/blender/src/ transform_conversions.c: Bugfix:
Revision: 15577 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15577 Author: aligorith Date: 2008-07-15 01:49:17 +0200 (Tue, 15 Jul 2008) Log Message: --- Bugfix: My recent commit in transform code messed up Auto-IK. Modified Paths: -- trunk/blender/source/blender/src/transform_conversions.c Modified: trunk/blender/source/blender/src/transform_conversions.c === --- trunk/blender/source/blender/src/transform_conversions.c2008-07-14 23:26:38 UTC (rev 15576) +++ trunk/blender/source/blender/src/transform_conversions.c2008-07-14 23:49:17 UTC (rev 15577) @@ -3623,7 +3623,7 @@ } } } - else if (t->spacetype == SPACE_ACTION) { + if (t->spacetype == SPACE_ACTION) { void *data; short datatype; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15578] branches/soc-2008-mxcurioni: soc-2008-mxcurioni: Reimplemented the Freestyle Python API' s files to be correctly used as classes and not submo
Revision: 15578 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15578 Author: mxcurioni Date: 2008-07-15 03:07:19 +0200 (Tue, 15 Jul 2008) Log Message: --- soc-2008-mxcurioni: Reimplemented the Freestyle Python API's files to be correctly used as classes and not submodules. Added and integrated object lifecycle functions (__new__, __alloc__, __repr__) for the previous classes: BinaryPredicate0D, BinaryPredicate1D, Id, Interface0D, Interface1D. All of these classes were tested within Blender's Python interpreter with simple test cases and their getter/setters were corrected. Interface0DIterator was modified to allow BPy_Interface1D to be instantiated: verticesBegin(), verticesEnd(), pointsBegin(float) and pointsEnd(float) are not pure virtual functions anymore. If they are called directly from BPy_Interface1D (instead of its subclasses), an error message is displayed. Modified Paths: -- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.h branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate1D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate1D.h branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Convert.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Convert.h branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Freestyle.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Id.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Id.h branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface0D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface0D.h branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface1D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface1D.h branches/soc-2008-mxcurioni/source/blender/freestyle/intern/view_map/Interface1D.h Property Changed: branches/soc-2008-mxcurioni/extern/ffmpeg/ branches/soc-2008-mxcurioni/source/blender/freestyle/style_modules/ Property changes on: branches/soc-2008-mxcurioni/extern/ffmpeg ___ Name: svn:ignore + *.pc Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp === --- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp 2008-07-14 23:49:17 UTC (rev 15577) +++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp 2008-07-15 01:07:19 UTC (rev 15578) @@ -9,18 +9,22 @@ /// +/*--- Python API function prototypes for BinaryPredicate0D instance ---*/ +static PyObject * BinaryPredicate0D___new__(PyTypeObject *type, PyObject *args, PyObject *kwds); +static void BinaryPredicate0D___dealloc__(BPy_BinaryPredicate0D *self); +static PyObject * BinaryPredicate0D___repr__(BPy_BinaryPredicate0D *self); -/*---Python API function prototypes for the BinaryPredicate0D module--*/ -//static PyObject *Freestyle_testOutput( BPy_Freestyle * self ); -/*---BinaryPredicate0D module doc strings-*/ -static char M_BinaryPredicate0D_doc[] = "The Blender.Freestyle.BinaryPredicate0D submodule"; -/*--BinaryPredicate0D module method def*/ -struct PyMethodDef M_BinaryPredicate0D_methods[] = { -// {"testOutput", ( PyCFunction ) Freestyle_testOutput, METH_NOARGS, "() - Return Curve Data name"}, +static PyObject * BinaryPredicate0D_getName( BPy_BinaryPredicate0D *self, PyObject *args); +static PyObject * BinaryPredicate0D___call__( BPy_BinaryPredicate0D *self, PyObject *args); + +/*--BinaryPredicate0D instance definitions */ +static PyMethodDef BPy_BinaryPredicate0D_methods[] = { + {"getName", ( PyCFunction ) BinaryPredicate0D_getName, METH_NOARGS, "( )Returns the string of the name of the binary predicate."}, + {"__call__", ( PyCFunction ) BinaryPredicate0D___call__, METH_VARARGS, "BinaryPredicate0D(Interface0D, Interface0D ). Must be overloaded by inherited classes. It evaluates a relation between two Interface0D." }, {NULL, NULL, 0, NULL} }; -/*---BPy_Freestyle method def--*/ +/*---BPy_BinaryPredicate0D type definition --*/ PyTypeObject BinaryPredicate0D_Type = { PyOb
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15579] trunk/blender/source/blender/src/ buttons_scene.c: Fix segfault in the Sequence.
Revision: 15579 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15579 Author: bdiego Date: 2008-07-15 03:23:56 +0200 (Tue, 15 Jul 2008) Log Message: --- Fix segfault in the Sequence. If you enable the Proxy and Custom Dir options and later disable the Proxy (but not the Custom Dir options), Blender crash every time that you try select the strip, because the proxy don't exist anymore. The solution: only draw the Custom Dir button if the Proxy option is enable. Modified Paths: -- trunk/blender/source/blender/src/buttons_scene.c Modified: trunk/blender/source/blender/src/buttons_scene.c === --- trunk/blender/source/blender/src/buttons_scene.c2008-07-15 01:07:19 UTC (rev 15578) +++ trunk/blender/source/blender/src/buttons_scene.c2008-07-15 01:23:56 UTC (rev 15579) @@ -1180,18 +1180,18 @@ 130,140,120,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Use a custom directory to store data"); - } - if (last_seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) { - uiDefIconBut(block, BUT, B_SEQ_SEL_PROXY_DIR, -ICON_FILESEL, 10, 120, 20, 20, 0, 0, 0, 0, 0, -"Select the directory/name for " -"the proxy storage"); + if (last_seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) { + uiDefIconBut(block, BUT, B_SEQ_SEL_PROXY_DIR, +ICON_FILESEL, 10, 120, 20, 20, 0, 0, 0, 0, 0, +"Select the directory/name for " +"the proxy storage"); - uiDefBut(block, TEX, -B_SEQ_BUT_RELOAD, "Dir: ", -30,120,220,20, last_seq->strip->proxy->dir, -0.0, 160.0, 100, 0, ""); + uiDefBut(block, TEX, +B_SEQ_BUT_RELOAD, "Dir: ", +30,120,220,20, last_seq->strip->proxy->dir, +0.0, 160.0, 100, 0, ""); + } } if (last_seq->flag & SEQ_USE_PROXY) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15580] branches/soc-2007-joeedh/source/ blender: Texture map evaluation support now pretty much works.
Revision: 15580 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15580 Author: joeedh Date: 2008-07-15 04:06:05 +0200 (Tue, 15 Jul 2008) Log Message: --- Texture map evaluation support now pretty much works. YAY! finally! There may be other things in this commit, not sure, been trying to get this to work for a long time. with this working, a merge with trunk may finally come to pass. though I'll be moving in the next month, so who knows. Modified Paths: -- branches/soc-2007-joeedh/source/blender/blenkernel/BKE_dsm.h branches/soc-2007-joeedh/source/blender/blenkernel/BKE_tile.h branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c branches/soc-2007-joeedh/source/blender/render/intern/include/render_types.h branches/soc-2007-joeedh/source/blender/render/intern/source/convertblender.c branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c branches/soc-2007-joeedh/source/blender/render/intern/source/envmap.c branches/soc-2007-joeedh/source/blender/render/intern/source/renderdatabase.c branches/soc-2007-joeedh/source/blender/render/intern/source/shadbuf.c branches/soc-2007-joeedh/source/blender/render/intern/source/shadeoutput.c Modified: branches/soc-2007-joeedh/source/blender/blenkernel/BKE_dsm.h === --- branches/soc-2007-joeedh/source/blender/blenkernel/BKE_dsm.h 2008-07-15 01:23:56 UTC (rev 15579) +++ branches/soc-2007-joeedh/source/blender/blenkernel/BKE_dsm.h 2008-07-15 02:06:05 UTC (rev 15580) @@ -105,6 +105,10 @@ #define DSM_SAMPLEMERGE_LIMIT (0x7FFF) //2000 +#define DSM_LINEAR 0 +#define DSM_SOFT 0 +//#define DOQMCDEBUG + /*little bit smaller memarena buffer size for the final diced 32x32 tiles*/ #define DSM_TILE_FINALMEMARENASIZE (1<<16) Modified: branches/soc-2007-joeedh/source/blender/blenkernel/BKE_tile.h === --- branches/soc-2007-joeedh/source/blender/blenkernel/BKE_tile.h 2008-07-15 01:23:56 UTC (rev 15579) +++ branches/soc-2007-joeedh/source/blender/blenkernel/BKE_tile.h 2008-07-15 02:06:05 UTC (rev 15580) @@ -288,6 +288,6 @@ /*a non-fatal warning assertion. it just prints into the console.*/ #define BASSERT(eval) if (!(eval)) printf("\nassert \"%s\" in file:\n%s\n on line %d failed.\n\n", #eval, __FILE__, __LINE__) -#define BASSERT(eval) +//#define BASSERT(eval) #endif /* BKE_TILE_H */ Modified: branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c === --- branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c 2008-07-15 01:23:56 UTC (rev 15579) +++ branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c 2008-07-15 02:06:05 UTC (rev 15580) @@ -176,19 +176,8 @@ TCS_Tile *tile; int tx=0, ty=0; - BASSERT(vbuf); - for (ty=0; tygetSizeY(buf)/buf->getTileSizeY(buf); ty++) { - for (tx=0; txgetSizeX(buf)/buf->getTileSizeX(buf); tx++) { - tile = buf->getTile(buf, tx, ty, 0); - if (!tile->pool) { - printf("tile lacks pool!\n"); - continue; - } - BASSERT(tile); - if (tile->is_compressed && ! tile->is_written) BLI_remlink(&tile->pool->compressed_tiles, tile); - else if (tile->is_compressed == 0 && tile->is_written == 0) BLI_remlink(&tile->pool->tiles, tile); - } - } + BASSERT(buf); + buf->freeBuffer(buf); MEM_freeN(buf); } Modified: branches/soc-2007-joeedh/source/blender/render/intern/include/render_types.h === --- branches/soc-2007-joeedh/source/blender/render/intern/include/render_types.h 2008-07-15 01:23:56 UTC (rev 15579) +++ branches/soc-2007-joeedh/source/blender/render/intern/include/render_types.h 2008-07-15 02:06:05 UTC (rev 15580) @@ -232,8 +232,10 @@ float persmat[4][4]; float viewmat[4][4]; float winmat[4][4]; + float viewmat_uncorrected[4][4]; float *jit, *weight; float d, clipend, clipsta, pixsize, soft; + float spotsize; int co[3]; int size, bias; ListBase buffers; @@ -416,8 +418,10 @@ float r, g, b, k; float energy, haint; int lay; - float spotsi,spotbl; - float vec[3]; + + /*the cosine of the spot size angle*/ + float spotsi; + float spotbl, vec[3]; float xsp, ysp, distkw, inpr; float halokw, halo; Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/convertblender.c =
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15581] branches/soc-2008-mxcurioni/source /blender/freestyle: soc-2008-mxcurioni: reimplemented the initialization/ allocation for base classes.
Revision: 15581 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15581 Author: mxcurioni Date: 2008-07-15 07:33:12 +0200 (Tue, 15 Jul 2008) Log Message: --- soc-2008-mxcurioni: reimplemented the initialization/allocation for base classes. The Python object type tp_new slot is now set to PyType_GenericNew, instead of the former custom functions. As a note, by default, Python does not set this slot: it is therefore mandatory for the base classes. For children classes, only __init__ is needed. To make our base classes subclasses, the Py_TPFLAGS_BASETYPE flag was added to the object type tp_flags slot. Finally, I began to implement CurvePoint, descendant of Interface0D. This commit allowed me to verify that my SWIG replacement method works: interfaces are well taken into account by children. For a test, use the following code: import Blender from Blender import Freestyle from Blender.Freestyle import * print Interface0D() print CurvePoint() The __repr__ method is only implemented in Interface0D: PyObject * Interface0D___repr__(BPy_Interface0D* self) { return PyString_FromFormat("type: %s - address: %p", self->if0D->getExactTypeName().c_str(), self->if0D );} and the result is of the form: type: Interface0D - address: 0x18e5ccc0 type: CurvePoint - address: 0x18e473f0 As you can see, the correct getExactTypeName of the class is called. Modified Paths: -- branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate1D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Freestyle.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Id.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface0D/CurvePoint.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface0D.cpp branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface1D.cpp Added Paths: --- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Interface0D/CurvePoint.h Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript === --- branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript 2008-07-15 02:06:05 UTC (rev 15580) +++ branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript 2008-07-15 05:33:12 UTC (rev 15581) @@ -66,6 +66,7 @@ prefix + '/BinaryPredicate1D.cpp', prefix + '/Id.cpp', prefix + '/Interface0D.cpp', + prefix + '/Interface0D/CurvePoint.cpp', prefix + '/Interface1D.cpp' ] Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp === --- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp 2008-07-15 02:06:05 UTC (rev 15580) +++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BinaryPredicate0D.cpp 2008-07-15 05:33:12 UTC (rev 15581) @@ -10,7 +10,7 @@ /// /*--- Python API function prototypes for BinaryPredicate0D instance ---*/ -static PyObject * BinaryPredicate0D___new__(PyTypeObject *type, PyObject *args, PyObject *kwds); +static int BinaryPredicate0D___init__(BPy_BinaryPredicate0D *self, PyObject *args, PyObject *kwds); static void BinaryPredicate0D___dealloc__(BPy_BinaryPredicate0D *self); static PyObject * BinaryPredicate0D___repr__(BPy_BinaryPredicate0D *self); @@ -59,7 +59,7 @@ NULL, /* PyBufferProcs *tp_as_buffer; */ /*** Flags to define presence of optional/expanded features ***/ - Py_TPFLAGS_DEFAULT, /* long tp_flags; */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* long tp_flags; */ NULL, /* char *tp_doc; Documentation string */ /*** Assigned meaning in release 2.0 ***/ @@ -90,9 +90,9 @@ NULL, /* descrgetfunc tp_descr_get; */ NULL, /* descrsetfunc tp_descr_set; */ 0, /* long tp_dictoffset; */ - NULL, /* initproc tp_init; */ + (initproc)BinaryPredicate0D___init__, /* initproc tp_init; */ NULL,