Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

Nulik

Im folgenden Beispiel funktioniert das Umgebungslicht nicht (alles ist schwarz). Warum passiert das? Und wie behebe ich das? Wenn ich Punktlicht einsetze, funktioniert es, also muss etwas mit dem Umgebungslicht nicht stimmen, aber ich habe die Dokumente befolgt ... =: O.

<html>
    <head>
        <title>My first three.js app</title>
        <style>
            body { margin: 0; }
            canvas { width: 100%; height: 100% }
        </style>
    </head>
    <body>
        <script src="js/three.js"></script>
        <script>
            var scene = new THREE.Scene();
            var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );

            var renderer = new THREE.WebGLRenderer();
            renderer.setSize( window.innerWidth, window.innerHeight );
            document.body.appendChild( renderer.domElement );

            var geometry = new THREE.BoxGeometry( 1, 1, 1 );

            material = new THREE.MeshStandardMaterial( {
                color: 0x0c79bf,
                    roughness: 0.71,
                    metalness: 1,
                    normalScale: new THREE.Vector2( 1, - 1 ), // why does the normal map require negation in this case?
                    side: THREE.DoubleSide
                } );


            var cube = new THREE.Mesh( geometry, material );
            scene.add( cube );

            var alight = new THREE.AmbientLight( 0x404040);
            scene.add( alight );

            camera.position.z = 5;

            var animate = function () {
                requestAnimationFrame( animate );

                cube.rotation.x += 0.01;                
                cube.rotation.y += 0.01;

                renderer.render(scene, camera);
            };

            animate();
        </script>
    </body>
</html>
WestLangley

Umgebungslicht in three.js ist ein einfaches Modell für indirektes Licht, das vom Material diffus reflektiert wird.

In Ihrem Beispiel haben Sie die Materialeigenschaft metalnessauf 1 gesetzt. Das heißt, Sie modellieren ein reines Metall. Reine Metalle reflektieren Licht nicht diffus - sie reflektieren Licht nur spiegelnd.

Bei der Verwendung MeshStandardMaterialsollten Sie immer eine Umgebungskarte ( material.envMap) angeben, damit Ihre metallischen Materialien etwas zu reflektieren haben.

three.js r.89

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Warum funktioniert datetime.strptime in diesem einfachen Beispiel nicht?

Warum funktioniert das String-Concat-Makro in diesem "+" - Fall nicht?

Warum funktioniert cursor.clearselection () in diesem Beispiel nicht?

Warum funktioniert Convert.ToDateTime () in diesem Beispiel nicht?

Warum funktioniert das Layoutattribut "fullbleed" in diesem Snippet nicht?

Warum wird SFINAE in diesem Beispiel nicht angewendet?

Reagieren - Warum ist das Binden in diesem Beispiel nicht erforderlich?

Warum funktioniert das Finalize / Destructor-Beispiel in .NET Core nicht?

Warum funktioniert die Reaktion in diesem einfachen Beispiel nicht?

Warum funktionieren Farben in diesem Beispiel in matplotlib nicht?

Warum funktioniert das Zusammenführen von Schnittstellen in diesem Fall nicht?

Warum funktioniert die Plotinteraktivität (Ziehen und Zoomen) in diesem Python-Beispiel nicht mehr?

Warum funktioniert $ data reference in diesem Beispiel nicht?

Warum funktioniert das Inkrement in diesem Fall nicht?

Warum funktioniert die lexikalische Bindung in diesem Beispiel in Emacs nicht?

Warum funktioniert useRef in diesem Beispiel nicht?

Warum wird in diesem Beispiel das Überlauf-Flag nicht gesetzt?

Warum funktioniert das Auswendiglernen in diesem Python-Code nicht?

Warum funktioniert SFINAE in diesem Beispiel nicht wie erwartet?

Warum funktioniert die "for each" -Schleife in diesem Beispiel nicht wie eine "for" -Schleife?

Warum funktioniert das Transaktionsverhalten von Grails/Spring in diesem Fall nicht?

Warum funktioniert Stripe in diesem Beispiel nicht?

Warum funktioniert das Lambda-Beispiel in hankcs/AhoCorasickDoubleArrayTrie nicht?

Warum ist das sep='.' funktioniert in diesem Code nicht?

Warum funktioniert Typescript Type Guarding in diesem Beispiel nicht?

Warum funktioniert das Codepen-Beispiel mit alpinejs nicht mehr?

Warum funktioniert das Untersetzen des Datenrahmens in diesem Fall nicht?

Warum funktioniert das Kontrollkästchen in diesem reaktiven inneren Objekt nicht?

Warum funktioniert das Akkordeon in diesem Fall nicht?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv