Assíntota: quando o branco não é branco

Assíntota: quando o branco não é branco

Estou tentando exibir uma bola 3D branca com Assíntota (PDF 3D), mas sempre fica cinza:

insira a descrição da imagem aqui

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:

insira a descrição da imagem aqui

Responder1

Como g.kovsugere, talvez seja melhor brincar com a iluminação materialdo 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 emissivepenconforme diffusepennecessário. Incluo o código e uma mudança no parâmetro emissivepende 1.0para 0.5com 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);

eu

Responder3

nolightfaz o branco ser branco! nolightfaz amarelo é amarelo!

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

// 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);

informação relacionada