Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 4817 / 5574

December 6, 2008, 16:22 (GMT)
2.5

Mainwindow had wrong subwindow rect definition.

December 6, 2008, 13:42 (GMT)
* Patch from Michael Fox to set the normal angle (was fixed at 80 before)
* 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

Revision 45cc519 by Joshua Leung
December 6, 2008, 10:25 (GMT)
View2D - Bugfix for grid calculation for 'frames'

Grid calculations for frames and seconds were mixed up, meaning that grid was often off.
Revision afb45ae by Joshua Leung
December 6, 2008, 09:25 (GMT)
View2D: Code cleanup - UI_view2d_status_enforce()

This commit *should* bring UI_view2d_status_enforce() (formerly known in pre 2.5 as test_view2d) under control again.
I've attempted to reduce the amount of duplicated code here, so hopefully there won't be any nasty bugs that will show up in some of the other views when they are ported.

Summary of changes:
* Restored V2D_KEEPZOOM flag which I had previously removed, having misunderstood its function.
* Fixed bugs with resizing Outliner window
* Outliner width is now columns + 1 again. Documented reasons for this (otherwise, stuff gets covered by scrollbars, but we cannot see it)
December 6, 2008, 01:21 (GMT)
WIP fixes, still need to tidy up more.
* 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)
December 5, 2008, 23:13 (GMT)
BGE bug #17731 fixed: No sleeping Button disables dynamics of an object if it's parented+unparented
December 5, 2008, 18:41 (GMT)
* seems like cur and tot were mixed up, thus preventing panning from working
December 5, 2008, 13:00 (GMT)
Use MEM_*alloc for some of the main arrays rather then MemArena (was waisting too much memory)
December 5, 2008, 11:03 (GMT)
corrected problems using different filters: Freestyle pixels were being fetched outside of the render result rect. Corrected with a test to make sure that the used pixels are valid.
Revision 1b9eabe by Matt Ebb
December 5, 2008, 04:06 (GMT)
* Added other noise basis types to point density turbulence

* Fixed a bug in 'ignoring volumes in AAO'
Revision 5e60414 by Joshua Leung
December 5, 2008, 02:03 (GMT)
View2D API: Cleaning up API + New Methods

* Cleaned up flags defined for View2D, and added some for defining the alignment of the view's data in the 'tot' rect (i.e. which quadrant(s) the view data is allowed to reside in).

* These flags are used in the new UI_view2d_totRect_set() function, which sets the new size of the 'tot' rect (i.e. the maximum viewable area). Currently, is only used for Outliner, but channel-lists also require this.

* Added API method to reset 'cur' (current viewing region) to 'default' viewing region - UI_view2d_curRect_reset(). Currently, 'keepzoom' is not respected. I'll check on whether this is needed when I recode UI_view2d_status_enforce(), which is badly in need of a cleanup.
December 4, 2008, 22:47 (GMT)
Reverted the changes (in revisions 17517-17519) for the antialiasing based on OpenGL accumulation buffer.
December 4, 2008, 20:34 (GMT)
* silence a warning
December 4, 2008, 20:28 (GMT)
* rename some view2d defines to be clearer and more in line with the rest of view2d defines.
December 4, 2008, 16:07 (GMT)
VideoTexture: new ImageMirror class for easy mirror (and portal) creation

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
December 4, 2008, 10:57 (GMT)
fixed OSA and tile rendering problems
December 4, 2008, 09:37 (GMT)
Small fix for repeat-last-operator:

- Context in WM wasn't set for regions yet, done now. So repeat works on
per-region ops too.
- Debug print was printing the wrong repeated op.
(repeat-op could show menu naming the op to repeat)

Revision cb92e78 by Joshua Leung
December 4, 2008, 09:33 (GMT)
View2D: Scrollbars will now pan the view when MMB-dragged on
Revision 6fe9a03 by Joshua Leung
December 4, 2008, 05:37 (GMT)
View2D: Scrollbar tweaks

* Added back vertical scale markings for vertical scrollbars. Currently untested (until IPO Editor can be put back in). Also, there was a special exception for the Sequencer, which will need to be checked when the time comes too.

* Fixed the display of frame numbers in scrollbars. Was caused by error in using an int, where a float was required (this is one place MSVC gives better warnings than GCC).

* Outliner horizontal scrollbar now displays a more useful range. The previous range was based on screen width, not width of content.

* Outliner horizontal scrollbar now draws with bevel-highlight line again. Was missed out in a previous commit.

* Added simple toggle Frames/Seconds operator to TimeLine to test if the View2D code is working right for this. This uses the same hotkey (TKEY) as it's counterpart (with a menu for input) did in previous incarnations of Blender.
Revision efe8ad8 by Joshua Leung
December 4, 2008, 02:01 (GMT)
View2D: Units on Scrollers (XAxis only)

Added back units on scrollbars for anim editors (i.e. Timeline). Vertical scrollbars have yet to be done, but there's no way to test yet.

Using markers and current frame indicator (and value) as guides, it is clear that there is still some inaccuracy with the drawing of the grid or the frames/markers are drawn wrong! Will investigate further.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021