code. Now all the cpp code is in intern under yafray and the api include
file is just plain C
Also changed old include in initrender.c and updated Makefiles.am and configure.ac
so the new dirs are taken into account.
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.
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.
The makesdna tool is SDL 'aware', but I forgot to pass some crucial flags to
the build command.
While working in that file, did some cleanup to make it more consistent with
the other SConscript files.
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.
already gave noise with area size of 0.1.
Limited buttons to minimum value of 0.01 for area light. For people
who want smaller they can scale it down in 3d, effectively reducing
the energy then as well.
* A patch to make sure that constraints on bones that point to
external objects are evaluated correctly (and that the bones that
depend on these bones are evaluated correctly, etc, ad nauseum).
This addresses some of intrr's issues (the blender-related ones,
that is).
* Make sure that deformed displists are updated when the user
manipulates any of the constraint buttons.
* Added a nice little function, ik_chain_looper(), that executes a
callback for every bone in an IK chain.
Again, there are still a couple of commented out items that will continued to be worked on. Committed for testing, etc.
Also forgot to mention in the previous commit, thanks to Monkeyboi for some help gathering items for the UV/Image, Action, NLA menus.
Description:
Mesh editmode header/toolbox: Select -> Random...
Randomly selects a user-set percentage of vertices, adding to the current selection.
* Modified some menu entries to be consistent with the guidelines doc.
* Added 'Align Active Camera to View' in 3D View menu
controversial:
* "Select non-manifold geometry" via ctrl-alt-shift-M, or through
the menu or toolbox. Great for troubleshooting weirdness on a
subsurf, or for preparing a mesh for decimation or for rapid
prototyping.
* "Select more" via ctrl-PADPLUS, or through the menu or toolbox.
If a selected vert shares an edge with an unselected vert, the
unselected one gets selected too. Similar to PADPLUS in wings3d.
This is controversial because maybe it would be more useful to
select all of the verts that share a face (instead of just an
edge) with a selected vert -- what do *you* think?
* "Select less" via ctrl-PADMINUS, or through the menu or toolbox.
If a selected vert shares an edge with an unselected vert, the
selected one gets unselected too. Similar to PADMINUS in wings3d.
Also, selected non-manifold geometry becomes unselected. This is
controversial because of the non-manifold stuff ... is it needed?
What do *you* think?
----------------------------
Another (major) armature speed up for bones with many constraints.
When tranform()-ing, figure out which bones need to be recalculated
beforehand and only update those bones.
- Fixed small typo in doc file Object.py, reported by user Bill.
- Fixed bug #803:
Bug #803's Summary: print, type() or BezTriple broken
Trying to print type(BezTriple) was crashing Blender because
that type wasn't being initialized to PyType_Type. The other
problem is that the getName method for ipocurves only works for
object ipos. A warning was added for when users try to use it
with other blocktypes, we'll later update ipo related stuff in
bpython to work for all types.
---------------------------
"Delay Deform" option for armatures.
The button is under the X-ray bones button in the edit buttons.
With this armature option selected, manipulations in pose mode
will only deform children after the transformation is finished.
While hardly an optimal solution to the slow armature crisis, this
gives about 4 times speed up on some meshes (ah well, at least lets
me isolate armature vs. displist slowdowns while profiling).
--------------------------
Major speed up for armatures during times when you aren't
posing a figure.
Background: the calculation of poses generated by actions and the
calculation of displists were getting somewhat out of sync.
This was being remedied by 'clearing the constraint done flag'
of the pose channels and recalculating the displists every time
the 3d view was redrawn, making life slow and unpleasant.
Commenting out the code that was doing this, then reinserting
the 'clearing the constraint done flag' at the right times
made things a bit more perky.
Fixed by checking the object type and changing the up and track axis accordingly.
Also added some comments in the DNA file (recompiling makedna because of comments is fun!)
- Moved a couple of undo_push_mesh after the action has been confirmed (mainly bevel, merge and mirror)
- Split mirror in two functions, interface and functionality
- Simplified the code of the merge function
reported crash with a popular Python script that apparantly doesnt
initialize a Mesh good (setting totcol, but not creating pointer array)
When no Material array is present, 'totcol' is set at zero now.
Blender crashed when assigning background image to 3d window, when no
buttons window was visible. This caused by copying code from old location
with still using some variables of the 'button space' struct.
Solved by creating these variables in View3d 'space' as well, and using
these instead. Could also remove old coder /* comment */ that there was
a unknown bug in the code there. :)
- 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!