[Bf-committers] broken build: Re: [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14001] trunk/blender/source/blender/ render:
Stephen Swaney
sswaney at centurytel.net
Fri Mar 7 17:26:46 CET 2008
On Fri, Mar 07, 2008 at 04:38:56PM +0100, Brecht Van Lommel wrote:
> Revision: 14001
> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14001
> Author: blendix
> Date: 2008-03-07 16:38:56 +0100 (Fri, 07 Mar 2008)
>
> Log Message:
> -----------
>
> Normal map tangents are now not always averaged at vertices anymore,
> but only when the UV's are connected. That fixes some artifacts when
> baking and using tangent space normal maps. It does mean increased
> memory usage because it now stores 4 tangents per face like UV's,
> and increased processing time, but there's no simple way around that.
>
> Modified Paths:
> --------------
> trunk/blender/source/blender/render/extern/include/RE_shader_ext.h
> trunk/blender/source/blender/render/intern/include/renderdatabase.h
> trunk/blender/source/blender/render/intern/source/convertblender.c
> trunk/blender/source/blender/render/intern/source/rendercore.c
> trunk/blender/source/blender/render/intern/source/renderdatabase.c
> trunk/blender/source/blender/render/intern/source/shadeinput.c
> trunk/blender/source/blender/render/intern/source/texture.c
>
> Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
> ===================================================================
> --- trunk/blender/source/blender/render/intern/source/convertblender.c 2008-03-07 09:33:18 UTC (rev 14000)
> +++ trunk/blender/source/blender/render/intern/source/convertblender.c 2008-03-07 15:38:56 UTC (rev 14001)
> @@ -477,8 +477,53 @@
> VecMulf(tang, -1.0f);
> }
>
> +/* For normal map tangents we need to detect uv boundaries, and only average
> + * tangents in case the uvs are connected. Alternative would be to store 1
> + * tangent per face rather than 4 per face vertex, but that's not compatible
> + * with games */
> +
> +typedef struct VertexTangent {
> + float tang[3], uv[2];
> + struct VertexTangent *next;
> +} VertexTangent;
> +
> +static void sum_or_add_vertex_tangent(MemArena *arena, VertexTangent **vtang, float *tang, float *uv)
> +{
> + VertexTangent *vt;
> +
> + /* find a tangent with connected uvs */
> + for(vt= *vtang; vt; vt=vt->next) {
> + if(fabs(uv[0]-vt->uv[0]) < STD_UV_CONNECT_LIMIT && fabs(uv[1]-vt->uv[1]) < STD_UV_CONNECT_LIMIT) {
> + VECADD(vt->tang, vt->tang, tang);
> + return;
source/blender/render/intern/source/convertblender.c: In function 'sum_or_add_vertex_tangent':
source/blender/render/intern/source/convertblender.c:496: error: 'STD_UV_CONNECT_LIMIT' undeclared (first use in this function)
--
Stephen Swaney
sswaney at centurytel.net
231-271-7371
More information about the Bf-committers
mailing list