2013-11-01 7 views
8

Wie kann ich ein Material erstellen, das andere Formen aus der Szene widerspiegelt? Ich habe versucht, die reflectivity Eigenschaft, aber es hat nichts reflektiert.Reflektierendes Material in THREE.js

Es ist ein Beispiel, das diesen Effekt zu haben scheint: http://threejs.org/examples/#webgl_shading_physical

Es sieht nicht so aus Standardmaterialien wurden verwendet, um dies zu schaffen.

+0

Es gibt viele, viele Beispiele dafür: http://threejs.org/examples/#webgl_materials_cars_camaro, http:// threejs.org/examples/#webgl_materials_cubemap, http://threejs.org/examples/#webgl_materials_cubemap_balls_reflection – WestLangley

+2

Wenn Sie eine Spiegelung wünschen, gibt es auch ein Beispiel dafür: http://threejs.org/examples/#webgl_mirror – WestLangley

+0

@WestLangley Alle Beispiele mit Ausnahme des Spiegels verwenden ein Umgebungsbild zur Reflexion. Wenn Sie sich das Material genau ansehen, sehen Sie das Bild, das verwendet wurde. Ich habe speziell nach dem Reflektieren anderer Objekte in der Szene gefragt. Das Spiegelbeispiel ist eine gute Referenz, danke. – MCSharp

Antwort

4

Um ein bisschen von der Theorie zu gehen: eine Reflexion ist im Grunde ein Bild der Szene aus einer bestimmten Position. Wenn also ein planares Netz als Spiegel dienen soll, müssen Sie an dieser Position eine Kamera hinzufügen, die Szene in einer Textur in der Animationsschleife rendern lassen und diese Textur dann im Material für das planare Netz verwenden . Ich würde auch empfehlen, http://stemkoski.github.io/Three.js/Reflection.html zusätzlich zu den Beispielen zu betrachten WestLangley.

Spielen Sie auch mit Einstellungen; für eine weniger reflektierende Wirkung, zum Beispiel versuchen:

var mirrorMaterial = new THREE.MeshBasicMaterial({ color: 0x111111, envMap: mirrorCamera.renderTarget }); 

oder

var mirrorMaterial = new THREE.MeshPhongMaterial({ emissive: 0x111111, envMap: mirrorCamera.renderTarget }); 
+1

Danke für deine Antwort. Ich suche nach reflektierendem Material für ein Bodenobjekt. Die Reflektivität muss von Objekten in der Szene kommen. Ich habe keine Beispiele der gewünschten Wirkung gesehen. So etwas wie ein glänzendes Plastik oder Metall. Die Reflexion wird dort sein, die ein bisschen diffus ist, nicht wie das Spiegelbeispiel. Obwohl das Spiegelbeispiel das nächste Beispiel ist, das ich gesehen habe. Können Sie mir einen Code zur Verfügung stellen, mit dem ich anfangen kann? – MCSharp

+0

Versuchen Sie, die Materialparameter für das Objekt mit der Reflexion zu ändern, damit es weniger reflektierend wird und mehr vom gewünschten Effekt erhält. Siehe aktualisierte Antwort oben. –

+0

Danke. Ich denke, das ist ein guter Ausgangspunkt. – MCSharp