Commit Graph

60 Commits

Author SHA1 Message Date
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
Alfredo de Greef
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
Alfredo de Greef
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
Ton Roosendaal
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
Robert Wenzlaff
24bb131b7c - Fixed Displacement Hollow vs. Solid problem. Test for flipped
normals was commented out.
2004-01-21 01:53:56 +00:00
Alfredo de Greef
41144750da corrected particle object dupliverts and aramature duplivert export problems
corrected power slider increment update
2004-01-18 20:00:17 +00:00
Robert Wenzlaff
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
Robert Wenzlaff
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
Robert Wenzlaff
d7bac993fa - Correction to scale calculation on Metaballs, provided by Jiri. 2004-01-14 13:18:11 +00:00
Robert Wenzlaff
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
Robert Wenzlaff
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
Robert Wenzlaff
1b233917ad - Normalized normal vector after perterbing normals to stop
artifacts in displace preview.
2004-01-11 19:53:20 +00:00
Robert Wenzlaff
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
Ton Roosendaal
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
Alejandro Conty Estevez
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
Robert Wenzlaff
cef4ef250c - Removed some out-of-date comments in Displacement. 2004-01-09 04:16:16 +00:00
Robert Wenzlaff
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
Robert Wenzlaff
71597eb061 - Corrected scale factor to be independant of object
rotation.  (Still not right, but better).
2004-01-08 14:19:25 +00:00
Daniel Dunbar
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
Ton Roosendaal
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
Ton Roosendaal
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
Robert Wenzlaff
8396163515 - Ooops, random keystroke snuck into file between make and commit. 2004-01-07 14:39:50 +00:00
Robert Wenzlaff
d54699bb45 - Added UV mapping to displacement. 2004-01-07 14:31:58 +00:00
Daniel Dunbar
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
Robert Wenzlaff
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
Robert Wenzlaff
8eb1d25f96 - Adaptive spliting of renderfaces for displacement. Choose to split
between verts 1-3 or 2-4 based on minimum displacement gradient.
        drastically improves smoothness with out additional subdividing.
2004-01-06 05:21:16 +00:00
Michel Selten
906c75396a SCons updates:
* Removed debug print in ftfont.
* Added FreeType/FTGL support to the Linux build.
  NOTE: This feature is on by default, but depends on the pre-build libraries.
  So checkout the lib directory. The lib dir should be on the same level as
  the blender dir. (In case you didn't know).
2004-01-05 21:30:26 +00:00
Ton Roosendaal
1170f5f6ed Displacement map
- changed code to make use of actual textures, not the hackish
  'externtex', which is only for tools
- added a 'displacement' vector in ShadeInput, and moved calculation of
  displacement vector to texture.c itself. So it works with stencil, but
  also for options as 'add', 'mult' and 'sub'.
- for RGB textures it uses the brightness value of color for displace
- for stucci, and plugin textures returning a normal, it uses that

- Also: wrote call in end of preparing renderfaces, to split non-flat
  quad faces in triangles. gives a lot fewer errors in displace textures,
  but also raytracing irregular subsurfs goes better now.

- texture mapping that works for displace: orco, sticky, global, obj, normal.
  UV not yet. Reflection-displace? uhh! :)
2004-01-05 20:25:07 +00:00
Robert Wenzlaff
22bfc207f3 -First port of Displacement mapping from tuhopuu. Image textures not working
yet (R.vn and R.vlr no longer exist, and were needed to get the image mapped
right).  Works esp. well with Subsurfs. Sensitive to vertex normal issues
in Simple and Mesh modes.

-Also porting Simple Subdivide.  Subdivides mesh at rendertime w/o changing
shape, for smooth displace and Radiosity.

-Removed an unused var from KnifeSubdivide.
2004-01-05 08:44:49 +00:00
Wouter van Heyst
57a7dfe5a5 - Revert to NaN makefiles 2004-01-05 00:06:11 +00:00
Alejandro Conty Estevez
eff07b8329 Basic initial yafray integration by Eeshlo.
Materials are exported the best we can do by now. It will look almost as in
blender except for the missing procedural textures and some minor issues.
You have to tweak normal modulation amount to get the desired result cause
is not the same in yafray.

We added a panel in render space to adjust some yafray settings (GI and so)

Also we export transparency and reflection using new raytracing settings,
but that will be changed and improved soon.

Remember that you have to set YFexport path in user defaults and yafray must
be on path (version 0.0.6)

We added the "yafray" button to activate all this stuff in the render window.
Panel and settings are only shown when checked.

So now when activated the code calls yafray export instead of the internal
renderer and finally the resulting image is loaded back into render window's
buffer. So animation is also possible and results can be saved using blender
usual scheme.
2004-01-04 22:10:36 +00:00
Michel Selten
d3e1fc8870 SCons build system files added.
You'll need SCons (www.scons.org) to build.
Platforms currently working:
* Linux (me)
  - options for quicktime, openal and international disabled
  - uses the system libs and include files for building - no option to build
    with the precompiled libraries yet.
* Windows (jesterKing)
  - builds with quicktime (optional)
  - builds with openal (optional)
  - builds with international support (optional)
  - Use the DOS box to build
  - builds with precompiled libraries
* Irix (Hos)
  - Uses default Irix compiler
  - Not all optimization levels correct yet
  - options for quicktime, openal and international disabled
  - builds with precompiled libraries
* Cygwin (me)
  - has a problem in the linking stage
  - uses free build tools (gcc)
  - options for quicktime, openal and international disabled
  - uses the system libs and include files for building - no option to build
    with the precompiled libraries yet.
* MacOS (sgefant)
  - builds with quicktime (optional)
  - options for openal and international disabled
  - builds a nice bundle
  - builds with precompiled libraries

Thanks to IanWill for a bugfix in the Linux build.
Note: This is a work in progress. A lot still has to be done - for example the
      optional parts are only to be enabled by directly setting 'true' or
      'false' in the SConstruct file. This needs to be moved to a user config
      file. Also, the .o/.obj files are stored in the source tree. This needs
      to be fixed as well.
      The game engine is not yet built.
2004-01-04 21:11:59 +00:00
Ton Roosendaal
d8b21b01c3 Added improved exposure calculation
- based at 1.0-exp(-color) trick in Yafray. But to guarantee backwards
  compatibility, and some more control, Stefano Selleri hacked a useful
  formula for it.
- We now have 2 values to set:
  - "exp": the exponential correction value (0-1)
  - "range": the light range that maps on color 1.0 (0-5)
- Using exp(x) (is e^x) we can much better prevent overflows from render,
  which are currently hard-clipped in Blender. Setting a small 'exp' value
  wil efficiently smooth out high energy and map that back to a color for
  display.
- total formula:
  newcol= linfac*(1.0-exp(col*logfac))
    col, newcol are colors
  linfac= 1.0 + 1.0/((2.0*wrld.exp +0.5)^10)
  logfac= log( (linfac-1.0)/linfac )/wrld.range
    wrld.exp and wrld.range are the button values
- default setting: exp=0.0 and range=1.0 give results extremely close to
  previous rendering.
- graph: http://www.selleri.org/Blender/buffer/Image1.png  for 'exp' setting
  ranging from 0-1, and with 'range'=2

Thanks Stefano for the help!
2003-12-30 18:03:37 +00:00
Ton Roosendaal
3ce1dc9065 Area lights and more...
- New lamp type added "Area". This uses the radiosity formula (Stoke) to
  calculate the amount of energy which is received from a plane. Result
  is very nice local light, which nicely spreads out.
- Area lamps have a 'gamma' option to control the light spread
- Area lamp builtin sizes: square, rect, cube & box. Only first 2 are
  implemented. Set a type, and define area size
- Button area size won't affect the amount of energy. But scaling the lamp
  in 3d window will do. This is to cover the case when you scale an entire
  scene, the light then will remain identical
  If you just want to change area lamp size, use buttons when you dont want
  to make the scene too bright or too dark
- Since area lights realistically are sensitive for distance (quadratic), the
  effect it has is quickly too much, or too less. For this the "Dist" value
  in Lamp can be used. Set it at Dist=10 to have reasonable light on distance
  10 Blender units (assumed you didnt scale lamp object).
- I tried square sized specularity, but this looked totally weird. Not
  committed
- Plan is to extend area light with 3d dimensions, boxes and cubes.
- Note that area light is one-sided, towards negative Z. I need to design
  a nice drawing method for it.

Area Shadow

- Since there are a lot of variables associated with soft shadow, they now
  only are available for Area lights. Allowing spot & normal lamp to have
  soft shadow is possible though, but will require a reorganisation of the
  Lamp buttons. Is a point of research & feedback still.
- Apart from area size, you now can individually set amount of samples in
  X and Y direction (for area lamp type 'Rect'). For box type area lamp,
  this will become 3 dimensions
- Area shadows have four options:
  "Clip circle" : only uses a circular shape of samples, gives smoother
  results
  "Dither" : use a 2x2 dither mask
  "Jitter" : applys a pseudo-random offset to samples
  "Umbra" : extra emphasis on area that's fully in shadow.

Raytrace speedup

- improved filling in faces in Octree. Large faces occupied too many nodes
- added a coherence check; rays fired sequentially that begin and end in
  same octree nodes, and that don't intersect, are quickly rejected
- rendering shadow scenes benefits from this 20-40%. My statue test monkey
  file now renders in 19 seconds (was 30).

Plus:

- adjusted specular max to 511, and made sure Blinn spec has again this
  incredible small spec size
- for UI rounded theme: the color "button" displayed RGB color too dark
- fixed countall() function, to also include Subsurf totals
- removed setting the 'near' clipping for pressing dot-key numpad
- when you press the buttons-window icon for 'Shading Context' the context
  automaticilly switches as with F5 hotkey

Please be warned that this is not a release... settings in files might not
work as it did, nor guaranteed to work when we do a release. :)
2003-12-29 16:52:51 +00:00
Ton Roosendaal
ec99255c27 Phew, a lot of work, and no new features...
Main target was to make the inner rendering loop using no globals anymore.
This is essential for proper usage while raytracing, it caused a lot of
hacks in the raycode as well, which even didn't work correctly for all
situations (textures especially).

Done this by creating a new local struct RenderInput, which replaces usage
of the global struct Render R. The latter now only is used to denote
image size, viewmatrix, and the like.

Making the inner render loops using no globals caused 1000s of vars to
be changed... but the result definitely is much nicer code, which enables
making 'real' shaders in a next stage.
It also enabled me to remove the hacks from ray.c

Then i went to the task of removing redundant code. Especially the calculus
of texture coords took place (identical) in three locations.
Most obvious is the change in the unified render part, which is much less
code now; it uses the same rendering routines as normal render now.
(Note; not for halos yet!)

I also removed 6 files called 'shadowbuffer' something. This was experimen-
tal stuff from NaN days. And again saved a lot of double used code.

Finally I went over the blenkernel and blender/src calls to render stuff.
Here the same local data is used now, resulting in less dependency.
I also moved render-texture to the render module, this was still in Kernel.
(new file: texture.c)

So! After this commit I will check on the autofiles, to try to fix that.
MSVC people have to do it themselves.
This commit will need quite some testing help, but I'm around!
2003-12-21 21:52:51 +00:00
Ton Roosendaal
97d4dbc9c3 Another commit for raytracing, now with glass refraction & fresnel!
Changelog:

- enable refraction with button "Ray Transp" in Material buttons.
- set "Angular Index" value for amount of refraction.
- use the "Alpha" value to define transparency.
- remember to set a higher "Depth" too... glass can bounce quite some
  more than expected.
- for correct refraction, 3D models MUST have normals pointing in the
  right direction (consistently pointing outside).
- refraction 'sees' the thickness of glass based on what you model. So
  make for realistic glass both sides of a surface.

- I needed to do some rewriting for correct mirroring/refraction,
  especially to prevent specularity being blended away.
  Solved this with localizing shading results in the rendercore.c.
  Now specularity correctly is added, and reduces the 'mirror' value.
- Localizing more parts of the render code is being planned. The old
  render heavily relies on struct Render and struct Osa to store globals.
  For scanline render no problem, but recursive raytracing dislikes that.

- done test with gamma-corrected summation of colors during tracing, is
  commented out still. But this will give more balanced reflections. Now
  dark reflections that are reflected in a bright surface seem incorrect.

- Introduced 'Fresnel' effect for Mirror and Transparency. This
  influences the amount of mirror/transparency based at viewing angle.
  Next to a new Fresnel slider, also a 'falloff' button has been added to
  define the way it spreads.
- Fresnel also works for Ztransp rendering

- created new Panel for Raytrace options
  I have to evaluate still where it all should be logically located.
- material preview shows fake reflection and fake refraction as well.
2003-12-16 14:12:01 +00:00
Ton Roosendaal
a18cc02374 - Xmas special: shiny mirroring bells & whistles!
This is a revision of the old NeoGeo raytracer, dusted off, improved quite
a lot, and nicely integrated in the rest of rendering pipeline.
Enable it with F10-"Ray", and set either a 'ray-shadow' lamp or give the
Material a "RayMirror" value.
It has been added for 2 reasons:
- get feedback on validity... I need artists to play around with it if it's
  actually useful. It still *is* raytracing, meaning complex scenes will
  easily become slow.
- for educational purposes. All raytracing happens in ray.c, which can be
  quite easily adjusted for other effects.

When too many disasters pop up with this, I'll make it a compile #ifdef.
But so far, it seems to do a decent job.

Demo files: http://www.blender.org/docs/ray_test.tgz
An article (tech) about how it works, and about the new octree invention
will be posted soon. :)

Note: it doesn't work with unified render yet.
2003-12-10 20:41:53 +00:00
Ton Roosendaal
f27578eda2 - bug report #761
Subsurf, rendered in Wire, always displayed the 'optimal edges' version.
  Added check for 'optimal' flag here, now it renders as it draws in 3d win
2003-12-08 17:39:54 +00:00
Ton Roosendaal
477c23112a - bug #742
autosmooth (F9) was always on, when material Radio was set... should only
  be done when Radio render was on too.
2003-11-28 21:09:41 +00:00
Michel Selten
90541541c3 Added all necessary BPY_extern.h include files to the .c files.
Updated the Make environment to point to the correct location. The include
paths were still pointing to source/blender/bpython/include while it should be
source/blender/python.
I did not encounter the build problems because I'm always working with the
autoconf build environment.
2003-11-23 14:28:46 +00:00
Chris Want
e7d3e24a0e Got rid of many #include "BPY_extern.h"
Homework from Michel: do grep BPY source/blender/src/*
and see if there is anything that needs fixing.
2003-11-22 20:21:59 +00:00
Ton Roosendaal
2ffb2376e0 - bug fix #694
when using linked-duplicated mesh, with subsurf and tfaces (UV texture)
  the render crashed.
  Found out the renderloop makes a new displaylist for each Mesh, also when
  it is linked multiple times. That way pointers to previous created elements
  in displaylists become invalid. Crash!
  Result now it even renders faster for linked-duplis. :)
2003-11-13 12:44:34 +00:00
Ton Roosendaal
b18d1109ea - bug fix #74 (oldie!)
rendering uses data as set in active 3d window again. meaning it renders
  localview or 'unlocked layers' correctly again.
  in background render it uses the scene layers by default.

  was disabled in 2.24 in NaN period... can't find the reason for it.
2003-11-08 10:59:59 +00:00
Robert Wenzlaff
147895715a Dynamic Face/Vert/Halo/Lamp tables:
User Info:
	Hard coded limits on the total number of face, verts, halos, and lamps
	is gone.  Blender now allocates the tables for these on an as needed
	basis.  As long as your system can come up with the memory, you won't
	run out.  As a bonus, it also uses slightly less memory on smaller scenes.

Coder info:
	This has been in tuhopuu for a while, but I don't know how hard it
	has been tested.  Since it now allocates only an initial 1024 tables
	(of 256 verts/faces/halos each), it seems like it has been put through
	it's paces. Lamps are allocated one at a time, and I start with 256.
 	I rendered 2.5M Faces/Verts/Halos. 4444 lamps. None the less, I left
	a few printf's in the realocation to hunt bugs.  I'll take them out
	just before the release freeze.

	Also, be on the lookout for other "sanity checks" that assume
	a limited number of the above items.  I think I got them all, but
	you never know.
2003-10-19 21:47:03 +00:00
Ton Roosendaal
d8955d1b33 - Recursive environment map render
Multiple environments now can be rendered in one pass. Previously the other objects with environment maps didn't show up in a reflection. Like this:
http://www.blender.org/bf/dep.jpg

By default, Blender renders now this result:
http://www.blender.org/bf/dep0.jpg

For a further 'recursive ray-tracing effect' you can give each EnvMap texture a higher "Depth" value. Here is a result with depth set at '2':
http://www.blender.org/bf/dep2.jpg

Related new options:
- in (F10) DisplayButtons, environment map rendering can be turned on and off.
- in EnvMap texture buttons you can free all environment maps
- Environment map sizes are also reduced with the (F10) 'percentage' option.

Tech note: with this commit the VlakRen struct has on *ob pointer!
2003-09-23 21:05:51 +00:00
Ton Roosendaal
86409f2da6 - bug #500
extreme wide spotbundles cannot be rendered correctly (180 degrees).
  the bundle value is clipped at 170 degree in renderconverter.
2003-09-17 11:39:55 +00:00
Ton Roosendaal
470b5c0366 So, for the platform managers to check:
- the link order for Blender has changed, the libradiosity.a has to be moved after the librender.a (obviously for a new dependency!). Check blender/source/Makefile
- there's a new file: blender/source/radiosity/intern/source/radrender.c

Here's what the new code does:

Using the core routines of the Radiosity tool, each renderface with 'emit material' and each renderface with 'radio material flag' set will be used to itterate to a global illumination solution. Per face with high energy (emit) little images are rendered (hemicubes) which makes up lookup tables to 'shoot' its energy to other faces.
In the end this energy - color - then is directly added to the pixel colors while rendering, Gouraud shaded.
Since it's done with renderfaces, it works for all primitives in Blender.

What is doesn't do yet:
- take into account textured color of faces. Currently it uses the material RGB color for filtering distributed energy.
- do some smart pre-subdividing. I don't know yet if this is useful... Right now it means that you'll have to balance the models yourself, to deliver small faces where you want a high accuracy for shadowing.
- unified render (is at my todo list)

User notes:
- per Material you want to have included in radiosity render: set the 'radio' flag. For newly added Materials it is ON by default now.
- the Ambient slider in Material controls the amount of radiosity color.
- for enabling radiosity rendering, set the F10 "Radio" button.
- the Radiosity buttons now only show the relevant radiosity rendering options. Pressing "collect meshes" will show all buttons again.
- for meshes, the faces who use Radio material always call the 'autosmooth' routine, this to make sure sharp angles (like corners in a room) do not have shared vertices. For some smooth models (like the raptor example) you might increase the standard smoothing angle from 30 to 45 degree.

Technical notes:
- I had to expand the renderface and rendervertices for it... shame on me! Faces have one pointer extra, render vertices four floats...
- The size of the hemicubes is now based at the boundbox of the entire scene (0.002 of it). This should be more reliable... to be done
- I fixed a bug in radiosity render, where sometimes backfaces where lit

In general:
I'd like everyone to play a bit with this system. It's not easy to get good results with it. A simple "hit and go" isn't there... maybe some good suggestions?
2003-08-31 20:33:46 +00:00
Ton Roosendaal
0b2d2868f1 - fixed bug #448
now 'only shadow' lamps won't give light when rendering without shadows.
2003-08-17 15:57:12 +00:00
Ton Roosendaal
9bf630a1f3 WARNING: with makefiles I could not get a stable blender compiled.
do a make clean in source/blender/ to be sure!

- Included the new shaders from Cessen... well, only the shader calls
  themselves. To make sure the shaders work I nicely integrated it

- MaterialButtons: layout changed a bit, but still resembles the old
  layout. The 'shader' options now are located together.

- Shaders are separated in 'diffuse' and 'specular'. You can combine them
  freely.

- diffuse Lambert: old shader
  diffuse Oren Nayar: new shader, gives sandy/silky/skinny material well
  diffuse Toon: for cartoon render

- specular Phong: new spec, traditional 70ies spec
  specular CookTorr: a reduced version of cook torrance shading, does
                     off specular peak well
  specular Blinn: new spec, same features as CookTorr, but with extra
                  'refraction' setting
  specular Toon: new spec for cartoon render

- default blender starts with settings that render compatible!

- works in shaded view and preview-render

- works in unified render

Further little changes:

- removed paranoia compile warnings from render/loader/blenlib

- and the warnings at files I worked at were removed.
2003-07-19 20:31:29 +00:00