Estou tentando exibir uma bola 3D branca com Assíntota (PDF 3D), mas sempre fica cinza:
import graph3;
import solids;
defaultrender.merge=true;
size(10cm,0);
currentprojection=orthographic(-Z);
//currentlight=Headlamp;
//currentlight=light(-10,1,1);
//currentlight=White;
currentlight=Viewport;
draw(unitsphere,rgb(1,1,1));
Entendo que é um problema de iluminação e tentei brincar com suas configurações (as linhas comentadas na minha fonte são algumas de minhas tentativas), masnuncaconseguir que o branco seja branco. Se bem entendi,Preciso de um componente difuso mais branco na minha luz, mas não consigo ver como conseguir isso. E a documentação não é muito clara…
Isso fará parte de um modelo molecular, e a renderização que estou fazendo é mais ou menos assim:
Responder1
Como g.kov
sugere, talvez seja melhor brincar com a iluminação material
do que com a iluminação. Em particular, a luz ambiente tende a ser bastante subtil; é melhor usar emissivepen
, que essencialmente adiciona exatamente aquela cor a toda a esfera, independentemente da iluminação.
import three;
defaultrender.merge=true;
size(10cm,0);
currentprojection=orthographic(-Z);
draw(unitsphere, surfacepen=material(diffusepen=gray(0.5), emissivepen=gray(0.6), specularpen=black) );
O resultado:
Responder2
Provavelmente ficará muito branco para você, mas você pode diminuir emissivepen
conforme diffusepen
necessário. Incluo o código e uma mudança no parâmetro emissivepen
de 1.0
para 0.5
com a etapa de 0.1
.
import settings;
outformat="eps";
// interactiveView=false;
// batchView=false;
import three;
size(200);
//currentprojection=orthographic(5,4,3);
//defaultrender=render(compression=Zero,merge=true);
currentlight.background=blue;
material White=material(diffusepen=gray(1.0),emissivepen=gray(1.0));
draw(unitsphere,White);
Responder3
nolight
faz o branco ser branco!
nolight
faz amarelo é amarelo!
// http://asymptote.ualberta.ca/
import three;
size(8cm,0);
draw(Label("$x$",EndPoint),O--1.5X,Arrow3);
draw(Label("$y$",EndPoint),O--1.5Y,Arrow3);
draw(Label("$z$",EndPoint),O--1.3Z,Arrow3);
//pen p=yellow+opacity(.9)+5pt;
pen p=white;
//draw(unitsphere,p);
draw(unitsphere,p,nolight);