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
。コードと、のステップでemissivepen
から へのパラメータの変更を同封します。1.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);