Skocz do zawartości

Budowa geometrii od podstaw


Assamite

Rekomendowane odpowiedzi

Witam.

Chcialbym zbudowac cala geometrie od podstaw.

Czyli mam dane wierzcholki (x,y,z, kolor) i potrafie z nich zbudowac face'y.

Budowa geometrii nie stwarza mi problemow, gdyz jakos to wyglada - gorzej jest z kolorami.

Z tego co wyczytalem w referencji max traktuje geometrie i kolory / textury calkiem osobno. I jak dobrze zrozumialem trzeba zbudowac dla tej geometrii siatke wierzcholkow i face'ow tylko ze dla kolorow, gdzie odpowiadajacym wierzcholkom z geometrii beda odpowiadaly wierzcholki kolorow, ktore zamiast [x,y,z] beda mialy [r,g,b].

No i mam problem z tymi kolorami - robie te wierzcholki koloru, nadaje im jakis kolor (i to dziala, bo jak sprawdzam edit mesha recznie, to mi tam pokazuje kolory wierzcholkow i sie zgadzaja z tymi, ktore wpisalem w skrypcie), ale juz przy renderingu tego nie ma.

Nie wiem teraz, czy musze zastosowac jakis model cieniowania samemu (np Gourauda), czy max sobie potrafi sobie sam z tym poradzic.

 

Pokaze to na najprostrzym przykladzie :

mam 3 wierzcholki [0,0,0], [20,0,0], [0,20,0]

z nich buduje mesh :

 

troj = mesh vertices: #([0,0,0], [20,0,0], [0,20,0]) faces:#([1,2,3])

 

Teraz nie ma ten mesh zadnych wierzcholkow koloru, poniewaz jak wpisuje

ile = getNumCPVVerts troj , to ile ma wartosc 0.

Dopiero po zastosowaniu defaultVCFaces troj ma ona wartosc 3, czyli tyle ile sie mozna bylo spodziewac.

Nastepnie ustalam jakies kolorki:

setVertColor troj 1 [0,0,0]

setVertColor troj 2 [255,0,0]

setVertColor troj 3 [255,0,0]

i wywoluje update troj.

No i mimo ze zmienilem kolory wierzcholkow, to zarowno w widoku jak i w renderze kolor sie nie zmienia. A z tego co myslalem powinien przechodzic od czerwonego do czarnego.

 

Co robie zle ? (mam nadzieje ze jakos to w miare wytlumaczylem :) )

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 4
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Po sekwencji setVertColor musisz dodac jeszcze

 

setVCFace troj 1 [1,2,3]

 

zeby zbudowac facea. Potem przypisz temu obiektowi standardowy kolor i teksture Vertex Color i zrenderuj powinno juz byc dobrze.

 

Przy kolorowaniu vertexow jest tak zamo jak z budowaniem mesha. Nie wystarczy okreslic vertexow trzeba tez podac ktory face jest zbudowany na ktorych face'ach.

Odnośnik do komentarza
Udostępnij na innych stronach

Faktycznie - przeoczylem tego face'a koloru.

Tylko dalej nic to nie dalo. Tzn nie rozumiem dokladnie dlaczego mam przypisac temu obiektowi jakis kolor ? Kolor tego face'a nie powinien byc budowany na podstawie kolorow wierzcholkow wchodzacych w jego sklad ?

Tzn moze bardziej po fachowemu: nie powinien sobie max majac kolory wierzcholkow wchodzacych w sklad face'a interpolowac calej powierzni face'a kolorami zaleznymi od kolorwo tych wierzcholkow ?

No i przypisanie textury Vertex Color - jak to zrobic i czy to jest potrzebne, skoro wogole tekstur nie mam zamiaru uzywac ? O ile zrozumialem na podstawie referencji Texture Vert i Color Vert sa uzywane zamiennie. Wiec w moim wypadku zostalyby uzyte tylko CV, gdyz chce tylko nadac obiektowi jakis kolor, a nie nakladac bitmape.

Chce okreslic kolor obiektu tylko i wylacznie na podstawie koloru wierzcholkow, gdyz tylko takie posiadam dane - [x,y,z,kolor].

Eh, cos mi sie wydaje ze cos mi umknelo podczas czytania tej refencji (chociaz juz przerobilem te rozdzialy o budowie mesha kilka razy) i cos zle zrozumialem :/.

Odnośnik do komentarza
Udostępnij na innych stronach

Wielkie dzieki :D.

To jest wlasnie to o co mi chodzilo.

Wystarczylo dodac material , czyli jedna linijka kodu:

troj.material = standard diffuseMap: (Vertex_Color()) showInViewport:true

 

A przy okazji szukania tego znalazlem kilka fajnych rzeczy (m.in jak nadac rozne parametry cieniowania - wreszcie bede mogl zastosowac Phonga :D).

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności