Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Phili

unregistriert

1

23.10.2006, 21:14

Tangent-Space Vektoren-wie werden die errechnet?

hallo,
ich hab nen kleines Problem dabei, die Tangenten-Vektoren für Bump-mapping zu errechnen. Am liebsten wär mir natürlich, wenn das .x-Format die schon mittliefern würde, aber das scheint ja leider nciht der Fall zu sein :cry: .
Also, weiß jemand, wie ich mithifle von 3 Vertizes mit je Position, Texturkoords und Normalen den "Tangent Space" errechnen kann?

Übigens, wiso heiß das eigentlich "Tangent Space"?
Hatt doch eigentlich nix mit Tangenten zu tun :?

thx im Voraus für Hilfe

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

2

23.10.2006, 22:49

Tangent Space is der durch die Tangenten (sowie die Normale) aufgespannte Raum.

Ausm Kopf, es gibt Code hier:
ShaderX4 oder so, von CryTech
D3DX hat IMHO eine Funktion wenn Du meshs einsetzt.
NVidia's MeshMender kanns und ist evtl der beste Weg
http://www.codesampler.com/dx9src/dx9src_7.htm ist IIRC nicht vollständig (hat keine Handedness?)
http://www.terathon.com/code/tangent.php ist gut aber ohne Einführung schwer bis kaum zu verstehen
Ich weiss leider gerade keinen Link zu einer Einführung auswendig
"Games are algorithmic entertainment."

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

23.10.2006, 23:19

http://msdn2.microsoft.com/en-us/library/ms810494.aspx

gleich im ersten abschnitt "Fundamentals" steht wies geht ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

24.10.2006, 07:55

Hi!

In diesem Tutorial wird das Aufstellen der TSM (Tangent Space Matrix) recht anschaulich und gut erklährt.

grüße
@D13_Dreinig

Phili

unregistriert

5

24.10.2006, 13:36

@Osram
Naja, ich benutz ja nicht die .X Meshes selber, sondern mein Konverter in mein eigenes Format ebnutzt sie. Ganz so einfac hkann ihcs mir also nciht machen...
@dot
Naja, da wird ganz toll erklärt, was es ist, aber das wusste ich auch schon davor...
@David_pb
Jepp, ich glaub genau das hab ich gesucht

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

24.10.2006, 14:56

Zitat

Naja, da wird ganz toll erklärt, was es ist, aber das wusste ich auch schon davor...


Zitat

Also, weiß jemand, wie ich mithifle von 3 Vertizes mit je Position, Texturkoords und Normalen den "Tangent Space" errechnen kann?


Zitat von »"msdn"«

Vec1 = Vertex3 – Vertex2
Vec2 = Vertex1 – Vertex2
DeltaU1 = Vertex3.u - Vertex2.u
DeltaU2 = Vertex1.u - Vertex2.u
DirectionV = |DeltaU2*Vec1-DeltaU1*Vec2|
DirectionU = |DirectionV x Vertex.N|
DirectionW = |DirectionU x DirectionV|


... ;)

Phili

unregistriert

7

24.10.2006, 15:49

@dot
Sorry, nehmst zurück... :oops:
Habs mir halt mal angeschaut und des überflogen. Hab auf den erstem Blick gedacht, da wird nur erklärt wass es ist und nciht wie mans errechnet. Habs einfach übersehen... thx

Phili

unregistriert

8

24.10.2006, 16:01

@Osram

Zitat

D3DX hat IMHO eine Funktion wenn Du meshs einsetzt.

was für eine?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

Phili

unregistriert

10

24.10.2006, 17:51

@dot
Ich hoff auf meine jetzige(hoffentlich letzte) dumme Frage kommt auch keine bös gemeinte Antwort ;) ...

Zitat

The results will be stored in the original input mesh pMesh. The function will fail if new vertices need to be created.

Wo genau?
In den 2. Texturkoordinaten des Vertex Buffers, oder wie?(Da würd ich sie hinmachen).

Werbeanzeige