On 03/10/2013 12:14 AM, sfeam (Ethan Merritt) wrote:
> Anyone know of an unresolved 4.6 bug that should be fixed before
> releasing 4.6.2? If not, I plan to put the usual source tarball
> on SourceForge later this week.
The one concern is the description for this new item:
> * NEW hidden3d can handle occlusion by pm3d surfaces (as in hidden2.dem)
which seems to me like overselling things a bit. pm3d has always
occluded whatever is behind it, so that is not new. The example
actually has the pm3d surface on the bottom layer.
What's new is the invisible line type (-2) for hidden surface mesh. In
the example, the invisible line type partially covers up the axes which
doesn't look good. To see this, after the hidden2.dem demo, type
splot x*x-y*y with lines lt 1 lc rgb "#000000", \
f(x,y) with lines lt -2 notitle
Also, the meshes don't occlude the pm3d surfaces (the surfaces show
through the mesh), so that too isn't doing any type of occlusion. It's
like going backward from hidden3d. What would be nice (and something
I've wanted to work on but can't find the time) is an actual hidden 3D
surface feature using the mesh sectioning as a starting point.
I'm not saying that plot example isn't something that someone wouldn't
want to do. I realize gnuplot doesn't work this way, but there has been
discussion about making the range specification within the plot command
apply to just the plot that follows it. If that were the case, one
could create a plot similar to hidden2d.dem with the following
unset hidden3d
set zrange [-100:100]
splot [][][-110:0] x*x-y*y with lines lt 1 lc rgb "#000000", \
f(x,y) with pm3d, \
[][][0:100] x*x-y*y with lines lt 1 lc rgb "#000000" notile
But even that isn't the best solution (actually bad, but if needing a
plot from a particular angle, it would do) because if one were to rotate
the plot to look from a "underneath", the order of plots would no longer
be correct.
What would really be desirable is the ability to specify which surfaces
should occlude and which shouldn't. I actually think that is a very
useful feature to have. That way one could specify an interior surface
that should always show through, which is what the hidden2d example
effectively doing as observed. So, here might be how that works:
set hidden3d
f(x,y) = sin(-sqrt((x+5)**2+(y-7)**2)*0.5)
splot f(x,y) with pm3d solid, \
x*x-y*y with lines lt 1 lc rgb "#000000" transparent
Well, in summary, rather than describing this as a pm3d-related feature,
how about
* NEW hidden3d invisible lines for simulated surface occlusion (as in
hidden2.dem)
Dan
|