Commit Graph

84 Commits

Author SHA1 Message Date
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
d5fde6c48b Added #!/usr/bin/python standard script identifier to the start of SConscript files.
Makes text editors identify SConscripts as Python, and syntax highlight properly.
2004-05-16 13:07:20 +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
70a4ead0ae SCons updates
* Blender static now links. By default this option is disabled on all
  platforms. Simply set the option in config.opts to 'true'.
* Added the following flags to config.opts:
  - HOST_CC.    This is the C compiler for the host platform. This value is the
                same as TARGET_CC when not cross compiling.
  - HOST_CXX.   This is the C++ compiler for the host platform. This value is
                the same as TARGET_CXX when not cross compiling.
  - TARGET_CC.  This is the C compiler for the target platform.
  - TARGET_CXX. This is the C++ compiler for the target platform.
  - TARGET_AR.  This is the linker command for linking libraries.
  - PATH        This is the standard search path
  All SConscript files have been updated to reflect these changes. Now it's
  possible to change only the root SConstruct file, and all compiler specific
  variables are passed automatically to all SConscript files. Of course, this
  does not apply to makesdna because there the host and target platform is
  different from all other libraries.
  To pass a variable that applies to all platforms, all we now have to do is
  set the correct value in library_env


Note: as usual, to get the latest options in the config.opts file, first
      remove your version.
2004-02-29 21:40:48 +00:00
9330e553e8 SCons updates
* libraries are now generated in [BUILD_DIR]/lib
* passed the user_options to all libraries now.
  This means I could remove a couple of Export/Import lines.
* Changed the order in source/blender/src/SConscript and
  source/gameengine/SConscript.
  All libraries are now sorted alphabetically. This has no impact on the build
  process.
2004-02-15 19:25:32 +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
ede644969b - Made dispfact for new mtex default to 0.2.
- Fine tunes scaleing of Nor channel to better match intensity chan.
	- removed last debug printf.
2004-01-18 17:17:44 +00:00
52e5a15bab - Separates displace from Var slider. Added Disp Slider to
control how the intensity channel affects displacement.  Nor
	  slider still controls how Nor channel affects displacement.

	- Scaled Nor displacement to make Nor slider more usable.

	- Removed Data scale from displacement routines.  Made
	  sliders unusable for objects scaled in editmode.  Displacement
	  now relative to unit sized object.  Displace still tracks
	  with object scale, so scale out of editmode if you want a
	  large object with deep displacement.
2004-01-15 04:06:24 +00:00
d7bac993fa - Correction to scale calculation on Metaballs, provided by Jiri. 2004-01-14 13:18:11 +00:00
d74da9789a - Fixed metaball boundingbox bug. tex_space_mball() only fills in
ob->bb, not data->bb, like tex_space_mesh() and tex_space_curve().
	Reported by Jiri Hnidek.
2004-01-13 00:45:01 +00:00
3ed49f3299 -Attempted fix for flipped normal. Solves "No V. Norm flip" problem,
but I doubt it's the whole solution.
2004-01-12 14:42:43 +00:00
1b233917ad - Normalized normal vector after perterbing normals to stop
artifacts in displace preview.
2004-01-11 19:53:20 +00:00
d0fd7d2fea - Potential future bug in simple subsurf (used & when should be ==).
- out of date comment in Displace code.
2004-01-11 16:20:49 +00:00
4f398031b8 - Merged conversion to renderfaces for mesh and subsurfs.
This fixes bug in wrong flipping of normals during render in some cases
  too. Most important, it also allows autosmooth and halos now with subsurf.
  Particles do work, but still use the original geometry.
- I only coded 4 bytes of this, rest is from master zr!
2004-01-09 20:52:44 +00:00
aba8ca4440 From Eeshlo: fixed bug with dupliverted lamps not exporting. Also now it
skips envmaps, octree and radiosity when yafray is enabled.
2004-01-09 08:31:23 +00:00
cef4ef250c - Removed some out-of-date comments in Displacement. 2004-01-09 04:16:16 +00:00
024c67bd47 - Displacement scalling. Displacement now handles sizex/y/z of object
properly, and uses the AutoTexSpace button to see if the size of the
	data needs to be adjusted for.

	- Scale now split to x/y/z components.  Not sure if this is the most.
	logical way to do it.  Will have to reconsider later.
2004-01-09 03:57:14 +00:00
71597eb061 - Corrected scale factor to be independant of object
rotation.  (Still not right, but better).
2004-01-08 14:19:25 +00:00
f6f06ba54d - removed duplicate flags from BKE_mesh.h
- removed rendermesh_uses_displist (no longer relevant)
 - converted appropriate me->flag tests to using mesh_uses_displist
 - made vert and face counting (for info header) use proper counts
 - changed flip_subdivision to allow level==0 argument
 - ps. thanks for subsurf orco fix ton
2004-01-08 04:42:29 +00:00
f0821decff Left over work from localizing renderdata!
- when quads get split before render, the vertexcolors and texture face
  (UV) info has to be corrected as well. This happens runtime during
  render, no new data is created. The code was in previous versions, but
  with raytrace and other new features it needed a rewrite
- this now also should work for the new smart split code from robert!
2004-01-07 21:44:09 +00:00
f2f514d1d4 Fix for cube map error subsurf.
- cubemap relied on pointer to MFace, which is only available for Mesh
  when directly converted to renderfaces.
  It then checked the 'puno' flag where also bits were set to indicate
  the optimal projection for a face (XY, XZ or YZ).
- I found out the renderface also has a puno flag, so the mface pointer
  in a renderface is redundant. Is removed now
- added code in texture cubemap call, which checks on a projection flag
  in 'puno'. If not set, it uses the orco's to calculate one.
- this means, that cubemap now also works for other objects than meshes,
  provided they have an orco block while render.
- if no orco block available, it uses the 'global' projection to find which
  of the cube sides map.

I couldnt find other errors with subsurf & orco though...
2004-01-07 20:29:21 +00:00
8396163515 - Ooops, random keystroke snuck into file between make and commit. 2004-01-07 14:39:50 +00:00
d54699bb45 - Added UV mapping to displacement. 2004-01-07 14:31:58 +00:00
ecd620a5aa - removed some old cruft from init_render_displist_mesh (for smeshes-RIP)
- reduced main subsurf interface to two functions to make DispListMesh
    structures from an editmesh or a regular mesh. for the most part this
    means that to implement a geometry modifier you only need to write
    these two functions (not very plugable yet however).
 - added displistmesh_from_mesh and displistmesh_from_editmesh functions
    which allow simple support of subdivLevel(0) subsurfs, somewhat handy
    for testing things (like why orco doesn't work for subsurf).
2004-01-07 10:17:37 +00:00
e2a2ceb6e5 - Displacement now works for all object types. (However, some are only
marginally suitable, like curves, because of relatively low renderface
	count).  Will have to thoroughly document pros and cons of each type.

	Usefullness order (greatest to least):
		CC Subsurf Meshes (Displacement likes the smooth normals)
		Simple Subsurf Meshes
		Manual subdivided meshes
		MBalls
		Surfaces (Normal errors/ hidden seams)
		Curves (Large flat areas with few renderfaces to displace).
2004-01-07 04:10:50 +00:00