XNA / Silverlight 5 - grafika 3d

Odpowiedz Nowy wątek
2011-08-10 11:47
0

Witam
Zastanawiam sie czy w metodzie draw powiniennem w petli dla kazdego obiektu wywolywac GraphicsDevice.DrawPrimitives (wtedy to obiekt bedzie w pelni sterowal jak sie rysuje) czy jednak rozdzielic to na 3 bufory - lini, tekstur, czy zwyklych obiektow) i dopiero wtedy calo stworzony bufor przekazywac do DrawPrimitives?

Jakas podpowiedz?


Senior Software Designer .NET

Pozostało 580 znaków

2011-08-10 14:39
0

nie za bardzo wiem o co ci chodzi...
Dla każdego obiektu czyli dla każdego trójkąta ?


Przejdę, przejdę, myślał Red. Nie pierwszy raz, przecież przez całe życie właśnie tak, po szyję w gównie, a nad głową pioruny, zawsze tak było...

Pozostało 580 znaków

2011-08-10 14:54
0

Dla kazdego obiektu, np pudelka itp, ktore bedzie sie skladalo z wielu teksturowanych trojkatów.

Pytanie tylko czy jak bede wywolywal kilkaset razy DrawPrimitives() to to nie zamuli mi sceny? Bo mniej wiecej tyle obiektow i to statycznych bede mial na scenie.


Senior Software Designer .NET

Pozostało 580 znaków

2011-08-10 15:06
0

Wywołaj tylko raz :).

Dodawaj do buffora kolejne trójkąty tylko że musisz wiedzieć ile to będzie trójkątów :(.
Chyba że pobierzesz ilość wierzchołków i podzielisz na 3 aczkolwiek tez to nie zasada .

Ale pomysł z kilkoma DrawPrimitives() może wypalić ale nontoper musisz zmieniać buffor weź to pod uwagę.


Przejdę, przejdę, myślał Red. Nie pierwszy raz, przecież przez całe życie właśnie tak, po szyję w gównie, a nad głową pioruny, zawsze tak było...
edytowany 1x, ostatnio: konserwa, 2011-08-10 15:08

Pozostało 580 znaków

2011-08-10 15:46
0

Wlasnie biore to pod uwage i sie zastanawiam, czy to nie zabije wydajnosci.

Problem jest taki, ze tak naprawde to musze miec pare buforow - to jeden dla obiektow z teksturami - VertexPositionTexture, to dla 'zwyklych' obiektow: VertexPositionColor, czy lini, ktore uwypuklaja kontury obiektow.

Niestety nie znalazlem w necie jak powinien poprawnie wygladac obiekt, ktory rysowany jest na scenie - w sensie jaki ogolny interface mu stworzyc. Czy przekazywac mu wlasnie GrapchicsDevices i by sie sam rysowal, czy tylko by zwracal odpowiednie wartosci do buforow - acz tu mi wlasnie ta mnogos powyzszych typow nie pasowala, bo obiekt wkoncu moze miec teksture z jednej strony i zwracac VertexPositionTexture, a z drugiej miec zwykle VertexPositionColor...


Senior Software Designer .NET

Pozostało 580 znaków

2011-08-10 17:45
0

Możesz spróbować.
ty te obiekty masz w klasie(znaczy każdy obiekt np pudełko ma własną klase itd nie ?)

bo jeżeli tak to nie ma co sie stresować i dać te metode draw()
i niech ona ładuje buffor do urządzenia a potem niech rysuje.

Myślę że jeżeli spowolni scenę to pewnie nie wiele(warunkiem jest że wierzchołki(pozycje,kolor itd będziesz ładował tylko raz).

Niech każdy obiekt wywoła to dla siebie i zobacz jak będzie wyglądało.


Przejdę, przejdę, myślał Red. Nie pierwszy raz, przecież przez całe życie właśnie tak, po szyję w gównie, a nad głową pioruny, zawsze tak było...
edytowany 1x, ostatnio: konserwa, 2011-08-10 17:46

Pozostało 580 znaków

2011-08-11 14:21
0

I to chyba bedzie jedyna z opcji.... gdyz widze, ze problem jest z teksturami - ot jedna tekstura na jednego draw'a a innej opcji nie widze. Tak wiec kazdy obiekt musi sie sam malowac, bez przekazywania do bufora... dziwnie troche.

W jaki sposob robione jest to normalnie w xna? Gdzie mam np klase, ktora cos rysuje i teksturuje to ona sama sie rysuje, czy zwraca tylko liste vertex'ow z referencja na odpowiednia teksture?


Senior Software Designer .NET
nie kumam ujmij to trochę inaczej - konserwa 2011-08-11 16:57

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0