Asíntota: cuando el blanco no es blanco

Asíntota: cuando el blanco no es blanco

Estoy intentando mostrar una bola 3D blanca con asíntota (PDF 3D), pero siempre aparece gris:

ingrese la descripción de la imagen aquí

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

Entiendo que es un problema de iluminación y he intentado jugar con su configuración (las líneas comentadas en mi fuente son algunos de mis intentos), peronuncalogra que el blanco sea blanco. Si entiendo correctamente,Necesito un componente difuso más blanco en mi lámpara., pero no veo cómo lograrlo. Y la documentación no es muy clara…


Esto será parte de un modelo molecular, y el renderizado que voy a realizar será algo como este:

ingrese la descripción de la imagen aquí

Respuesta1

Como g.kovsugiere, puede que sea mejor jugar con la materialiluminación que con la iluminación. En particular, la luz ambiental tiende a ser bastante sutil; es mejor que uses emissivepen, que esencialmente agrega exactamente ese color a toda la esfera, independientemente de la iluminación.

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

El resultado:

Respuesta2

Probablemente le resulte demasiado blanco, pero puede disminuirlo emissivepensegún diffusepensea necesario. Adjunto el código y un cambio de parámetro emissivepende 1.0a 0.5con paso 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);

mwe

Respuesta3

nolighthace que el blanco sea blanco! nolighthace que el amarillo sea amarillo!

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

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

información relacionada