The padding is slightly messed up, so it produces somewhat trunkcated images
however it works. I'll try and fix it later but I have to go home now.
Its atleast usable at this stage.
I moved bmp_decode.c to bmp.c and cleaned it up a little bit.
Kent
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!
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.
- change object draw flag buttons to use new functions (just an example)
While I probably wouldn't recommend patching other buttons to use the new
functions a week before release, it is a good (simple but tedious) project
to complete. Note that some code actually defined the constants for the
bit index, when such code is fixed the _BIT constant should be removed from
the headers.
Example:
DNA_constraint_types.h:
#define CONSTRAINT_DISABLE 0x00000004
#define CONSTRAINT_DISABLE_BIT 2
buttons_object.c:
uiDefIconButS(block, ICONTOG|BIT|CONSTRAINT_EXPAND_BIT, ...);
The button definition should change to:
uiDefIconButBitS(block, ICONTOG, CONSTRAINT_EXPAND, ...);
(whats that, the more correct way uses less typing, GOOD GOD!)
and the CONSTRAINT_DISABLE_BIT define should be removed.
- 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
(thanks!)
Added a 'void' somewhere to silence a compiler warning.
(Windows only)
Moved the flip fullscreen button in the topheader a little to the right, since the
questionmark button mysteriously disappeared.
- 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!
- 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...
constrained bone is flagged for updating (not just an IK parent) we
should update the constrainted bone (except possibly when the
subtarget bone shares the parent). This solves the "Character doesn't
crouch when I pull his spine downward" bug reported in the testing
builds forum.
- 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).
* If there are no selected edges when the function's
invoked, it now gives an error message and returns.
If anyone can think of a better message, please suggest it
(or just commit it ;)
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).
re-using old one. New one = 'exp'.
- at first I used the old 'exposure' value, and just mapped it to 0. this
causes a problem with upward compatibility, old blenders then render a
black picture. is too confusing!
- warning; exposure values saved with commit of last week will get lost.
for it. Now win32 users should have less problems.
I added export of the "no shadow" flag (traceable) And changed the reflection
export scheme so now blender's RayMir is used as yafray's min_refle and the
amount of reflection is controled by the mir color. This seems more intuitive.
And now IOR is exported also for reflection only, wich is needed for fresnel.
* 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).
- 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! :)
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.