漸近線:當白色不是白色時

漸近線:當白色不是白色時

我試著用 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.0到 的更改,0.5步驟為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);

姆韋

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

相關內容