Needs latest yafray, you can get it from cvs, but I have also binaries
for os x here:
http://www.coala.uniovi.es/~jandro/noname/downloads/yafray-0.0.6-3.pkg.zip
To use it, go to yafray panels (global settings) and uncheck the "xml" button.
That would tell the export code to avoid xml export and use the yafray plugin
instead. You'll see the render being draw while running and you can even stop it
with ESC key.
Since I'm sure problems will appear, expect updates soon.
Remember: does not work on win32
Envmap render error; when no (f10) envmap option was used, it could give
a 'stripe' effect based on a non-initialized global value. Only happens
for transparant layers...
Key alpha (render) set alph component at '1' for sky... this is an old
convention from NeoGeo days, and I have absolutely no clue whatfor...
maybe for some antique amiga iff format or so. Made it zero now.
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.
needs cleared. Timings go down nice:
octree new 2.33a
128 0:04.2 0:07.5
256 0:06.5 0:20.0
512 0:18.0 2.06.9
Time is including initialize renderfaces etc. 100k quads.
first commit for review and improvements on OSA (anti aliasing) in
Blender.
http://www.blender3d.org/cms/Rendering_engine.320.0.html
Most relevant changes:
- full check on subpixel sample locations
- all subpixels are fully rendered (gives spec AA, procedural texture AA)
- also unified render uses it
- removed double-used code for unified render
Whether or not this will be optional (better pics, but in some cases slow)
is to further evaluate. For raytracing - for example - this cannot be simply
done, since the new sampling system made raytrace code much simpler.
When Traceable was off, and the rendered pixel outside Octree, the
intersection was going wrong. Due to the many samples taken not easy
to see, but certainly causing extra noise.
"Sphere": spherical mapping for a 360 degree panorama
"Tube": cylindrical mapping for a 360 degree panorama
Both mappings by default do only the sky (upper) hemisphere. The color
below is same as regular Horiz and Zenith colors, useful for setting
an AO effect.
Sample pics:
http://www.1000skies.com/fullpanos/index.htm (commercial)
very unexpected location, causing small offset in rendered sub-pixel,
which showed only up raytracing a very detailed object with small
faces... ugh!
(Thanks [A]ndy, sorry Desoto! :-)
The Image texture repeat options, now allow a "Checker" repeat. With
odd and even tiles set separately, and a size button to set a
'Mortar' inbetween tiles.
http://www.blender3d.org/cms/Render_engine_features.215.0.html
Also fixed bug: using 'CalcAlpha' option for image textures didn't give
antialised edges for image.
cleared correctly for each face, causing too many octree nodes to be
filled in.
Especially for more complex scenes this fix is quite a time saver.
Still looking at ways to speedup octree filling though.
When tracing a mirror with AO, the rendering was extremely slow due to
each mirror sample (like 8 per pixel) taking a full range of AO samples.
Now it uses for mirror samples a corrected amount, which makes sure for
a single pixel still a full AO range is used.
Makes mirror+AO render 5-6 times faster, at least.
bytes for RGB.
This to allow very bright contrasted images to be used for AO as well. As
a first start also the Texture->Colors panel now allows contrast setting
up to 5.0 (was 2.0).
indicate scanlines being in progress. For motion blur frames it works too.
Bug fix: in background render it accidentally tried to free a sound pointer
that wasn't set. (caused by own commit of three days ago).
Fix: rendering motion blur in forground prints correct sample # in info-
header again.
appeared that the standard size (64x64x64) just works fine for small
scenes, like a single character in a small environment. Larger scenes and
larger environments became exponentional slower.
Disadvantage of larger octrees is longer build time, and overhead traver-
sing it though, so something to tweak based on some experimenting.
A table with test results + blender file will be in CMS soon.
New button is in F10 Render panel, in bottom. Last free spot there! O_o
Sizes supported now 64, 128, 256 or 512.
When toonshading is used, also backfacing polygons are rendered. This
causes a conflict with raytraced shadow, since backfacing polygons
always have shadow.
There was an error in the code that didnt set shadow for backfacing
polys, assuming shading would be 'zero' then as well. That's fixed.
Somewhere after 2.28c I fixed some thing in radio rendering that prevented
textures to be applied to radio energy.
Now it is a normal 'diffuse' energy again, and multiplied with actual
(textured) material color.
Small fix: the radiosity steps show up as numbers printed in time-cursor.
The OSA ofset vector for current rendercoord (O.dxco) wasn't
initialised in all cases. Actually, just removed it for AO, effect is
invisible.
Bug provided by jK, not in tracker. thnx!
pattern as previous commit for AO.
Previous setting, dither+jitter, has been cancelled. Now you can choose
for either nothing, dither, or for noise. With the latter giving same
nice noise as for AO.
Pics:
http://www.blender3d.org/cms/Render_engine_features.215.0.html
a UV Sphere which isn't a very uniform distribution on a sphere.
Now I itterate a evenly distributed set of points on sphere, and use that
by random rotating the entire sphere for each pixel.
http://www.blender.org/bf/samp3.jpghttp://www.blender.org/bf/samp4.jpg
Both pics same rendertime, 36 AO samples. Quite a difference, eh!
Will put html page for release up.
- AO energy slider to control amount
- option "Use sky color" for colored AO. The horizon color will define
bottom diffuse color, the zenith works on top
- option "Use sky texture" will do a full sky render to define AO color
Please note that AO energy and color only is found when a ray does not
intersect. So for interior scenes make sure 'Dist' value is sufficient
low.
New also is:
- World "Map input" allows "Ang Map" (Angular mapping) which can be used
for 360 degree spherical maps, aka as Light Probes. Check samples here:
http://www.debevec.org/Probes/
Note that Blender doesn't support HDRI images yet, but option "Use sky tex"
already gives intersting results with such images
- World sky rendering with Image Textures now correctly filters and uses
antialiasing. Also noticable for raytrace mirror reflections
- World preview render for sky type "Real" now gives correct view as
defined by current used camera.
I tried to speed up AO tracing with coherence systems, none of it really
worked yet... time to tackle octree itself i guess!
Credits go to blendix! Well done!
Reported were errors in using procedural textures on "Map input" UV type.
It was due to un-initialized uv[2] members, which were actually still
used by texture.c for some coord flip magic.
When using MotionBlur, the rendered coordinates were not correctly
adjusted, causing visual artifacts using the new AO, but it was also
visible for normal ray-shadow, which didn't become anti-aliased in
Mblur render.
Solved it with 2 globals now, to pass on blur offset to renderloop.
Leave it that way... the entire method used to jitter/AA/blur stuff
needs revision.
- Ambient Occlusion is a more sophisticated ambient trick, which takes
nearby faces into account by firing a hemisphere of shadow-rays
around. AKA 'dirt shader'.
- Eeshlo made it a Lamp type, which doesn't fit well. I've moved the
settings to the World menu, and let the Material->ambient value control
the amount it contributes
- currently, the AO value is added/subtracted/mixed with the 'diffuse'
factor while shading, before it is multiplied with Material color
Buttons are in new Panel 'Amb Occ" in F8 menu. Note:
- "Dist:" by shortening the length of rays you get subtler effects and it
renders faster too
- "DistF:" the attennuation factor gives control over how the 'shadow'
spreads out.
Further it's just raytracing, so tends to be slooooow.... :)
Here same tricks as for other raytraced scenes apply, especially try to
keep the environment as small as possible (exclude faces from Octree by
giving them no Material Traceable).
I still have to think over a couple of aspects, will await feedback on it:
- AO color? Now it just adds 'white'
- other sampling patterns? I tried dithering, which was so-so
- method of controlling final 'samples' in F10? Might be useful for other
oversampling too (area light) to have it reacting to a percentage or so..
Basically this provides three new things:
1. Choice of a list of noise-base functions, which can be used by the
current Clouds, Marble, Wood textures as well.
2. Three new texture types: Musgrave, Voronoi and DistortedNoise
3. Python access to noise functions (not for render!)
All of this together makes Blender's builtin procedural textures a LOT
more powerful. Here again, a full webpage should be made to show off all
possibilities, and explain some of the more scientific names for settings.
A good read on Musgrave textures can be found here:
http://www.ypoart.com/Downloads/Musgrave.htm
About Voronoi:
http://www.ypoart.com/Downloads/Worley.htm
I can't find official DistortedNoise docs easily... maybe its something
Eeshlo created himself.
I've spent some time to change the patch Eeshlo provided. Worth noting:
- created main texture "Musgrave" with 5 sub choices (instead of 5 new
main textures)
- added for all new textures the option to scale (zoom in out)
- added patch in do_versions to initialize variables
I hope the Python team will check on the Noise.c API. And include in docs!
reason is that raytrace code doesnt like shadow on backfacing faces
at all. the hemi light is omni-directional, and would need a shadow
calculation to mimic this as well. the new 'Ambient Occlusion' patch
will make that possible.
different objects shouldn't share flags this way (still sharing of
other mesh flags in renderer... ickity pickity, but I'm not fixing now)
- removed some unnecessary uses of DNA_mesh_types.h
render solid now (no alpha).
- This gives nicer previews, but also makes envmaps look better, since
environment maps are rendered without raytracing
- I decided not to raytrace envmaps mainly because of speed... if you use
environment maps you want something quick... otherwise just use ray_mir
material here!
alpha>1.0, the 'threshold' calculation in vanillaRenderPipe.c then works
wrong... not sure if this should be fixed there.
- for now, the spothalo render function itself clips.
- again; thanks to horrible intrr test scene! :P
some tests where moved around, causing specularity being calculared when
light actually shines behind a face.
Thanks inttr for the (horrible!) test scene that showed it. :)
this was an error as reported more, with horizontal lines in raytraced
renderings. It appeared to be an Osa struct being not reset to zero
for normals... only happens when using bumpmapping.
- Lamp only shadow (use 'energy' to control amount that gets subtracted)
- Material only shadow (remember, is an alpha trick)
- demo files for this have been included in testing suite, will be
upgraded soon.