Gå til innhold

Irriterende momenter i WPF (rant


Anbefalte innlegg

Jeg driver nå med noe WPF greier. Jeg skulle lage en demo på order independent transparency ved enkelt å sortere scene. Av uante grunner er dette noe som mangler i Collection til scenen (altså Sort funksjon) så jeg må Hente ut listen, slette den, sortere den, og sette den sorterte listen tilbake.

 

Ved siden av dette har også Vector3D datatypen uventet oppførsel, ved at standard multiplikasjon bruker dot produkt. Matrix3D mangler 3 celler, som sjeldent brukes, men er temmelig viktig til akkurat det jeg skal gjøre, altså legge til en skygge projeksjon.

 

Det er også tøysete at en Light har "Position" og "Direction" ettersom dette er fullstendig redundante egenskaper, og kludrer til skygge-saken (ettersom jeg må ta høyde for at alle lys kan ha en posisjon, OG en transformasjon)

Det er heller ingen mulighet for å legge til shaders på objekter, til tross for at shaders kan brukes til å skrive post-process effekter.

 

Jeg forstår at det skal være enkelt, men likevel frustrerende når en skal legge til slike fullstendig basiske funksjoner som skygger. Ved bare å gjøre en bedre planlegging kunne det blitt gjort mye bedre. Det er også IDIOTI at Normalize ikke returnerer en vektor, men istedet arbeider på vektoren. Denne oppførselen er idiotisk fordi vektor er en value-type, og det fungerer derfor ikke å gjøre slik:

 

MyObject.Direction.Normalize()

Dette vil ikke fungere, ettersom get-eren returnerer en kopi av vektoren, og resultatet vil derfor havne i søpla ganske fort uten å gjøre noen endringer på selve objektet. en må derfor gjøre slik:

var norm = MyObject.Direction;
norm.Normalize();
MyObject.Direction = norm;

 

istedet for:

Myobject.Direction = MyObject.Direction.Normalize();

Hva i svarte? Dette er jo grunnleggende saker, som SPESIELT Microsoft-utviklere burde vite.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...