How to change light settings for a 3d plot in sage?

I try to plot a gyroid surface in sage which is defined implicitly. However, I get reflections of the light source on my surface which do not look very good. How can I change light settings for the 3d plots?

I tried to set different texture properties for my surface, but the changes showed no result. I also tried to set the light source but also without any resulting changes.

x, y, z = var('x,y,z')

def phi_g(x,y,z):
    X=x+pi/2
    Y=y+pi/2
    Z=z+pi/2
    return sin(X)*cos(Y)+sin(Y)*cos(Z)+sin(Z)*cos(X)

G1=implicit_plot3d(phi_g(x,y,z)==0.02, (x,0,2*pi), (y,0,2*pi), (z,0,2*pi),color='blue', frame=False, plot_points=80)
G2=implicit_plot3d(phi_g(x,y,z)==-0.02, (x,0,2*pi), (y,0,2*pi), (z,0,2*pi),color='red', frame=False, plot_points=80)

C=cube(center=(pi, pi, pi), size=2*pi, color='grey', opacity=0.1)

G=G1+G2+C

plot_G=G.plot()
plot_G.save('g.png',figsize=20,zoom=1.27)

I would like to have the output without any reflections of the light source on the surface.

Upvotes: 1

Views: 43

Answers (1)

kcrisman
kcrisman

Reputation: 4402

I don't really use it much, but I think the Tachyon ray-tracer in Sage can do a lot of what you are looking for. I don't know if the implicit_plot3d fully supports these things in the default viewer.

Upvotes: 1

Related Questions