渐近线:当白色不是白色时

渐近线:当白色不是白色时

我正在尝试使用 Asymptote (3D PDF) 显示一个白色的 3D 球,但它总是变成灰色:

在此处输入图片描述

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

我知道这是灯光问题,我也尝试调整它的设置(源代码中注释掉的几行是我的一些尝试),但我绝不设法让白色成为白色。如果我理解正确的话,我的灯光需要更白的漫射成分,但我不明白如何实现。而且文档也不太清楚……


这将是分子模型的一部分,我将对其进行如下渲染:

在此处输入图片描述

答案1

正如g.kov建议的那样,您可能最好使用material而不是照明。特别是,环境光往往相当微妙;您最好使用emissivepen,它实际上会将那种颜色添加到整个球体,而不管照明如何。

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

结果:

答案2

这对您可能来说太白了,但您可以根据需要减少emissivepen和。我附上了代码和参数从到的diffusepen更改,步骤为。emissivepen1.00.50.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);

姆韦

答案3

nolight使白色变为白色! nolight使黄色变为黄色!

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

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

相关内容