GeirGrusom Skrevet 22. november 2010 Del Skrevet 22. november 2010 (endret) Jeg sitter og skal skrive en klasse for å lage skygger av objekter i WPF3D, men det er mangler, og korttenkte løsinger både her og der som får meg til å nesten rive ut håret. Jeg forstår at WPF3D skal være simpelt, og fungerer over alt, men noen løsninger er helt på jordet. Vektor3D klassen har masse mangler, blant annet ved at Normalize() ikke returnerer en normalisert versjon av vektoren, men jobber istedet direkte på vektoren. Dette går rett imot normal logikk, ettersom Vector3D er en valuetype. Problemet? Prøv dette: MyObject.Direction.Normalize() Det vil ikke fungere, fordi Direction getteren returnerer en kopi av den opprinnelige verdien. Vector3D sin multiplikasjon er også dot produkt, som er fullstendig ulogisk, ettersom denne funksjonen returnerer selvsagt en skalar, ikke en ny vektor. Matrix3D mangler tre celler, som normalt ikke gjør noen ting, men dersom du har tenkt til å lage en skygge-projeksjonsmatrise er det et stort problem. Transform3D lar seg heller ikke arve, ettersom masse internal abstract funksjoner ikke kan implementeres. MatrixTransform3D er sealed, så det er heller ikke en mulighet. Lys har en egen Position og Direction egenskap, som er fullstendig redundant, spesielt ettersom de ikke påvirker Transform, som igjen er et ekstra hinder for skygge-klassen min. Det er heller ikke mulig å skrive shaders for objekter. shaders kan kun skrives for post-process effekter av en eller annen grunn. WPF er bra til 2D GUI, men til 3D er det temmelig begrenset. Noen som vet om noen triks jeg kan bruke? Jeg prøvde å bruke ModelVisual3D som grunnlag istedet, men jeg kan ikke bruke Changed egenskapen på Transform3D, så jeg må oppdatere matrisen hver frame, istedet for kun når lyset flytter seg. edit: episk dobbelpost Endret 22. november 2010 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå