mplot3d shading "fix"

Hello,

I have been noticing odd behaviors when plotting polygons and surfaces using mplot3d. Some polygon faces were being slightly transparent, for example when you rotate the sphere in the ‘surface3d_demo2.py’ example. Some faces were completely missing, for example in the ‘hist3d_demo.py’ example. In the surface3d_demo3.py example, I wasn’t fully happy with the appearance of the plot and I was fairly sure it wasn’t 100% correct.

I believe I have the problem tracked down to the “_shade_colors()” method in axes3d.py. I have a patch and it needs to be applied to both the development branch and one for the release candidate. However, I am almost certain that it could break some others 3d display code and I would like people to check it out first before it gets applied.

The ‘mplot3d_vectshade.patch’ can be used against the current development branch, while ‘mplot3d_vectshade_rc2.patch’ can be used against the latest in the maintenance branch.

Thanks, and I would greatly appreciate your input!

Ben Root

mplot3d_vectshade.patch (1.07 KB)

mplot3d_vectshade_rc2.patch (1.12 KB)

– In the process of clearing out patch backlog –

This patch has been committed to the trunk in r8930. I am not going to commit this to 1.0.x unless I am absolutely certain that this patch doesn’t break any other use-cases.

Ben Root

···

On Fri, Jan 7, 2011 at 9:28 PM, Benjamin Root <ben.root@…553…> wrote:

Hello,

I have been noticing odd behaviors when plotting polygons and surfaces using mplot3d. Some polygon faces were being slightly transparent, for example when you rotate the sphere in the ‘surface3d_demo2.py’ example. Some faces were completely missing, for example in the ‘hist3d_demo.py’ example. In the surface3d_demo3.py example, I wasn’t fully happy with the appearance of the plot and I was fairly sure it wasn’t 100% correct.

I believe I have the problem tracked down to the “_shade_colors()” method in axes3d.py. I have a patch and it needs to be applied to both the development branch and one for the release candidate. However, I am almost certain that it could break some others 3d display code and I would like people to check it out first before it gets applied.

The ‘mplot3d_vectshade.patch’ can be used against the current development branch, while ‘mplot3d_vectshade_rc2.patch’ can be used against the latest in the maintenance branch.

Thanks, and I would greatly appreciate your input!

Ben Root