Commit Graph

232 Commits

Author SHA1 Message Date
3c99fb6389 Bugfix #6918
- Multilayer EXR files:
  Rendering without "do composite" skipped to render the vector pass

- Also found a wrong loop, missing to clear speed vectors in the first 
  pixel of a tile, causing error print:
  "Found uninitialized speed in vector buffer... fixed"
2007-07-23 14:16:41 +00:00
2a94ae8a81 Fix preview rendering for SSS to not show preprocessing pass that
leads to flickering, and a bug that would display parts of the
preview render as black for interrupted preview renders.

(sorry for the late fix, i've triple checked the code ..)
2007-05-09 16:25:58 +00:00
15e79ef4c8 SSS fixes:
- Radius R, G, B sliders had too small number increase on clicking.
- Preview render now renders with higher SSS error setting to speed it up a
  bit.
- bug #6664: 3d preview render had artifacts. re->viewdx/dy wasn't set then,
  which is needed to estimate the area of each point. Have set this now, not
  in the nicest way, there is some bit duplicated code, but I don't want to
  refactor existing code with the chance of breaking it at this point.
- bug #6665: grid like artifacts with parts rendering. The two extra pixels
  around parts used for filtering were used as well, leading to double points.
2007-05-08 10:15:51 +00:00
1e6b2ce207 Assorted SSS fixes:
- Bug #6652: SSS artifacts with ray shadow.
- Bug #6643: AO + SSS crash. couldn't redo this crash myself, but did find a
             bug that may cause a crash, please test.
- Tweak backscattering to avoid thin surfaces rendering too dark.
2007-05-06 05:04:07 +00:00
3a8c6c81d8 Subsurface scattering:
Documentation on the settings, known limitations and implementation
info can be found here:
http://www.blender.org/development/current-projects/changes-since-243/subsurface-scattering/
2007-05-03 21:37:52 +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
e968f6ec4b Uninitialized variable fix. Might fix bug #6431, error in rendering of
irregular shadowbuffers.

Found by valgrind session, provided by Mathias 'Lynx3d' Wein
2007-03-26 19:44:21 +00:00
Ken Hughes
115b65ce7c Fix numerous gcc warnings. 2007-03-16 05:03:38 +00:00
30984a3bc8 Render passes:
Feature fix for ObjectIndex, now frontmost visible transparent face also
writes an index.
2007-02-23 15:06:27 +00:00
66ee2962ce bugfix #5755
Render: Vector blur didn't work proper for Ztransp (accidentally was
antialising speed, which should not happen).

Also added speed-pass clearing in render, this to elimate the 'tsk tsk'
print in the Vector Blur node. :)
2007-01-21 10:04:50 +00:00
2022c41d6a Bugfix #5750
<sob>the 'time cursor' for bake-render has to go... it is being called
inside of a thread (even whilst thread is mutex locked), but that's not
supported in X11. It might be even instable in OSX/Windows even...

Only way to bring it back is to have the main loop (not in thread) update
the time cursor like each second. Would still mean to add a counter var...
will think it over. First want to have confirmed this is stable.
2007-01-19 13:32:43 +00:00
a8a339b26e Bugfix #5712
UV rendering error: the third value of a UV texture coordinate should be
set to zero always, this enables 3d textures to work uniform with UV.

Also fixed: UV pass output for non_OSA is now equal to OSA, meaning only
used UV face values are in such passes.
2007-01-15 11:41:10 +00:00
2e66b143f3 - Added panel for Bake render (tabbed now in 'anim' panel).
(Empty space will get OSA options, that I add tomorrow or so)

- Removed a lot of old unused variables in renderdata. Also meant I had
  to remove this from python API... please check if this gives valid
  scripts?

- Cleaned up bad formatted code for FFMPG buttons (spaces instead of tabs)
2007-01-09 11:10:12 +00:00
2933f6b9e6 Bugfix #5444
Additions in passrendering broke Baking a bit; what did not work was having
a full render + AO. Was missing a new flag initialize...
2006-12-23 12:58:25 +00:00
080ecf33c1 Bugfix #5491
Ztransp Mask issue: now I did all this work to solve the exceptions, but
forgot the most simple case: regular alpha-over :)

This solves for example AA issues in ztransp-hair over solid faces.
2006-12-22 12:43:40 +00:00
47bc3d1208 Added names to UV and vertex color layers, and display them as a list.
Added support for multiple UVs in the render engine. This also involved
changing the way faces are stored, to allow data to be added optionally
per 256 faces, same as the existing system for vertices.

A UV layer can be specified in the Map Input panel and the Geometry node
by name. Leaving this field blank will default to the active UV layer.

Also added sharing of face selection and hiding between UV layers, and at
the same time improved syncing with editmode selection and hiding.

Still to do:
- Multi UV support for fastshade.
- Multires and NMesh preservation of multiple UV sets.
2006-12-21 13:47:27 +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
089e87ccea Composite & Pass render goodies:
- New Passes: UV and Rad(iosity)
- New Nodes: UV Map and Index Mask
- Z-combine now is antialiased

As usual, please check the log. Has nice pics!
http://www.blender3d.org/cms/Composite__UV_Map__ID.830.0.html

For devs: the antialias code from Vector Blur is now exported in compo
too. Works pretty good. Even fixed a bug in antialias, so vectorblur
will be better.

Also: found out that OpenGL display list speedup accidentally was still
triggered with the rt button... so it did not work by default.
2006-12-10 20:30:15 +00:00
902a69a7d3 Numerous fixes in Render code:
- Bug: material emit was ignored (showed in preview render backdrop)
- Bug: world exposure was ignored
- Bug: lamp halo was ignoring 'render layer light override'.

Further reshuffled the way shadows are being pre-calculated, this to enable
more advanced (and faster) usage of Material lightgroups. Now shadows are
being cached in lamps, using a per-sample counter to check if a recalc is
needed. Will also work (later) for Raytracing node shaders.

- New: Material LightGroup option "Always", which always shades the lights
  in the group, independent of visibility layer. (so it allows to move such
  lights to hidden layer, not influencing anything).
2006-12-08 09:40:44 +00:00
17231f83f3 Work on RenderLayer and Pass control:
Full log:
http://www.blender3d.org/cms/Render_Passes.829.0.html

In short:
- Passes now have option to be excluded from "Combined".
- RenderLayers allow to override Light (Lamp groups) or Material.
- RenderLayers and Passes are in Outliner now, (ab)using Matt's nice
  'restriction collumns'. :)
2006-12-07 14:17:38 +00:00
2c816da097 Two fixes:
- Shaded view was black, needed to tell it to use 'combined' pass :)
- Crash when deleting in compositor all nodes with an output.
2006-12-05 18:02:43 +00:00
3177c4f69f Next stage of RenderPipe refactor: now everything within the pixel was
tackled.

Resulting features:
- render passes
- new pass: Object Index, for masking
- sub-sample alpha masks

Docs:
http://mediawiki.blender.org/index.php/BlenderDev/RenderPipeline
http://www.blender3d.org/cms/Render_Passes.829.0.html
http://www.blender3d.org/cms/New_Render_features.774.0.html

Note that these changes might mean things to not render fully identical...
For the next days a lot of testing is needed!
2006-12-05 16:43:01 +00:00
6543d3e220 Render Monster support: (part 1)
Removed all limitations from render code for maximum threads. The only
define for this now is in BLI_threads.h, and currently set to 8.
Note that each thread renders an entire tile, and also allocates the
buffers for the tiles, so; more threads might work better with smaller
tiles.

IMPORTANT: node system won't work yet with more than 2 threads! So, don't
try material nodes or compositing with over 2 threads. That I'll commit
later today.

What does work (should work :) is AO and soft shadow now.
2006-11-29 17:01:09 +00:00
401a42b698 Bake Render bug: check for which image to filter (bleed) used wrong
flag, picking wrong images (or even ones without buffer, so crashing).
2006-11-28 18:28:23 +00:00
c1258980a4 Render Baking upgrade:
- Now baking itself is threaded too (like for render, max 2 cpus. Moving
  this to 4 cpus is on todo. Goes twice as fast!

- fix: ESC from bake was broken...

- other fix: toolbox menus didn't treat sublevel string lengths OK,
  truncating items like for Group library names.
2006-11-28 10:16:24 +00:00
7cb76f4bf9 Render Baking candy: while baking, the UV Image window shows the progress
in rendered images, once per second. Also switches to other images.

This happens threaded, so might need a good test :)
2006-11-22 18:45:34 +00:00
967869fecd Bugfix #5277
Bake-render:
Quad faces still didn't get handled properly, error visible for vertex
color or UV textures.

Also: added error meny when a Bake cannot work because there are no Images
or no Images with buffers
2006-11-21 18:09:32 +00:00
20e6dc7f57 Bugfix, own collection:
Random seeding is still not perfect in render, especially lack of good
thread support still.

- VectorBlur node was calling seed for each exec, causing other nodes to
  get fixed random too.
- added seed in non-OSA main loop for render
- use BLI_srandom, is better than BLI_srand
2006-11-21 15:52:45 +00:00
e75a2773fa Bugfix #5265
3D window, preview panel, didn't give correct specular for Ortho.
The view-vector was flipped negative then, so more view-depending
code (like tracing) would go wrong then.
2006-11-21 12:41:07 +00:00
e435fbc3c5 Added custom vertex/edge/face data for meshes:
All data layers, including MVert/MEdge/MFace, are now managed as custom
data layers. The pointers like Mesh.mvert, Mesh.dvert or Mesh.mcol are
still used of course, but allocating, copying or freeing these arrays
should be done through the CustomData API.

Work in progress documentation on this is here:
http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData


Replaced TFace by MTFace:

This is the same struct, except that it does not contain color, that now
always stays separated in MCol. This was not a good design decision to
begin with, and it is needed for adding multiple color layers later. Note
that this does mean older Blender versions will not be able to read UV
coordinates from the next release, due to an SDNA limitation.


Removed DispListMesh:

This now fully replaced by DerivedMesh. To provide access to arrays of
vertices, edges and faces, like DispListMesh does. The semantics of the
DerivedMesh.getVertArray() and similar functions were changed to return
a pointer to an array if one exists, or otherwise allocate a temporary
one. On releasing the DerivedMesh, this temporary array will be removed
automatically.


Removed ssDM and meshDM DerivedMesh backends:

The ssDM backend was for DispListMesh, so that became obsolete automatically.
The meshDM backend was replaced by the custom data backend, that now figures
out which layers need to be modified, and only duplicates those.


This changes code in many places, and overall removes 2514 lines of code.
So, there's a good chance this might break some stuff, although I've been
testing it for a few days now. The good news is, adding multiple color and
uv layers should now become easy.
2006-11-20 04:28:02 +00:00
4ebf5223ba Render Baking:
- Bugfix: vertex normals were still flipped around, to match viewpoint
  rendering.
- New: option to bake a texture+material only
2006-11-19 18:44:54 +00:00
c47fa4d0ec Long waited feature: Render Baking
Here's the full release log with example file.
http://www.blender3d.org/cms/Render_Baking.827.0.html

For people who don't read docs; just press ALT+CTRL+B on a Mesh
with texture faces!

Todos:
- maybe some filter options extra?
- Make normal maps in Tangent space
2006-11-19 14:12:56 +00:00
d43ca75b8a Bugfix 5182
Mist option and "Ray Transp" didn't work together yet. Transparency
during tracing should not be influenced with mist though (as is for
Ztransp), so for this case an extra color blending after raytrace is
added. Still pretty primitive... mostly because mist isn't volumetric
in Blender at all... just an alpha trick.
2006-11-13 14:33:36 +00:00
cea2b6752b Bugfix #5188
Material type OnlyShadow didn't work yet for irregular shadow buffer.
2006-11-08 18:47:38 +00:00
71d7409fda Patch #4940, by Wybren van Keulen
The 2-point perspecitve Architecture Camera!
http://www.funnyfarm.tv/patch_lens_shift/patch_lens_shift.mov

Full log:
https://projects.blender.org/tracker/index.php?func=detail&aid=4940&group_id=9&atid=127
2006-11-06 15:42:38 +00:00
e868f223dc New shadow feature: Irregular Shadow Buffers
Full log:
http://www.blender3d.org/cms/Irregular_Shadow_Buffe.785.0.html

In short: this is a shadow buffer approach that always results in crispy
shadows, independent of lamp buffer size or zoom level. This shadow buffer
system also supports transparent shadow.

This is part of work on refreshing Shadow Buffers in Blender. You now can
choose of two types (Classical, Irregular). More types will follow. Also
quality issues for Classical shadow buffers are going to be reviewed,
especially to solve the lousy Biasing.

For the CVS log record; it is based on articles:
Gregory Johnson et al, University of Texas, Austin. (Regular grid method).
Timo Aila and Samuli Laine, Helsinki University of Technology. (BSP method).
2006-10-14 10:21:19 +00:00
0a74ce2c5a Bugfix #4927
Render: Flares were not corrected yet for border render.
2006-09-10 10:35:28 +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
6f47e5fa84 New stuff!
- Tangent vectors now can also be derived from orcos (No UV needed)
- Normalmaps now properly support tangent space as well
  (Patch provided by Alfredo de Greef)

Full log is here:
http://www.blender3d.org/cms/New_Render_features.774.0.html
2006-09-05 13:28:59 +00:00
e47137ff42 Bugreport #4787 mentioned subpixel render issues, especially for small
images (like used for rendering icons).

When working during Orange on new render pipeline, I've left this topic
alone for a while... subpixel precision testing is very time consuming and
needs concentration for a while. :)

This commit brings back precision as it was for 2.41. Below a short
explanation of the solved issues.

- the window matrix for rendering is kept constant during all OSA passes,
  this to ensure clipping happens for each pass identically.
- a subpixel offset is only applied on filling in the z-buffer
- this offset is inverse corrected for shadepixel code, only on 2 places

Another nasty issue is that for filtered rendering (gauss etc), the tiles
(or entire image) is temporally increased 2 pixel in size. This caused a
'dark' (or sky color) edge on the rendering. During Orange that was solved
with a hardcoded clipping offset value, which only corrected for larger
pictures (like > 500 pixels in size).
Now this clipping offset is correctly calculated, based on render size.

Last issue: the view border in 3d window was calculated using integers,
giving small errors in display too. Now it uses float, so visually the
view border is more close to what a render shows.
2006-08-12 11:27:00 +00:00
cf313f867d Bugfix #4647
The raytracer wasn't calling node shaders yet, so results showed only
shading for the base material.
This now works, but there's a conflict in the internal Blender shader that
makes recursive raytracing with nodes unpredictable. Basicaly the conflict
is that when a ray wants to shade a point, it should be able to check the
material for mirror properties, but this is undefined for node trees...

Probably we need to separate raytrace entirely from material shading. Is
a good topic for NodeShader 2.0, when we really split up materials in
shading components.

I'll add a note in the release log about this. Best results you get now
when you don't include mirror/ray-transp insde a node tree, in that case
a regular material mirror can render that material perfectly.
2006-07-09 11:54:41 +00:00
775d3561b1 Another fix based on venomgfx fraka .blend:
In december, when testing material layering, I've removed the check that
prevented specular and diffuse to become negative, this because it could
work nice for layering.

However, this breaks quite some cases too. For example negative lamps are
only used to cancel out other lights in same material, and should not give
negative (invisible!) peaks that work on a node system. Same goes for
negative diffuse from AO 'subtract' mode.

In fraka the error happened for AO on a translucent material. The inside
of the mesh got a negative AO, cancelling out the positive AO on the
outside.

Anyhoo; this commits ensures that a 'shade_lamp_loop' call will never
return negative values again!
2006-07-07 12:28:23 +00:00
034c197d61 bugfix #4604
Hemi light accidentally got shadow bias applied (to hide terminator probs).
This whilst this lamp type doesn't have shadow at all.
2006-07-05 09:20:46 +00:00
cc85c0951e IRC report fix:
- Halos were not sorted, for ages! Meaning that they were rendered in order
  of creation, instead of back to front.
- Made ESC testing for halo render to check per halo, is a fast routine now
  anyway.
2006-07-03 11:53:52 +00:00
6a5f637338 Hooray! Finally found the dreaded "Opengl crash" the poor orange team
suffered for the entire movie. :)

It only happened when rendering large frames, using a lot of memory and
typically when you also use other software in meantime.

Reason: the main thread does the drawing updating, while rendering is
still continuing. When using Ztransp, there was a free buffer done
when possibly a draw could still be in progress. Only crashed when drawing
is slow... explaining why it only showed up in more complex cases.
2006-06-30 14:21:25 +00:00
c0e26bd3c0 Bugfix, IRC report:
Render option "Key Alpha" did not work yet.
2006-06-29 17:22:29 +00:00
8d2f04ac74 Bugfix #4495
Another old only-shadow material error: spot lights with ray-shadow still
calculated shadow on faces that were pointing away from the lamp.
2006-06-27 12:01:33 +00:00
1fa183c27e Fix #4472
Material option "Only shadow" didn't work 100% anymore since shadowbuffer
returns 0.0 (shadow) on backfacing normals.

Added extra test in code to solve this.
2006-06-25 15:32:42 +00:00
eacb3c4b45 Bugfix #4454
Lens flare: error in counting visibility per halo-flare in the to-be
cropped area of tiles. Halos now don't render in the 2 pixels exta outline
per tile, which is only used by faces anyway.
2006-06-25 10:52:13 +00:00
0609066fe9 Bug 4429
When using multiple RenderLayers, each with own 'edge render', the buffer
holding edge pixels wasn't cleared from scratch, so the edges of previous
layers were showing too.
2006-06-23 16:48:28 +00:00