Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-12-12minor changesprojection-paintCampbell Barton
2008-12-12view.cCampbell Barton
* Renamed view_autodist to view_mouse_depth * Accept args for mouse location and pixel distance around the hotspot used to lookup the depth. * removed persp(PERSP_VIEW) within this function, since it didnt set the view back. imagepaint.c * normal falloff now works as Brecht suggests. Normal limit of 80 will blend between 80 and 85deg, 70deg limit blends between 70-80deg. * convert normal falloff to radians on initializing rather then on every comparison. * Ctrl+Click setting the cursor in its own function. * projection painting wasnt accounting for an exception for too high pressure values on first touch in windows for some tablets. * removed grease pencil benchmark function
2008-12-10merge from trunk - r17500 to HEADCampbell Barton
2008-12-10move the paint buttons from the image view and buttons window into one function.Campbell Barton
2008-12-10tweaks to brush falloff and alpha, giving nicer looking strokes.Campbell Barton
2008-12-09bugfix - [#18063] Projection paint branch: draw tool "drops out" when model ↵Campbell Barton
extends beyond view borders reported by michael williamson. Was caused by point inside triangle test using an error limit that didnt adjust for different size triangles.
2008-12-09ImageMirror: add clip attribute to limit clipping distance of mirror renderingBenoit Bolsee
2008-12-09* tablet pressure changing opacity while painting didnt workCampbell Barton
* pixels with <= the current opacity are not painted onto, speeds up painting especially with low spacing. (only when airbrush is disabled) * use qsort rather then own crufty sorting function * grouped projection painting functions together.
2008-12-09Fix mistake in last commit.. it's pic + 1 ;)Diego Borghetti
2008-12-09patch from Mitchell StokesCampbell Barton
#18045] [patch] A patch that exposes the rest of the motion functions of KX_GameObject to Python. *applyForce => setForce *applyTorque => setTorque *applyRotation => setDRot *applyMovement => setDLoc
2008-12-09Commit patch [#18057] by Dalai Felinto (dfelinto)Diego Borghetti
This implement the option of playback an animation using the step value in the render panel (or -a -j). Tested here and work fine, about the ffmpeg/avi bug it's my fault, I don't think in "step + video format", so now it's in my todo-list :)
2008-12-09== Python Space Handlers ==Willian Padovani Germano
- Old feature request: now space handlers can report release events, too. For that a new space handler type was added, here's the header for it: # SPACEHANDLER.VIEW3D.EVENT.ALL These scripts report both "presses and releases". For release events, Blender.eventValue is zero and Blender.link == Blender.SpaceHandlers.VIEW3D_EVENT_RELEASE. Check the API_related bpy doc for more info. - Bug fix: left mouse clicks could be reported twice. Important: for both the feature and the fix, to make the code nicer and to let space handlers become available in more situations, I moved the check for space handlers in space.c. Now it happens before checks for grease pencil, sculpt and left/right mouse button swapping. If this causes any problem (it shouldn't), please report. PS: Thanks to Steven Truppe, who asked for this and even sent me a patch, but to preserve compatibility with existing event space handler scripts I did things in a different way.
2008-12-07* layer mask (similar to the gimp), uses a UV layer's image as mask for ↵Campbell Barton
painting. * cloning between layers was broken * Added buttons for selecting the souce clone/mask layer in the UV layer list.
2008-12-07split code for applying each paint tool into its own function.Campbell Barton
2008-12-06* added an option not to use projection painting (use existing 3D paint)Campbell Barton
* further tweak limits to get rid of some face clipping problems.
2008-12-06* fixed crash when a mesh with no UVs was painted.Campbell Barton
* fixed more bugs in face clipping, clip_line wasnt working when the line was horiz/vertical. unning exactly on the clipping rectangle bounds. * testing if a point was inside a triangle didnt work if the point was touching the triangles edge, added IsectPT2Df_limit(...) for this rather then using 3 point/line intersection checks. ...Cant find anymore bugs in face clipping now :)
2008-12-06* Patch from Michael Fox to set the normal angle (was fixed at 80 before)Campbell Barton
* Fixed another face clipping bug (some artifacts still when using screen aligned faces) * Removed Soften and Warp buttons on the panit panel since they are not used for projection painting * added do_versions to initialize bleed and normal values
2008-12-06WIP fixes, still need to tidy up more.Campbell Barton
* fix from last commit, threaded memarena wasnt used currectly in one case. (crashing blender) * add a remove doubles and point on line test to face poly clipping function (fixes some cases where buckets are aligned with faces)
2008-12-06BGE bug #17731 fixed: No sleeping Button disables dynamics of an object if ↵Benoit Bolsee
it's parented+unparented
2008-12-05Use MEM_*alloc for some of the main arrays rather then MemArena (was ↵Campbell Barton
waisting too much memory)
2008-12-04VideoTexture: new ImageMirror class for easy mirror (and portal) creationBenoit Bolsee
The new class VideoTexture.ImageMirror() is available to perform automatic mirror rendering. Constructor: VideoTexture.ImageMirror(scene,observer,mirror,material) scene: reference to the scene that will be rendered. Both observer and mirror must be part of that scene. observer: reference to a game object used as view point for mirror rendering: the scene will be rendered through the mirror as if the active camera was at the observer location. Usually the observer is the active camera but you can use any game obejct. mirror: reference to the mesh object holding the mirror. material: material ID of the mirror texture as returned by VideoTexture.materialID(). The mirror is formed by the polygons mapped to that material. There are no specific methods or attributes. ImageMirror inherits all methods and attributes from ImageRender. You must refresh the parent VideoTexture.Texture object regularly to update the mirror rendering. Guidelines on how to create a working mirror: - Use a texture that is specific to the mirror so that the mirror rendering only appears on the mirror. - The mirror must be planar; the algorithm works well only for planar or quasi planar mirror. For spherical mirror, you will get better results with ImageRender and a camera at the center of the mirror. ImageMirror automatically computes the mirror orientation and position. The mirror doesn't need to be rectangular, it can be circular or take any form provided it is planar. - The mirror up direction must be along the Z axis in local mesh coordinates. If the mirror is not vertical, ImageMirror will compute the up direction as being the projection of the Z axis on the mirror plane. - UV mapping must be set right to get correct mirror rendering: - make a planar projection of the mirror polygons (Unwrap or projection from view) - eventually rotate the projection so that UV up direction corresponds to the mesh Z axis - scale the projection so that the extreme points touch the border of the texture - flip the UV projection horizontally (scale -1 on X axis). This is needed because the mirror texture is rendered from the back of the mirror and thus is reversed from the view point of the observer. Horizontal flip in the UV map restores the correct orientation. Besides these simple rules, the mirror rendering is completely automatic. In particular, you don't need to allocate a camera for the rendering, ImageMirror creates dynamically a camera for that. The reflection is correct even on large angles. The mirror can be a dynamic and moving object, the algorithm always computes the correct camera position based on observer relative position. You don't have to worry about mirror position in the scene: the algorithm automatically computes the camera frustum so that any object behind the mirror is not rendered. Warnings: - observer and mirror are references to game objects. ImageMirror keeps a pointer to them but does not increment the reference count. You must ensure that these game objects are not deleted as long as you refresh() the ImageMirror object. You must release the ImageMirror object before you delete the game objects. To release the ImageMirror object (normally stored in GameLogic), just assign it to None. - Mirror rendering is automatically skipped when the observer is behind the mirror but it is not disabled when the mirror is out of sight of the observer. You should only refresh the mirror when you know that the observer is likely to see it. For example, no need to refresh a car inner mirror when the player is not in the car. Example: contr = GameLogic.getCurrentController() # object holding the mirror mirror = contr.getOwner() scene = GameLogic.getCurrentScene() # observer will be the active camere camera = scene.getObjectList()['OBCamera'] matID = VideoTexture.materialID(mirror, 'IMmirror.png') GameLogic.mirror = VideoTexture.Texture(mirror, matID) GameLogic.mirror.source = VideoTexture.ImageMirror(scene,camera,mirror,matID) # to render the mirror, just call GameLogic.mirror.refresh(True) on each frame. You can download a demo game (with a video file) here: http://home.scarlet.be/~tsi46445/blender/VideoTextureDemo.zip For those who have already downloaded the demo, you can just update the blend file: http://home.scarlet.be/~tsi46445/blender/MirrorTextureDemo.blend
2008-12-03* added uvco_to_wrapped_pxco to get the pixel x/y from a UV that could be ↵Campbell Barton
outside 0-1 range. * use 80deg rather then 90 for the "Normal" painting option, since painting faces that are very close to 90d to the view gives some artifacts. * Brecht modified the Barycentric weights function to use a signed area. so BarycentricWeightsSimplePersp2f and BarycentricWeightsSimple2f these funcs are not needed anymore. 2 bugs with seams fixed * triangle faces seams were not being filled correctly - causing visible seams * the pretend 3D location for seam pixels was too close to the face edge - causing some pixels to be occluded by the adjacent face.
2008-12-03* remove warningsCampbell Barton
* style fits with blenders more * use rctf and rcti and rctf types rather then float[4] * some loops were confusing, use for loops rather then while or do/while
2008-12-03missed saving a small changeCampbell Barton
2008-12-03fix for [#18040] FBX writes incorrect relative paths. Campbell Barton
http://projects.blender.org/tracker/index.php?func=detail&aid=18040&group_id=9&atid=125
2008-12-03Added Blender.sys.relpath(path, start='//')Campbell Barton
similar to os.path.relpath but uses blendfile path rather then the current working directory. Also use python exceptions rather then providing our own ones.
2008-12-03added a function to resolve case insensitive paths in BPySys and an option ↵Campbell Barton
to use it in BPyImage - Useful when loading files with saved in windows on a *nix system.
2008-11-29Changed vector math to use library functions.Robin Allen
2008-11-27minor changes, (some comments and less warnings)Campbell Barton
2008-11-26VideoTexture: new ImageRender class for Render To TextureBenoit Bolsee
The new class VideoTexture.ImageRender() is available to perform render to texture in the GE. Constructor: VideoTexture.ImageRender(scene,cam) cam : camera object that will be used for the render. It must be an inactive camera. scene: reference to the scene that will be rendered. The camera must be part of that scene. Returns an object that can be used as a source of a VideoTexture.Texture object Methods: none Attributes: background: 4-tuple representing the background color of the rendering as RGBA color components, each component being an integer between 0 and 255. Default value = [0,0,255,255] (=saturated blue) Note: athough the alpha component can be specified, it is not supported at the moment, the alpha channel of the rendered texture will always be 255. You can however introduce an alpha channel by appending a FilterBlueScreen() filter, it will set the alpha to 0 (transparent) on all pixels that were not rendered. capsize: 2-tuple representing the size of the render area as [x,y] number of pixels. Default value = largest rectangle with power of 2 dimensions that fits in the canvas You may want to reduce the render area to increase performance. For example, a render area of [256,128] is probably sufficient to implement a car inner mirror. For best performance, use power of 2 dimensions and don't set any filter: this allows direct transfer between the GPU frame buffer and texture memory without going through the host. alpha: Boolean indicating if the render alpha channel should be copied to the texture. Default value: False Experimental, do not use. whole: Boolean indicating if the entire canvas should be used for the rendering. Default value: False Note: There is no reason to set this attribute to True: the rendering will in any case be scaled down to the largest rectangle with power of 2 dimensions before transfering to the texture. Attributes inherited from the ImageBase class: image : image binary data, read-only size : [x,y] size of the texture, read-only scale : set to True for fast scale down in case the render area dimensions are not power of 2 flip : set to True for vertical flip. filter: set a post-processing filter on the render. Notes: * Aspect Ratio For consistent results in Blender and Blenderplayer, the same aspect ratio used by Blender to draw the camera viewport (Scene(F10)->Format tab->Size X/Size Y) is also used during the rendering. You can control the portion of the scene that will be rendered by "looking through the camera": the zone inside the outer dotted rectangle will be rendered to the texture. In order to reproduce the scene without X/Y distortion, you must apply the texture on an object or portion of object that has the same aspect ratio. * Order of rendering The rendereing is performed when you call the refresh() method of the parent Texture object. This happens outside the normal frame rendering and will have no effect on it. However, if you want to use ImageViewport and ImageRender at the same time, be sure to refresh the viewport texture before the render texture because the latter will destroy the frame buffer that is used by the former to update the texture. * Scene status The meshes are not updated during the render to texture: the rendered texture is one frame late to the rendered frame with regards to mesh deformation. * Example: cont = GameLogic.getCurrentController() # object that receives the texture obj = contr.getOwner() scene = GameLogic.getCurrentScene() # camera used for the render tvcam = scene.getObjectList()['OBtvcam'] # assume obj has some faces UV assigned to tv.png matID = VideoTexture.materialID(obj, 'IMtv.png') GameLogic.tv = VideoTexture.Texture(obj, matID) GameLogic.tv.source = VideoTexture.ImageRender(scene,tvcam) GameLogic.tv.source.capsize = [256,256] # to render the texture, just call GameLogic.tv.refresh(True) on each frame. You can download a demo game (with a video file) here: http://home.scarlet.be/~tsi46445/blender/VideoTextureDemo.zip For those who have already downloaded the demo, you can just update the blend file: http://home.scarlet.be/~tsi46445/blender/VideoTextureDemo.blend
2008-11-26BGE update: helper functions for VideoTexture render to texture feature.Benoit Bolsee
2008-11-26BGE bug fix: culling algorithm didn't used the correct camera.Benoit Bolsee
2008-11-26MSVC9 project file update for TEX nodesBenoit Bolsee
2008-11-26MSVC9 project file update for blenderplayerBenoit Bolsee
2008-11-262 things:Robin Allen
* Patch #17998 * tex_input_vec now takes 3-vector as first argument (was 4-vector).
2008-11-26* Added a new Timeline menu entry: Playback -> Sync Playback to Frames/Sec. ↵Matt Ebb
It's more convenient and sensible to find this feature, than over in the audio settings (dropping frames in playback is not just for audio!)
2008-11-26* Added 'Particle System' entries as children of particle system modifiers ↵Matt Ebb
in the outliner. Clicking on one activates it and takes you to the object buttons - it's a lot better to see what's going on than a little < 1 Part 5 > that gives very little indication.
2008-11-25 * fix path to openexr on irixStefan Gartner
* added missing define in storage.c
2008-11-25* make sure Bullet is enabled when WITH_BF_BULLET=TrueNathan Letwory
2008-11-25use const where possible and removed some unneeded args (4.3% speedup)Campbell Barton
2008-11-25minor changesCampbell Barton
* less calls to BKE_image_get_ibuf when switching between images * remove thread debug prints * use own pixel blending funcs (IMB_blend_color isnt needed in some cases), slightly faster without this.
2008-11-24patch #8583: Add support for gcc on irixStefan Gartner
to compile blender with gcc on IRIX, IRIX_USE_GCC needs to be set to true in user-def.mk. Other changes related to irix: * compile solid from extern/ * don't build plugins (yet) with "make release" when using gcc (the shell script used assumes MIPSpro is installed) * use statvfs instead of statfs on irix, like done on solaris * use external libs from $(LCGDIR) instead of /usr/freeware * use glew header files from $(LCGDIR)/glew instead of the ones installed on the system (this applies to other platforms as well) * ffmpeg support currently is disabled on irix
2008-11-24backface culling wasnt working as it should in perspective view with the ↵Campbell Barton
"Normal" option enabled.
2008-11-24painting onto faces was broken when the UV's or faces were flipped, ↵Campbell Barton
reversing the order that LSCM and many other tools give.
2008-11-24* changed "Normal" falloff to only fade out at more extreme normalsCampbell Barton
* tooltip was wrong
2008-11-24* brush and airbrush match The Gimp, where the total color applied to a ↵Campbell Barton
pixel during a stroke is limited by the brush opacity. With the airbrush option enabled it will accumulation over the opacity level (as it did before, irrespective of the settings). * float buffer support for all painting operation and undo. * only run brush_sample_tex() for textures brushes. * redraw the brush outline even when nothing is painted.
2008-11-23Only paint in the view clipped area when view clip is enabled (space defined ↵Campbell Barton
by Alt+B).
2008-11-23[#18021] Rotating gets locked to axis after trackball rotate mode is enteredMartin Poirier
Reset transform restriction flags when switching to other transformations while running. Also don't draw constraint if no constraint flag is on (old annoyance).
2008-11-22maximum polyline between clipped rectangle and triangle was 6, but in some ↵Campbell Barton
cases 7 points were set. set the maximum size of the polyline at 8 to be safe.
2008-11-22fix for painting onto faces from a side view in perspective mode, they would ↵Campbell Barton
have jaggie clipping applied that looked bad. The reason for this was with transforming screenspace points outside the face into UV space and when the bucket bounds was enough outside the face. For faces viewed side on, this transformation would be applied incorrectly (a bit like trying to apply a projection matrix to a point behind the view), the buckets UV space coords would be incorrect and the wrong pixels would be initialized for that face. solution is to clip the screenspace face with the bucket before getting the UVs. This should also be a bit faster since the clipped polyline will have a smaller bounding box.