Commit Graph

574 Commits

Author SHA1 Message Date
e448f20db5 Routine purge of compiler warnings. Yet again, they were mostly uninitialised vars. 2007-10-29 05:59:26 +00:00
7718b3d642 render stamp drawing is now done everywhere - (not just when saving
images)
separated stamp metadata and stamp draw functions.
2007-10-28 22:27:07 +00:00
05768a38e5 ==Image Stamp - Patch by GSR==
When using non opaque background, some overlap lines appear
due to filling some pixel lines twice. Before it did not matter
as only opaque bg was allowed, and it even compacted the text
a bit. The fix spreads a bit the lines to overcome the issue.
As a plus no text should touch the top edge ever (slashes did,
for example).

Compare:
http://www.infernal-iceberg.com/blender/stamp-alpha-overlap.png
http://www.infernal-iceberg.com/blender/stamp-alpha-cleanup.png
2007-10-24 08:45:23 +00:00
94dfb616a9 Patch by GSR #7628, I also added alpha for text background.
The list of changes (some are fixes):
- Properly horizontally centered tags in all fields (bug?).
- File area does not have trailing space and has leading "File " at
start instead (probably a bug).
- Small separation between to time related fields, space saving.
- Removed colons, for consistency and space saving again.
- Frame field is zero aligned for higher visual stability.
- Marker name shows a rarer name, "<none>" (using <> is typical for cases
in which there is nothing: <none>, <empty>, <blank>, etc).
- Top area for misc info that can be really long (file, note and render date).
- Bottom area for more constantly changing but short ones (marker, SMPTE,
frame, camera and scene).
- Only render date moves a line (when note field is not used), and frame one
moves if no SMPTE (still in same line, so no big jump), for extra visual
stability (marker is fixed, assuming most people would show frame and or
SMPTE).
- ISO 8601 date format for render date, localization independant.

Comparision images:
http://www.infernal-iceberg.com/blender/stamp-original.png
http://www.infernal-iceberg.com/blender/stamp-cleanup.png
2007-10-23 22:51:50 +00:00
bf68055b93 Compiler warnings silencing - mostly uninitialised vars 2007-10-23 06:24:29 +00:00
969c3e1cf6 change in the include for stamping (image.c needs to call font drawing) 2007-10-21 15:48:09 +00:00
46deddcc62 Image Stamping patch by Diego (and peach request)- stamps image info into metadata and optionally
draws into the
frame.

This patch includes some changes I made...   
* use blenders bitmap fonts (rather then own fonts)
* select font size
* user interface layout changes
* Marker as another image stamp option

Also added some new API calls   
BMF_GetFontHeight(font);
BMF_DrawStringBuf(...);  - so we can draw text into an imbuf's image buffer.
get_frame_marker(frame) - get the last marker from the frame.
IMB_rectfill_area(...) - fill in an image buffer with a rectangle area of color.

TODO - draw stamp info in 3d view, at the moment it just displays in the animation.
2007-10-20 16:17:27 +00:00
aee06ac0d0 added an active face for the mesh editmode and normal mesh - this is needed because the TFace flag was not always easy to access from editmode.
using the last selected face was almost good enough however when selecting verts and edges the last selected face would become inactive and the space image would flicker about too much.
The active face is used for getting the space image at the moment and keeps scripts that use this flag working also.

This has 2 commands to get and set, so the variable is not accessed directly.

all "UV Calculate" scripts work now

last commit crashed when in solid draw mode, it seems subsurf modifier is ignoring the displayMask since MTFACE is available. just made it do a null check for now.

uvcalc_follow_active_coords.py - should be done inC and put in the snap menu.
2007-09-22 17:54:13 +00:00
356ab94373 == imagebrowser ==
Initial commit of imagebrowser in trunk.
BIG COMMIT!

Main changes:
* completely reworked imasel space
* creation and storage of the preview images for materials, textures, world and lamp
* thumbnails of images and movie files when browsing in the file system
* loading previews from external .blend when linking or appending
* thumbnail caching according to the Thumbnail Managing Standard: http://jens.triq.net/thumbnail-spec/
* for now just kept imasel access mostly as old imgbrowser (CTRL+F4, CTRL+F1) a bit hidden still.
* filtering of file types (images, movies, .blend, py,...)
* preliminary managing of bookmarks ('B' button to add, XKEY while bookmark active to delete)

More detailed info which will be updated here: http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser

Places that need special review (and probably fixes):
* BLO_blendhandle_get_previews in readblenentry
* readfile.c: do_version and refactorings of do_library_append
* UI integration

TODO and known issues still:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management still needs some UI work (second scrollbar?), feedback here is welcome!

Credits:
Samir Bharadwaj (samirbharadwaj@yahoo.com) for the icon images.

Many thanks to everyone who gave feedback and helped so far!
2007-09-02 17:25:03 +00:00
ca5c21e180 * updated MSVC projectfiles with SHD_sepcombRGB.c shader nodes.vcproj
* fix for possible double free.
2007-08-30 20:32:43 +00:00
613646b33e This commit is a modified version of patch #6860
It adds read only dds support.  (Writing will come later)

Kent
2007-06-25 19:50:25 +00:00
c71949419e == UV/Image Editor ==
Patch #6570.

This patch adds color and alpha selectors to Image -> "New..." dialog.
2007-05-03 15:10:44 +00:00
afdd54fa37 moved source and text to american spelling
* colour -> color
* centre -> center
* normalise -> normalize
* modelling -> modeling
2007-04-04 13:18:41 +00:00
054c471a04 Bugfix #6419
When adding images, there was no check if image file was a directory.
Result was an Image without name even. Fixed!
2007-03-29 12:42:30 +00:00
8e837d6f86 Fix for bug #5980:
Baked textures not updating in the 3D view. This bug was a side
effect of the image not being marked as loaded after changing
parameters (uv test grid, size) of a generated type image.
2007-02-10 16:59:20 +00:00
c01aaac311 Two in one:
- Bugfix #5714
  New option "Save changed images" didn't respect relative file names

- Bugfix #5621
  New camera (shiftx, shifty) was missing in IpoWindow as animatable option
2007-01-15 12:44:45 +00:00
Chris Want
66643dbf1f I think this might be a safer way of dealing with the non-OpenEXR
compilation of image.c -- Ton: please check.
2006-12-24 20:19:56 +00:00
Chris Want
1e6c007497 Some more duct tape to make sure that blender[player] still builds
when compiled without OpenEXR.
2006-12-24 16:03:31 +00:00
120ac48728 Another Image recode fix: the Composite backdrop option didn't work when
no viewer images was generated before.
2006-12-21 20:03:25 +00:00
af60771eca Fix for threads usage. This solves the hanging 'render baking', cauused
by yesterdays commit.

Now a designater LOCK_IMAGE is used for all image write/read.
2006-12-21 15:44:46 +00:00
edccdf9340 Packing Images fix:
- a 'procedural image' like 'UV Test Grid' now can be directly packed,
  it does ask first for confirming to pack it as PNG
2006-12-21 13:39:02 +00:00
Chris Want
5895c903cd Only include the header openexr_multi.h when WITH_OPENEXR is defined.
This header defines function stubs for builds without OpenEXR.
A quote from openexr_multi.h:

/* ugly... but we only use it on pipeline.c, render module, now */

No longer true! Function definitions should never be in header files,
I say.
2006-12-21 01:16:25 +00:00
e6c8702e7b Game Player links again, added new functions in the stubs
(image.c: prototype fix)
2006-12-20 21:51:08 +00:00
253432bfc7 The Big Image refactor!
Please read:
http://www.blender3d.org/cms/Imaging.834.0.html

Or in short:

- adding MultiLayer Image support
- recoded entire Image API
- better integration of movie/sequence Images

Was a whole load of work... went down for a week to do this. So, will need
a lot of testing! Will be in irc all evening.
2006-12-20 17:57:56 +00:00
2e0084c2d9 IRC reported bug:
When linking a referenced (Library) Image to a texture face, it wasn't
tagged to become saved in file. So you lost data.

Also fixed: tooltip for the "Li" icons was wrong.
2006-11-27 13:00:50 +00:00
6c941bb3e1 Bugfix #5217
Call to refresh Image Icon on load should not be done for background
renders... crashed blender then.
2006-11-13 13:32:52 +00:00
56cd48a5ea Bugfix #5155
Option "Add UV image" didn't set tilesXY to 1. Caused crash or bad opengl
behaviour when tiles option used.
2006-11-01 12:54:29 +00:00
9f77785d7c Coding work while on the trip to london (based on Plumiferos wishlist);
- Icon previews for Images were created always for old files, which made
  browsing (menus) incredible slow. Added a minor change in the flow, so
  icons only get created when the user invokes loading images.
  Andrea; you might check this, probably not al cases are covered yet?

- Compositor: the 'File Output' node now has a min/max frame for which it
  writes files

- Compositor: fixed a very bad bug (even in 2.42a release) that made the
  depsgraph for nodes not work... while editing, only the nodes that change
  should be recalculated, but accidentally all of them were done each time.
2006-10-26 10:13:16 +00:00
6587c3c6ba Some UV/Image window changes:
- A new Save image function, next to the existing Save As.
- Shortcut keys Alt+S, Alt+R, Alt+O and Alt+N for Save, Reload, Open
  and New image respectively, consistent with the text editor window.
- Hide Select and UVs menus when UV editing isn't active.
- Removed duplicate and unused code, also moved some functions.
2006-09-25 22:00:52 +00:00
7639f0890a * Updated the auto-generated UV test image (Image Editor -> Image -> New). The
previous one was ok as a quick fix during orange and showed distortion obviously
but it was kind of extreme, and I'd rather not be blamed for causing blindness
or brain tumours because of it. This pattern is nicer, and still shows
distortion and its location on the map well.
2006-09-25 03:15:58 +00:00
e7d6537f1c Added support for threadsafe MEM_mallocN/MEM_freeN in the guardedalloc
module itself, replacing the special MEM_mallocT/MEM_freeT functions.
Mutex locking is only enabled when threads are running.

There was no good reason to have these separate, it just led to ugly
hacks when calling functions with non-threadsafe malloc from threads.
2006-09-06 19:13:23 +00:00
b894ee5b87 Bugfix #4892
Compositor: Image nodes used for Movie files didn't convert the relative
paths (if used), so it could not load the movie file.

This bug explains why sometimes movies worked in the Compositor... so for
the current release the bypass is to disable the "Relative" button in the
File Window.
2006-08-20 10:18:01 +00:00
7440aba482 Compositor: finished work on node "File Output".
- It saves a file with indicated type on each change, with number
  appended denoting the current frame (like ANIM saving).
- Output filename button supports relative paths ("//")
- Shows optional preview image too
- For now, added a print on each file save as feedback

To make this option work nicely, changed the BKE_makepicstring() function
to have less globals inside, so it is more generic. Todo: allow amount of
digits in filenames to be set (to support files like tmp_123456.jpg)
2006-08-10 10:38:50 +00:00
00b55aba24 1)
The F3 key 'save rendered image' made inconsistant choices to save either
in jpg or tga, when the output panel was indicating to render to movies.
Even worse, it was sometimes saying 'save jpg' and saved a targa!

Made it consistantly save .jpg now, since tga isn't a good common format.

2)
Forgot to commit transform.h for previous bugfix in transform numeric input
2006-07-08 13:18:57 +00:00
be3c3a24b5 Bugfix #4620
Hurmf, then you bring back old backbuffer, and they want to have fields
work on that!
OK... here it is. Although using Compositor features will make this much
easier and advanced to control. :)
2006-07-05 17:32:49 +00:00
adff7aacad bugfix 4324
Old issue... Blender saves jpg RGBA files. That's unsupported in all
programs except Blender, always a source of problems with that feature.

Now it just falls back to saving 24 bits when the "RGBA" option is set.
2006-06-13 18:51:52 +00:00
e5218ce9aa - added saving of the image previews to the .blend file to prevent having to load the full images for the image previews
- new struct PreviewImage in DNA_image_types can in the future be moved to struct ID for storing previews for all types
2006-06-05 11:07:15 +00:00
Ken Hughes
dfb545a77c Fix some warning for unsigned vs signed comparisons. 2006-04-03 20:31:10 +00:00
de0262e4c8 New: Import/Export of Cineon and DPX image files. The first is Kodak's
standard for film scanning, 10 bits/channel and logarithmic. DPX is
derived from Cineon as the ANSI/SMPTE industry standard.
DPX supports 16 bits color/channel, linear as well as logarithmic.

Code has been gratefully copied from CinePaint and was integrated in
Blender by Joe Eagar.

According to CinePaint's dev Robin Rowe the DPX code defaults to log
colorspace. Can't find in the code clues yet how to enable/disable that.
However, tests with write/read of DPX seems to show no visible loss by
log conversion code. Might be because it uses the entire 16 bit range...

CinePaint dpx files have been succesfully imported in a Quantel IQ HD/2K
finishing/grading set without problem, so for now I guess we can
use it! :)

Changes in code: added tests for image magic numbers before entering
the actual reading code. Prevents error prints, and makes it faster too.
(Note; this because Blender doesn't check for extensions, but calls
reading functions on every file until one accepts it. :)
2006-03-12 14:11:23 +00:00
86511abe5a Reviewed octree filling times... found a way to optimize some 10% of time,
nothing radical. :)
Just remember to always try higher octree resolutions (256 or 512) or more
complex scenes. Can be 5-10 times faster.

For waiting pleasure; added a per-second header print update to tell where
octree is. Also added an ESC test in octree making.

(Commit in image.c is a faulty print for 'Not an anim').
2006-02-14 10:02:25 +00:00
ed4cc927a7 Couple of features/fixes:
- Compositor now frees memory of buffers internally used in groups
  immediately. This wasn't part of the event-based cache anyway

- New option: "Free Texture Images" (in render Output panel). This
  frees after each render of each scene all images and mipmaps as
  used by textures. As reference it prints total amount of MB freed.

- Render stage 'creating speed vectors' had no ESC checking yet

- Made drawing scanline updates during render draw 1 scanline less...
  dunno, still hunting for weird opengl crashes.

- 3D preview render didn't properly skip sequence or composit render.
2006-02-11 23:17:41 +00:00
f4e491e2f4 Thread rendering stability commit.
I noticed still several cases where the Imbuf library was called within a
thread... and that whilst the Imbuf itself isn't threadsafe. Also the
thread lock I added in rendering for loading images actually didn't
work, because then it was still possible both threads were accessing the
MEM_malloc function at same time.

This commit nearly fully replaces ImBuf calls in compositor (giving another
nice speedup btw, the way preview images in Nodes were calculated used
clumsy imbuf scaling code).

I've also centralized the 'mutex' locking for threading, which now only
resides in BLI_threads.h. This is used to secure the last ImBuf calls
I cannot replace, which is loading images and creating mipmaps.

Really hope we get something more stable now!
2006-02-11 15:55:00 +00:00
1ce9e196f7 Adds support for frameserver rendering to blender. This is done by
integrating a mini-webserver (around 300 lines of code) into blender.
Using the VFAPI-plugin in contrib/windows it enables blender to
directly feed its output into TMPGEnc, a commercial high quality MPEG-Encoder.
Since it is a mini-webserver, you can probably easily use it for other
interfacing purposes.
2006-02-05 19:12:25 +00:00
2a528b285e If Images have relative path, and come from a library, it uses the library
path as reference for loading the image.
2006-02-02 18:28:01 +00:00
042d612df2 Giant commit!
A full detailed description of this will be done later... is several days
of work. Here's a summary:

Render:
- Full cleanup of render code, removing *all* globals and bad level calls
  all over blender. Render module is now not called abusive anymore
- API-fied calls to rendering
- Full recode of internal render pipeline. Is now rendering tiles by
  default, prepared for much smarter 'bucket' render later.
- Each thread now can render a full part
- Renders were tested with 4 threads, goes fine, apart from some lookup
  tables in softshadow and AO still
- Rendering is prepared to do multiple layers and passes
- No single 32 bits trick in render code anymore, all 100% floats now.

Writing images/movies
- moved writing images to blender kernel (bye bye 'schrijfplaatje'!)
- made a new Movie handle system, also in kernel. This will enable much
  easier use of movies in Blender

PreviewRender:
- Using new render API, previewrender (in buttons) now uses regular render
  code to generate images.
- new datafile 'preview.blend.c' has the preview scenes in it
- previews get rendered in exact displayed size (1 pixel = 1 pixel)

3D Preview render
- new; press Pkey in 3d window, for a panel that continuously renders
  (pkey is for games, i know... but we dont do that in orange now!)
- this render works nearly identical to buttons-preview render, so it stops
  rendering on any event (mouse, keyboard, etc)
- on moving/scaling the panel, the render code doesn't recreate all geometry
- same for shifting/panning view
- all other operations (now) regenerate the full render database still.
- this is WIP... but big fun, especially for simple scenes!

Compositor
- Using same node system as now in use for shaders, you can composit images
- works pretty straightforward... needs much more options/tools and integration
  with rendering still
- is not threaded yet, nor is so smart to only recalculate changes... will be
  done soon!
- the "Render Result" node will get all layers/passes as output sockets
- The "Output" node renders to a builtin image, which you can view in the Image
  window. (yes, output nodes to render-result, and to files, is on the list!)

The Bad News
- "Unified Render" is removed. It might come back in some stage, but this
  system should be built from scratch. I can't really understand this code...
  I expect it is not much needed, especially with advanced layer/passes
  control
- Panorama render, Field render, Motion blur, is not coded yet... (I had to
  recode every single feature in render, so...!)
- Lens Flare is also not back... needs total revision, might become composit
  effect though (using zbuffer for visibility)
- Part render is gone! (well, thats obvious, its default now).
- The render window is only restored with limited functionality... I am going
  to check first the option to render to a Image window, so Blender can become
  a true single-window application. :)
  For example, the 'Spare render buffer' (jkey) doesnt work.
- Render with border, now default creates a smaller image
- No zbuffers are written yet... on the todo!
- Scons files and MSVC will need work to get compiling again

OK... thats what I can quickly recall. Now go compiling!
2006-01-23 22:05:47 +00:00
014aa7261e Orange branch: OpenEXR finally in Blender!
Credits go to Gernot Ziegler, who originally coded EXR support, and to
Austin  Benesh for bringing it further. Kent Mein provided a lot of code
for integrating float buffers in Blender imbuf and ImBuf API cleanup,
and provided Make and Scons and static linking.

At this moment; the EXR libraries are a *dependency*, so you cannot get
the Orange branch compiled without having OpenEXR installed. Get the
(precompiled or sources) stuff from www.openexr.com. Current default is
that the headers and lib resides in /user/local/

Several changes/additions/fixes were added:

- EXR code only supported 'half' format (16 bits per channel). I've added
  float writing, but for reading it I need tomorrow. :)
- Quite some clumsy copying of data happened in EXR code.
- cleaned up the api calls already a bit, preparing for more advanced
  support
- Zbuffers were saved 16 bits, now 32 bits
- automatic adding of .exr extensions went wrong

Imbuf:

- added proper imbuf->flags and imbuf->mall support for float buffers, it
  was created for *each* imbuf. :)
- found bugs for float buffers in scaling and flipping. Code there will
  need more checks still
- imbuf also needs to be verified to behave properly when no 32 bits
  rect exists (for saving for example)

TODO:

- support internal float images for textures, backbuf, AO probes, and
  display in Image window

Hope this commit won't screwup syncing with bf-blender... :/
2006-01-09 00:40:35 +00:00
17210112a1 Orange: Warning cleanup for Icons commit, missing declarations of some
calls caused icon hashing not to work too. Runs smooth here :)
2005-12-21 23:39:20 +00:00
80eb4d3b9e Big commit in orange: Interface icons for materials, textures
world and lamp. Also for images in pupmenus.
Also preparation for work on using preview images in imagebrowser.

-- Andrea
2005-12-21 22:21:43 +00:00
0e0cafcada "UV Test Grid" option in Image Window > Image menu > New, to generate
a colored grid instead of a blank image, for quickly spotting distortion
in UV maps.
2005-11-27 16:21:25 +00:00
00f266c651 This is a modified version of patch #2995
To enable dynamic tiff support.
I had to fix some of the logic in the fileselect box for icons,
I also expanded the patch to look in various default locations for
a dynamic libtiff.so/libtiff.dll
and look at the env variable BF_TIFF_LIB if it can't find it automatically.
If unable to load the library it prints a message about setting BF_TIFF_LIB
to the console.

I haven't been able to test it on a lot of platforms but hopefully it
will just work ;)  I added the files to scons but have not had a chance to
test that as well.

Kent
2005-11-22 18:50:03 +00:00