Avatar billede lemon Nybegynder
02. marts 2004 - 21:09 Der er 9 kommentarer og
1 løsning

DX 9 Vertex Tu og Tv

Hvad gør Tu og Tv helt præcist ? Jeg er med på at det er en slags koordinater for texturen på en vertex, men hvordan fungerer det helt specifikt?
Avatar billede jpk Nybegynder
03. marts 2004 - 09:35 #1
Det er lidt svært at forklare her, da det ofte hjælper med et par illustrationer.
Jeg kan dog prøve...
(jeg håber illustrationerne ikke bliver helt forfærdentlige...)


Forestil dig følgende 8 primitives:
_________ _________
|\        |\        |
|  \      |  \      |
|    \    |    \    |
|      \  |      \  |
|________\|________\|
|\        |\        |
|  \      |  \      |
|    \    |    \    |
|      \  |      \  |
|________\|________\|


Hvis du vil lægge en texture over denne firkant, så den dækkes helt, skal dine koordinater for (Tu, Tv) være således:
(jeg har brugt ½ istedet for 0.5, så det er lettere at overskue)

    0,0      ½,0    1,0
    _________ _________
    |\        |\        |
    |  \      |  \      |
    |    \    |    \    |
    |      \  |      \  |
0,½ |________\|________\|1,½
    |\        |\        |
    |  \      |  \      |
    |    \    |    \    |
    |      \  |      \  |
    |________\|________\|

    0,1      ½,1      1,1


En vertex' Tu og Tv koordinater går normalt fra 0.0 til 1.0 og giver en mapning til en texture.
Hvis du fx har en Tu værdi på 0.3 og en texture der er 100 px bred, vil værdien svare til 30 px fra venstre.
Hvis texturen er 150 px bred, vil det svare til 45 px fra venstre.
Avatar billede jpk Nybegynder
03. marts 2004 - 09:36 #2
Tja, formateringen rog sig jo en tur...
Avatar billede jpk Nybegynder
03. marts 2004 - 09:37 #3
Hver figur skulle bestå af 2x2 firkanter, hvaer bestående af to trekanter.
Avatar billede lemon Nybegynder
03. marts 2004 - 11:44 #4
Ja formateringen røg, men det giver stadig mening.

Hvis man nu angiver eks. 0.5,0 og 1.5,0, vil det så resultere i at man får de sidste 50% efterfulgt af de første 50% eller hvordan vil det blive fortolket?
Avatar billede lemon Nybegynder
03. marts 2004 - 11:46 #5
Vil eks. (0.5,1) og (1,0) og (1.5,1) give følgende to trekanter, sat sammen:

/| og |\
Avatar billede jpk Nybegynder
03. marts 2004 - 13:25 #6
Det afhænger af hvilken renderstate du bruger.
D3DTADDRESS_WRAP gentager texturen for hver heltalsgrænse (altså som i dit ex med 0.5,0 og 1.5,0).
D3DTADDRESS_MIRROR Spejler texturen for hver heltalsgrænse.
D3DTADDRESS_CLAMP "udtværer" hjørnerne af en texture på resten af objektet.
D3DTADDRESS_BORDER Giver en farve til de dele af objektet der ikke er dækket af en texture inden for koordinaterne 0.0,1.0.

Det er dog alt sammen svært at forklare uden illustrationer. Den bedste måde at lære det på er ved at læse en bog og prøve selv.
Avatar billede jpk Nybegynder
03. marts 2004 - 13:26 #7
Jeg forstår ikke dit spm. med trekanterne..?
Avatar billede lemon Nybegynder
03. marts 2004 - 13:36 #8
Det jeg mente med trekanterne var om den laver en slags tiles, spejler, stretcher eller noget helt andet, når man angiver en >1.0 værdi. Men jeg tror jeg har fanget det nu - skal bare lige eksperimentere lidt med hvad der giver den bedste effekt i forskellige tilfælde.

Mht. bøger, så har jeg fået fingrene i flere forskellige, men jeg synes de fleste er så dårligt formulerede (ofte virker det som om forfatteren(ene) enten ikke selv har fattet hvad de skriver om, eller, som oftest, at de går ud fra at man allerede ved halvdelen af det de skriver om.
Jeg savner en DirectX bibel hvor ALT bliver udpenslet til mindste detalje, med masser af eksempler og et gennemført indeks, så den kan bruges som reference.
Avatar billede jpk Nybegynder
03. marts 2004 - 13:40 #9
Tja, det skulle godt nok være en tyk bog...
Avatar billede lemon Nybegynder
03. marts 2004 - 13:43 #10
Hehe ja. Eller flere tykke bøger - det ville faktisk se ret godt ud på nørd-reolen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester