mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0032274: Tests - unstable snapshots from test case v3d/bugs/bug24785
Test case has been adjusted to reproduce scenario it was supposed to check.
This commit is contained in:
parent
c57bf5636c
commit
95bdefb201
@ -5598,7 +5598,7 @@ static int VZLayer (Draw_Interpretor& theDI,
|
|||||||
Graphic3d_ZLayerSettings aSettings = aViewer->ZLayerSettings (aLayeriter.Value());
|
Graphic3d_ZLayerSettings aSettings = aViewer->ZLayerSettings (aLayeriter.Value());
|
||||||
printZLayerInfo (theDI, aSettings);
|
printZLayerInfo (theDI, aSettings);
|
||||||
}
|
}
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Standard_Integer anArgIter = 1;
|
Standard_Integer anArgIter = 1;
|
||||||
|
@ -6,45 +6,52 @@ vinit View1
|
|||||||
# Thin boxes represent overlapping 2d objects in same plane
|
# Thin boxes represent overlapping 2d objects in same plane
|
||||||
# Normally such configuration would cause z-fighting noise (flickering)
|
# Normally such configuration would cause z-fighting noise (flickering)
|
||||||
box b1 -0.75 -0.75 0 1 1 0.01
|
box b1 -0.75 -0.75 0 1 1 0.01
|
||||||
box b2 -0.5 -0.5 0 1 1 0.01
|
box b2 -0.50 -0.50 0 1 1 0.01
|
||||||
box b3 -0.25 -0.25 0 1 1 0.01
|
box b3 -0.25 -0.25 0 1 1 0.01
|
||||||
vdisplay b1
|
vdisplay b1 b2 b3 -dispMode 1
|
||||||
vdisplay b2
|
vaspects b1 -material brass
|
||||||
vdisplay b3
|
vaspects b2 -material silver
|
||||||
vsetmaterial b2 silver
|
vaspects b3 -material copper
|
||||||
vsetmaterial b3 copper
|
# Set object polygon mode Aspect_POM_None to inherit Z-Layer settings,
|
||||||
|
# as default object polygon offset is "Aspect_POM_Fill 1 1" (overrides Z-layer settings)
|
||||||
|
vpolygonoffset b1 8 0 0
|
||||||
|
vpolygonoffset b2 8 0 0
|
||||||
|
vpolygonoffset b3 8 0 0
|
||||||
|
|
||||||
psphere s 0.3
|
psphere s 0.3
|
||||||
vdisplay s
|
vdisplay s -dispMode 1
|
||||||
|
vaspects s -material brass
|
||||||
|
vpolygonoffset s 8 0 0
|
||||||
|
|
||||||
# Create new z-layer for 3d objects
|
# Create new z-layer for 3d objects
|
||||||
vzlayer add
|
catch { vzlayer -delete 1 }
|
||||||
vobjzlayer set s 1
|
set aLayerId [vzlayer add]
|
||||||
|
vdisplay s -layer $aLayerId
|
||||||
|
|
||||||
vsetdispmode 1
|
# Disable OpenGL depth test for layer 0 (to eliminate flickering)
|
||||||
|
|
||||||
# Disable OpenGl depth test for layer 0 (to eliminate flickering)
|
|
||||||
# But depth write is still enabled
|
# But depth write is still enabled
|
||||||
vzlayer disable depthtest 0
|
vzlayer DEFAULT -disable depthTest
|
||||||
|
|
||||||
# Disable depth buffer clearing for layer 1 (we want correct overlapping with 3d objects)
|
# Disable depth buffer clearing for layer 1 (we want correct overlapping with 3d objects)
|
||||||
vzlayer disable depthclear 1
|
vzlayer $aLayerId -disable depthClear
|
||||||
|
|
||||||
# List currently enabled settings of each layer
|
# List currently enabled settings of each layer
|
||||||
vzlayer settings 0
|
vzlayer DEFAULT -settings
|
||||||
vzlayer settings 1
|
vzlayer $aLayerId -settings
|
||||||
|
|
||||||
# "3d" box with one of its faces on same plane with "2d" objects
|
# "3d" box with one of its faces on same plane with "2d" objects
|
||||||
# Normally this also would cause flickering because new box is
|
# Normally this also would cause flickering because new box is
|
||||||
# supposed to be in layer 1 as "3d" structure, thus depth test between
|
# supposed to be in layer 1 as "3d" structure, thus depth test between
|
||||||
# new box and "2d" objects will be enabled.
|
# new box and "2d" objects will be enabled.
|
||||||
box b 0 0 0.01 0.5 0.5 -0.5
|
box b 0 0 0.01 0.5 0.5 -0.5
|
||||||
vdisplay b
|
vdisplay b -dispMode 1 -layer $aLayerId
|
||||||
vobjzlayer set b 1
|
vaspects b -material brass
|
||||||
|
vpolygonoffset b 8 0 0
|
||||||
|
|
||||||
# To handle this situation, depth offset setting was introduced.
|
# To handle this situation, depth offset setting was introduced.
|
||||||
# It implemented with glPolygonOffset calls per layer.
|
# It implemented with glPolygonOffset calls per layer.
|
||||||
vzlayer enable positiveoffset 1
|
# Set polygon offset 2 (greater than default value 1 to see the difference).
|
||||||
|
vzlayer 1 -enable depthoffset 2 1
|
||||||
|
|
||||||
vfit
|
vfit
|
||||||
vdump $imagedir/${casename}.png
|
vdump $imagedir/${casename}.png
|
||||||
|
Loading…
x
Reference in New Issue
Block a user