Ja, Sie müssen mehrere Lichter verwenden, um dies zu erreichen, indem Sie das reflektierte Licht fälschen. Die Berechnung von echtem reflektiertem Licht ist nicht eingebaut (und rechnerisch sehr komplex/teuer). Sie haben eine Vielzahl von Optionen.
Ein zweites gerichtetes Licht, das immer in der entgegengesetzten Position und Richtung Ihrer Sonne sein könnte.
Ein Hemisphärenlicht, das konstant bleibt. Hemisphäre-Beleuchtung erhält eine Himmelfarbe und eine Grundfarbe und -intensität und fügt Ihrer Beleuchtung ein nettes Extrabit der Tiefe hinzu.
// sky color ground color intensity
hemiLight = new THREE.HemisphereLight(0x0000ff, 0x00ff00, 0.6);
hier ist ein funktionierendes Beispiel http://mrdoob.github.com/three.js/examples/webgl_lights_hemisphere.html
Sie eine beliebige Kombination unterschiedlicher Leuchten verwenden könnte aber vorsichtig sein, eine Leistung Kompromiss gibt.
Erwähnenswert ist auch die Halflambert-Schattierung, die durch Setzen der wrapAround-Eigenschaft in Ihrem Material auf true gesetzt wird. Dies ergibt einen schöneren Schwarzabtrag, der zu einer weniger harten Beleuchtung führt. Mehr Mitteltöne und weniger Schwarz.
Dank! Das Einstellen von wrapAround auf true hat es behoben. Jetzt gibt es keine Schwarzen und die Farben sind noch sichtbar, auch wenn sie nicht direkt im Licht sind, was ich wollte. Ich habe den ursprünglichen Link aktualisiert :) Ich muss jetzt herausfinden, wie ich mein Schattenproblem beheben kann. –
wrapAround scheint seit der Veröffentlichung dieses Kommentars entfernt worden zu sein. Wie kann dieser Effekt jetzt erreicht werden? –