[gl2ps] Problem with BSP printing (reason found)

Shahzad MUZAFFAR Shahzad.Muzaffar at cern.ch
Tue Feb 14 14:30:28 CET 2006


I have test the fix you have provided and that works but not for scene 
graphs which are very far from the camera. I have put the generated eps 
file here

1) The actual scene.
  http://cmsdoc.cern.ch/~muzaffar/gl2ps/actual.eps

2) With fix you have provided
  http://cmsdoc.cern.ch/~muzaffar/gl2ps/with_fix_from_C.Geuzaine.eps
  If you zoom in a lot (zoom 64x64) using the ghostview then you will 
noticed that some triangles should not be seen.

- With fix you have provided + limiting the scaleZ to be max of 100000
  
http://cmsdoc.cern.ch/~muzaffar/gl2ps/with_fix_from_C.Geuzaine_AndscaleZ100000.eps
  And here if you zoom in then scene looks the actual one.

Cheers,
--Shahzad

Christophe Geuzaine wrote:

> Shahzad MUZAFFAR wrote:
>
>> Hello,
>>   I have already mentioned (in one of my previous email) about the 
>> problem with BSP printing not working properly in 1.2.3 and up 
>> releases (i.e. printing in reverse order). I think I have found the 
>> reason. The problem is in the gl2psRescaleAndOffset() method. The 
>> problem occurs when the scaleZ becomes > 100000. Because at scaleZ > 
>> 100000 the z-coordinates of all primitive become > 100000 which is 
>> above the EYE set in the gl2psPrintPrimitives() method. Thats why we 
>> see eps/pdf files printed in reverse order.
>>  
>> I have added this line in gl2psRescaleAndOffset() method
>>
>> if (scaleZ > 100000.F) scaleZ=100000;
>>
>> to force the Z scaling. And now printing works properly. Cheers,
>
>
> I see... The root of the problem is that I forgot to subtract the minZ 
> coordinate in the rescaling! I think the "real" fix should thus be to 
> replace
>
> prim->verts[j].xyz[2] = prim->verts[j].xyz[2] * scaleZ;
>
> with
>
> prim->verts[j].xyz[2] = (prim->verts[j].xyz[2] - minZ) * scaleZ;
>
> This way the z-buffer coordinate will be in [0, GL2PS_ZSCALE] (that's 
> what was intended). Could you try this alternative fix and tell me if 
> it also fixes the bug?
>
> Many thanks!
>
> Christophe
>
>
>> --Shahzad Muzaffar
>> _______________________________________________
>> gl2ps mailing list
>> gl2ps at geuz.org
>> http://www.geuz.org/mailman/listinfo/gl2ps
>>
>
>