Tangential Space Normal Mapping - Überprüfung der Plausibilität

9

Ich bekomme einige ziemlich freakige Ergebnisse von meinem Tangential Space Mapping Shader :). In der Szene, die ich hier zeige, werden die Teekanne und die karierten Wände mit meinem gewöhnlichen Phong-Blinn-Shader beschattet (offensichtlich gibt die Teekannen-Rückseitenfraktion ein leicht ephemeres Aussehen :-)). Ich habe versucht, die Kugel mit psychedelischen Ergebnissen zu ergänzen:

Das Licht kommt von rechts (gerade sichtbar als schwarzer Fleck). Die normale Karte, die ich auf der Kugel verwende, sieht so aus:

Ich benutze AssImp, um Eingabemodelle zu verarbeiten, also berechnet er automatisch Tangens und Bi-Normalen für jeden Vertex für mich.

Die Pixel- und Vertex-Shader sind darunter. Ich bin mir nicht sicher, was falsch läuft, aber es würde mich nicht überraschen, wenn die Matrix der Tangentenbasis irgendwie falsch ist. Ich gehe davon aus, dass ich Dinge in den Augenraum berechnen muss und dann die Augen- und Lichtvektoren in den Tangentialraum transformieren muss und dass dies der richtige Weg ist. Beachten Sie, dass die Lichtposition bereits im Ansichtsbereich in den Shader gelangt.

%Vor%

... und der Pixelshader sieht so aus:

%Vor%

Bearbeiten: 3D Studio Rendern der Szene (um zu zeigen, dass die UVs auf der Kugel OK sind):

    
Robinson 05.04.2012, 15:33
quelle

1 Antwort

3

Ich denke, deine Shader sind in Ordnung, aber deine Texturkoordinaten auf der Sphäre sind komplett aus. Es ist, als ob sie zu den Polen entlang der Länge verzerrt würden.

    
datenwolf 05.04.2012, 16:29
quelle

Tags und Links

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '315250',
    'url' => 'tangent-space-normal-mapping-shader-sanity-check',
];

$_SESSION = [
    '__flash' => [],
];