DirectX Sphere Texturkoordinaten
-
20-09-2019 - |
Frage
Ich habe eine Kugel mit pro-Vertex-Normalen und ich versuche, die Texturkoordinaten für das Objekt abzuleiten unter Verwendung des Algorithmus:
U = Asin(Norm.X) / PI + 0.5
V = Asin(Norm.Y) / PI + 0.5
Mit einer gepunkteten Textur, erhalte ich:
Hier ist das gleiche Objekt ohne die Textur angewendet:
Die Frage, die ich particuarly freue mich auf (ich weiß, es gibt ein paar) ist die Verlagerung der Texturen.
Ich bin geneigt, das Problem besteht in meiner Verwendung dieser Algorithmen zu glauben, als die spiegelnde Hervorhebung (die keine Texturen nicht nutzt, sondern auf dem Normalen angewiesen ist korrekt) erscheinen keinen Artefakte zu haben.
Irgendwelche Ideen?
Lösung
Sie können nicht nur geben Sie Ihre UVs, während Sie die Kugel bauen?
Dann:
u = theta / (2 * PI);
v = phi / PI;
Edit: Ich könnte auch darauf hinweisen, dass es wahrscheinlich etwas falsch mit Ihrem Normalen angesichts den schwarzen Punkt auf der Oberseite ist ... Es scheint auch entlang Polygonkanten markierte Zeilen werden. Dies wiederum deutet auf wahrscheinliche zwielichtige Normale ...