Napisano 17 Październik 200519 l 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 :) )
Napisano 17 Październik 200519 l 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.
Napisano 18 Październik 200519 l Autor 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 :/.
Napisano 19 Październik 200519 l "Potem przypisz temu obiektowi standardowy kolor" - moje przejęzyczenie, chodziło o materiał (standardowy oczywiście). Pisałem o Vertex Color bo bez niej nie wyswitelał mi kolorów przypisanych verteksom.
Napisano 20 Październik 200519 l Autor 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).
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto