[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