Commit Graph

98 Commits

Author SHA1 Message Date
a7e250e85c Bug fix #1937
In unified render, halos can give black/colored overflows. Found it this
happens with halos that are behind the camera clipping range. Halo clip
just had some weird code for panorama corrections...

In the provided .blend of report found 3 more glitches;

- after render particle system with Material Ipo, values for material were
  not restored correctly
- Meshes with particles didn't draw axis (draw extra) on correct location
- Same as above, axis didn't draw in selected color.
2004-12-02 14:52:40 +00:00
12795fede8 Bug fix #1903
Bug in Nurb Surface orco, causing illegal pointer to be set, and crash.
Another oldie, pre-2.25!
2004-11-28 18:35:40 +00:00
91f48d0734 Two fixes;
- Bug #1890. While render subsurf in editmode, orco coordinates were
  incorrect (subsurf vertices in editmode have different ordering)
  Bug was oldie.
- IRC reported by Stefano; oops (not outliner) didnt show lamp textures
  nor material ipos correctly.
  Found error in oops curved lines too (the ones starting at right side)
2004-11-26 12:20:35 +00:00
806ebc7c7a Fix for #1806
View3d windows have 'unlock' option and 'localview', which was also
supported on render (F12 with mouse in window) to render only what is
visible there.
This didn't work very nice, with even code in render module to read from
interface variable. Removed that from render, and coded the exception
where it belongs, in renderwin.c
2004-11-25 18:16:50 +00:00
f7b8e05f8e Bugfix on irc report;
Static-animated particles didn't recalculate on render
when used for duplicators (did work for halos). Allows material/texture ipo
for animated motion.
2004-11-22 18:13:56 +00:00
a91f7ff763 Bugreports keep coming in... including real bad one.
- Deformed mesh didnt give correct 'orco' anymore on render
- Mesh editmode, "Separate loose parts", crash on empty mesh (no verts)
- Global undo; buttons sending redraw events gave extra undo push called
  "Make single user or local". That latter was wrong event handling for
  REDRAW event, harmless, until now :)

First one is a real showstopper... bah!
2004-11-19 22:44:06 +00:00
cefd1b2729 Three bugfixes from tracker;
- Nurbs objects didnt render ray-transp. Was caused by 1) wrong normal calc
  and 2) quads with vertices on same locations. Solved it with nice code that
  checks illegal quads and turns them into triangles
- Made 'physics engine' variable SUMO default
- Typo in toolbox fix; cyclic isn't F but C
2004-11-17 17:15:36 +00:00
6c04fe887e Just some nice updates in drawing (extruded) Curve objects;
- display of 'smooth' or 'solid' is correct now
- standard bevel and extrude displays in 'smooth' correctly now (with sharp
  edges where you expect it)
2004-10-31 13:51:36 +00:00
d292541cac For solid display of curves in editmode; found fix (thnx intrr :) that
hopefully prevents weird results in grabber... error was that the
editNurb was not used for triangulating.

Also; added drawing the wire as extra in solid display editing curves...
that for unfilled curves as well.
2004-10-30 20:46:10 +00:00
369c5f03c9 Fix for #1679
When rendering from localview, the lamp layers were not evaluated properly
for "Layer" option in Lamps. This because localview uses layers 24-31. :)

Fix is simple; just not use localview layers for lamp while render.
2004-10-27 08:41:51 +00:00
c245379175 Bugfixes:
Blender hemilight shadow flag now ignored (reported by varuag).
Texture axes were not exported for procedural textures.
Duplicate armatures were not handled correctly (reported by richie).
Triangle uv-coord splitting (reported by anael, richie & Alvaro).

Additions:
Material 'TexFace' mode now works too, as in Blender it functions as an extra
first texture channel, replacing the base color.

The new noise functions for procedural textures are now supported in yafray,
but is  not quite completed yet, still undergoing changes.
(needs yafray from cvs).

The 'power' button has been renamed to 'EmitPwr', since it controls background,
arealight (including lamp with radius) & material emit power.
This button can now be used with the 'SkyDome' method as well to control
background lighting.
To control indirect lighting power, a button called 'GI pwr' has been added,
only use this when really necessary, first try modifying 'EmitPwr' instead.

Removed:
The 'gradient' button. This includes the python code to set
this parameter as well.
2004-10-26 00:52:12 +00:00
61f738e0f3 Bug fix & new feature;
http://www.blender3d.org/cms/Particle_duplicators.443.0.html

Static particle systems now can also duplicate children (Dupli Vert).
Even ipo's for children are evaluated correctly then, nice stuff :)
2004-10-14 22:20:42 +00:00
1964efa7d6 Cut'n'paste code, to fix bug 1500, resulted in crash when not rendering
extruded curves. thanks intrr for noticing! :)
2004-10-13 16:11:49 +00:00
1f4cb9a285 Fix for bug #1500
Ray_transp on curve objects (filled polys) didnt work well, normals
were not pointing outside all nicely
2004-10-12 17:22:56 +00:00
74cd2db337 Removed all calls to object_wave in code, and moved it into the
mesh_modifier() in deform.c.

Now wave works on top of hooks, before lattice/curve deform and armature.
But together!
2004-09-19 17:44:20 +00:00
0a6730d830 curve_modifier() call was in makeDispList() already, and called twice,
causing initrender to free illegal pointer...
2004-09-17 21:30:53 +00:00
8464889c80 Fixed crash caused by new (strict) rule for displists. Reminder: to signal
that a displist has to be recalculated, you only have to free it.

In the init_render_mesh() not all situations were checked OK.
Thanks Basse for finding it!
2004-09-17 10:36:43 +00:00
2453774076 Bug fix #1525
RayTransp didnt work on Nurbs anymore (2.34 error).
Just a normal flip problem...
2004-09-16 15:32:38 +00:00
37f57288cb Lot of code... 2 new features:
1) Curve deform
http://www.blender3d.org/cms/Curve_Deform.392.0.html
Works simple as expected, but keep track of the rotation axis
in F7 buttons (Track X Y Z)
Only Mesh deform supported now.

Code changes:
- centralized deformation calls in curve_modifiers() mesh_modifiers()
etcetera. Here also other effects can be added like wave. Now the
evaluation order is fixed, but should become optional. It also doesnt
use the Displist anymore as deform-input. That latter part is unfinished
yet.
This code also is used for Hooks and will be needed for softbody

- made convention stricter that displists are being checked on in
drawobject(), this to prevent routines to make new displists recursively
(like armature does). Now a freedisplist() is sufficient to signal that
a new displaylist should be made.

2) Object Hooks
http://www.blender3d.org/cms/Object_Hooks.391.0.html
Support for Hooks is added to Mesh, Lattice, Curve and Surface objects.
For Armatures this would require some more work & research.
Main goal for this feature is to provide quick & simple access to the
underlying geometry in Objects on Object level, supporting hierarchies and
Ipos etc.
2004-09-14 19:03:11 +00:00
969fb8f765 Apparently the curve render code doesnt use the displist... so there's
duplicate code for tapering needed.
Now tapered curves render too.
2004-08-29 13:58:48 +00:00
012854ae93 Fixed bug discovered by dotblend, parented empty's were mistakenly
included in the duplicate objects list.
Added support for spherelight 'dummy' mode when used with global photonmap.
It now behaves the same as arealight when used with gpm.
2004-08-11 23:32:13 +00:00
e9b0238d0c Major update, all implemented a bit in a hurry, and probably will need bugfixes at some point.
Extended the range of the depth and cdepth parameters as reqested by leope.
Bumpmapping should now be a bit more similar to the Blender render.

Added support for all remaining lightsources in yafray, tried to make use of
as much of the existing Blender parameters as possible.

Blender Lamp: added switch to enable rendering with shadowbuffer ('softlight' in yafray).
All other parameters are similar to the Blender settings, for yafray both the
bias parameter and the shadowbuffer size can be lower than equivalent Blender
settings, since the yafray buffer is floating point. Remember that 6 shadowmaps
are created in this case, so can use quite a bit of memory with large
buffer settings.
When 'ray shadow' is enabled for this lamp type, it is possible to set a light
radius to create a spherical arealight source ('spherelight' in yafray),
when this is 0, it is exported as a pointlight instead.

Blender Spot: as in Blender now supports 'halo' rendering.
Halo spots always use shadowbuffers, so when enabled the buttons for shadowmap
settings will appear. The 'ray shadow' button can still be used to disable
shadows cast onto other objects, independent of halo shadows.
One thing to remember, halo's don't work with empty backgrounds, something must
be behind the spotlight for it to be visible.

And finally, the photonlight:
probably the most confusing (as more things related to yafray), the photonlight
is not a real lightsource, it is only used as a source to shoot photons from.
Since indirect lighting is already supported (and looks better as well)
only caustics mode is supported.
So to be able to use this properly other lightsources must be used with it.
For the photonlighting to be 'correct' similar lightsettings as for the 'source'
light are needed.
Probably the best way to do this, when you are happy with the lighting setup
you have, and want to add caustics, copy the light you want to enable for
caustics (shift-D) and leave everything as is, then change the mode to
'Photon'.
To not waiste any photons, the photonlight behaves similar to the spotlight,
you can set the width of the beam with the 'angle' parameter. Make sure
that any object that needs to cast caustics is within that beam, make
the beam width as small as possible to tightly fit the object.
The following other parameters can be set:
-photons: the number of photons to shoot.
-search: the number of photons to search when rendering, the higher,
the blurrier the caustics.
-depth: the amount of photon bounces allowed, since the primary use is for
caustics, you probably best set this to the same level as the 'ray depth'
parameter.
-Blur: this controls the amount of caustics blur (in addition to the search
parameter), very low values will cause very sharp caustics, which when used
with a low photonnumber, probably lead to only some noisy specks being rendered.
-Use QMC: Use quasi monte carlo sampling, can lead to cleaner results, but also
can sometimes cause patterns.

Since the photonlight has no meaning to Blender, when using photonlights and
switching back to the internal render, the light doesn't do anything, and no
type button will be selected. The lightsource can still be selected, but unless
switching to yafray, no parameters can set.

Apologies to Anexus, I had no time to really do something with your code,
I'll still look at it later, to see if I can improve anything in my implementation.
2004-07-28 22:37:12 +00:00
fb40ae6413 Added option to set 'full Osa' on non raytraced scenes. This makes sure
old files still use the old fast OSA, and when you want a specific
material to have specular/shader/texture AA you can set this individual.

When rendering ray_mir or ray_transp or ray_shadow the new OSA will be
effective by default however.

Still todo; make this switch work for transparant faces and unified...
2004-07-27 22:23:45 +00:00
653abbae6c Fix for #1449 (blocky shadows)
This problem appeared to be a famous one, with some fun read to be found
on the web. The solution as I commit here is described on the site:
http://www.blender3d.org/cms/Misc_improvements.355.0.html

As extra (I needed it quite some!) added requested feature to have the
renderwindow display in titlebar whether the spare page is shown (JKEY)
2004-07-26 17:12:04 +00:00
2d54d7b3ce Bug #1462
A nurbs sphere parented to Bone accidentally was treated as parented to
armature (deform) in renderconverter.
2004-07-23 20:47:47 +00:00
f32b8e6b7f added support for ortho camera (needs yafray from cvs)
When using xml export, yafray will now render the alpha channel as well when 'RGBA' button in blender is enabled (Plugin does this automatically).
In plugin code, fixed smooth shading bug for non-mesh objects.
Relative paths for textures are now recognized (plugin & xml).
Fixed problem with duplicate objects (plugin & xml).
Really old bug, sun position is now correct (plugin & xml).
World background now can also be a regular image texture (jpeg & tga), but for now always assumes spheremapping, which is not the same as Blender either. In yafray the texture is assumed to be a full 360 (panorama type) map.
convertBlenderScene.c cleanup, the identity transform 'hack' is removed.
THIS AFFECTS ALL EXTERNAL RENDERERS (Aqsis and others) WHICH RELY ON THE RENDERDATA OUTPUT, VERTICES AND LAMPCOORDINATES/VECTORS NOW NEED TO BE TRANSFORMED BACK TO WORLD COORDINATES. See yafray plugin/export code.
2004-07-12 03:20:31 +00:00
f77bc7eb7d Quite a large one this time... but now we have:
Edges in Mesh
- adds automatic when you use creases. For other situations; call the
  void make_edges(Mesh *me) in mesh.c. Of course, once in editmode the
  edges are automatically recreated.
- in F9 buttons you can add/remove edges too
- both for Mesh and DisplistMesh, so it speeds up drawing quite some in
  wireframe
- render for edges can't work... edges have no material nor tface nor col..
  so here still the faces are rendered in wire

Creases in Subsurf
- based on the code by Chris McFarlen
- main changes is that now edges are used, saving quite some data in file
- use SHIFT+E in editmode to set edges-sharpness. values go from 0-1
- in F9 buttons you can set draw-crease mode. It draws now blended from
  wire color to edge-select color (as provided in Theme)

Known issue: setting sharpness on 1 cube (subdiv 2) gives weird results
with some values... Chris, can you check?

Further; code cleanups, changing 0 in NULL when needed, no warnings, etc etc
2004-07-08 20:38:27 +00:00
b2d7f47b81 Made static particles working with a deformed Mesh, both for Lattice as
for Armature. Note: only works for subsurfed Mesh now!

Change in drawobject.c: Halo option on subsurf Mesh now draws points.
but using the original vertices...
2004-07-03 18:39:19 +00:00
b460748777 Metaball normals were flipped again... thanks jiri for pointing me to it... 2004-06-28 11:14:58 +00:00
d56315aa18 Bug 1335
Displace mapping + Map-Input using Object wasn't working. This caused
by the inverse matrix of an Object potentially not being calculated when
displace was calculated.

Solved by moving imat calculus to the top of the main function.

Yafray note: the convention to hack out all transformations from
renderconverter could be implemented more elegant, by moving this to
the yafray section (and just matrix-transform back). Makes code less
unreadable, but also support displacement then (and might solve other
errors).
2004-06-13 19:30:56 +00:00
62c333a562 report #1338
Switched order of routines for displacement and autosmooth, where the
autosmooth will be last now. This prevents displaced (loose) faces, and
might give attractive sharp edges in other cases too.
2004-05-29 19:46:46 +00:00
59dad6aefc Recoded the methods how normals get corrected and flipped during render
conversion. Old method tried to solve it per object, detecting a flipped
matrix. Since we have displacemapping and raytracing this is too inaccurate.
Also, flipping normals should alsways result i correct flipped vertex-
normals too.

Solution is to completely recalcuate the 'puno' (vertex normal) flags in
renderHelp.c now (set_normal_flags). The face normals themselves are not
flipped until that stage.

Second major improvement involves the calculation of correct splitted
triangles, when a quad is not flat. It now creates triangles based on the
vertex normals, which have actual information on surrounding geometry, thus
resulting in much smoother results.
Without this you get errors in ray-shadow, with light shining almost
parallel to a face. But again, displacement mapping improves with it too.

Third fix is that by removing normal flipping from displace code the result
is much better now.
2004-05-29 16:14:34 +00:00
a6458b3cfa <blush> this should have been part of render commit of some days ago.
This fixes errors in quads that are non-planar...
2004-05-17 21:40:00 +00:00
c4dc33f18e Bug 1272
Normals for mball where flipped, when using displace mapping.
Fix is both flipping normals, and flipping flip flags.
2004-05-10 18:17:06 +00:00
97f2cf05f5 Fix #1207
Flag for 'only shadow' was still working when lamp type switched to
Hemi. Also 'only shadow' didnt work yet for ray_shadow Spot lamp.
2004-04-29 16:20:34 +00:00
Chris Want
2d7137151f Fix for bug #1176 -- During animation, NLA seems to like to have
'do_all_actions' run twice for all of the constraints to be updated
properly. (/me grumbles: I fixed this last week for the OpenGL
updating stuff in header_buttons.c ...  do we really need to have so many
update_for_newframe()-style functions?)
2004-04-21 14:18:02 +00:00
8e3579d355 - fix for bug 62
I found it was an easy one to fix after all... the stars system is still
old and very cumbersome code, but for parts it now just works too, by
just disabling clipping in advance (as for panorama).
2004-04-13 15:23:24 +00:00
d29d7030b6 - bug #979
the non-flat quad detecting routine apparently didn't do anything
  anymore! I've fixed it now with more comments, so people are warned
  not to mesh with this... er... mess!
2004-03-27 18:27:55 +00:00
d3670aa4be - bug fix #996
Apparently the reorganize of code in this c file, to merge the converter
  routines for normal Mesh and subsurfed Mesh, cancelled out the fix I did
  before to make sure Material option Wire correctly takes the OPTIM mode
  into account.
  Error was that it always rendered in OPTIM wire for subsurf, regardless
  setting for subsurf.
2004-03-27 11:32:25 +00:00
aedf456938 - split the data structures that actually constitute a mesh
(MVert,MFace,etc) off into DNA_meshdata_types.h, to isolate areas
    of source that actually edit mesh *data* vs. areas that just edit
    mesh object information.
2004-03-20 22:55:42 +00:00
Chris Want
dd3c9c0c46 Removed the struct MFaceInt from DNA_mesh_types.h (by the recommendation
of zr). This struct was never written to file and the new 'int based'
MFace can be used in it's place. Some removal of redundant code could
perhaps be done now (I didn't do any though, just "s/MFaceInt/MFace/").
2004-03-14 21:00:51 +00:00
afe04971c2 Rwenzlaff: Force update of displist when effects are present.
In an attempt to optimize, displist wasn't recalced if 3D window subsurf
	level was the same as render subsurf level, this kept wave effect
	from being calculated in animations if leves were equal.

	Fixes 1/2 of bug #1000 (Still doesn't update 3D Window)
2004-03-08 00:24:44 +00:00
b5fef06a95 Bugfixes by eeshlo
Fixes Bug 990 and 976
990 - Parenting Issues with Yafray Export
976 - Curve (Text) 'Front' and 'Back' not Exporting to Yafray
2004-03-05 20:08:30 +00:00
Chris Want
e8aaea0b63 Armature related fixes and cleanups:
* Armatures that had constraint targets inside other armatures
  weren't transform()-ing correctly

* Issues with lattice deformed objects that are parents of bones
  when rendering an animation. Seems to be mostly OK now with the
  exception of the first rendered frame -- weird bugs like this have
  plagued blender for ages, which leads me to believe that
  RE_rotateBlenderScene() is a piece of garbage that nobody understands
  (especially me).

* made a few helper functions to clean up some repeated code related
  to clearing constraint status and rebuilding displists.
2004-01-27 06:08:37 +00:00
c225bf1240 On request of broken, monkeyboi and others the rendering engine menu is back again.
The menu button was also moved to the render panel, this required some changes to the placement of the other buttons.
I hope this is no problem...
2004-01-27 05:46:12 +00:00
8273ebce0f fixed problem with ray button and shadow rendering
Blender 'sphere' mode lights in yafray should now have more similar light levels
render shadow button in Blender must now be enabled to render shadows in yafray too
some other minor shadow related corrections
2004-01-27 00:15:12 +00:00
1b3145c575 - forgot to commit this file for fix several days ago which fixed
only_shadow rendering...
2004-01-23 22:03:42 +00:00
Chris Want
8766a719e4 Bug fix: meshes deformed by armatures were not getting updated
when rendering an animation, i.e., the deformation was delayed.
Please test by rendering any animations you have that involve armatures.
2004-01-23 02:10:36 +00:00
24bb131b7c - Fixed Displacement Hollow vs. Solid problem. Test for flipped
normals was commented out.
2004-01-21 01:53:56 +00:00
41144750da corrected particle object dupliverts and aramature duplivert export problems
corrected power slider increment update
2004-01-18 20:00:17 +00:00