Skocz do zawartości

[OpenGL][Delphi]Shadow Mapping


5corpio

Polecane posty

Mam pytanie co do używania map cieni ponieważ czegoś nie rozumiem. Jak mam już geometrię jakiejś np.: mapy i teksture z zapisanymi "cieniami", wyrenderowaną przez 3dMax-a to skąd mam wiedzieć jakie współrzędne tej tekstury z cienami wrzucić na konkretny trójkąt bo współrzędne tekstury tej normalnej z materiałem mam zapisane w pliku.


Przykładowy wierzchołek w trójkącie:
[code=Delphi]


glNormal3f(aMESH[0].aMESH_NORMALS[i].fX, aMESH[0].aMESÓPSWKKSQTKSQTÓPSWKNBB][U^6&C&d$\"tDUEU$S$\"ĆU4łćU4EdU%D5EśU4ł5M!}Q
1%MQmt%lutT4( wsk.aMESH[0].aMESH_TVERTLIST[aMESH[0].aMESH_TFACELIST[i].[^WKNBB][U^TÓVTLWT
N6BŚćbw7;7'ŚFćRO7'6ćĆ[[bFŚvćFV7GW'&Ś6FV6Vć\0ŚvfW'FW6bU4łćU4dU%DU5EśU4łćM!}
}1%MQmt%lut`4(5M!ltąMESH_VERTEX_LIST[aMESH[0].aMESH_FACE_LIST[i].fIndex[0]].fY,SQTKSQTTVÓTSQTKSQTd4U5EśćdćFWłće [/code]

No właśnie jak mam tą teksturę wygenerowaną przez maxa to jak obliczyć/znaleźć/zrobić wspólrzędne które można podać by zamapować aktualnie renderowany trójkąt odpowiednim kawałkiem z mapy cieni?

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Witam!
Te współrzędne wystarczy odczytać z pliku w którym był model biggrin.gif
Jeśli chodzi o ASE to dam wycinek:
KOD *MESH {

*TIMEVALUE 0

*MESH_NUMVERTEX 3

*MESH_NUMFACES 1

*MESH_VERTEX_LIST {

*MESH_VERTEX 0 -23.4859 -15.0222 6.7633

*MESH_VERTEX 1 -23.4859 11.0648 6.7633

*MESH_VERTEX 2 11.2967 11.0648 6.7633

}

*MESH_FACE_LIST {

*MESH_FACE 0: A: 2 B: 1 C: 0 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 3 *MESH_MTLID 0

}



//Koordynaty z pierwszej tekstury



*MESH_NUMTVERTEX 3

*MESH_TVERTLIST {

*MESH_TVERT 0 0.0005 0.0005 0.5000

*MESH_TVERT 1 0.0005 0.9995 0.5000

*MESH_TVERT 2 0.9995 0.9995 0.5000

}

*MESH_NUMTVFACES 1

*MESH_TFACELIST {

*MESH_TFACE 0 2 1 0

}



//i tutaj sobie odczytasz co potrzebne czyli drugą teksturę (prawdę mówiąc nie wiem dlaczego 3 kanał mi wyszedł)

*MESH_MAPPINGCHANNEL 3 {

*MESH_NUMTVERTEX 3

*MESH_TVERTLIST {

*MESH_TVERT 0 0.9700 0.7350 0.0000

*MESH_TVERT 1 0.9700 0.0300 0.0000

*MESH_TVERT 2 0.0300 0.0300 0.0000

}

*MESH_NUMTVFACES 1

*MESH_TFACELIST {

*MESH_TFACE 0 2 1 0

}

}

}

Pozdrawiam!
Spider ^*^

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Mam w okienku Render To Texture : Objects to Bake i w tym okienku jest: Name, Object Channel, Sub-Object Channel, Edge Padding to mam odczytać z pliku strukturę *MESH_MAPPINGCHANNEL z numerem który był podany w Object Channel w Render To Texture w Maxie ?

Edit: potym edicie Twoim chyba widzę, że mam to odczytać co myślę :]

PS. nigdy bym nie wpadł, że po tym Max dodatkowo do modelu dołącza kolejne koordynaty.

Edit2: Spider Dziękuje wreszcie ładnie działa. (Dał bym Pomógł ale to już standart, że mi nie działa, nie wiem czy to wina Opery czy czego)

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...