Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Proiecte » Devlogs » 13




Pagina 3 din 3 [ 1 | 2 | 3 ]

Mesaj Info autor
    Postat la 04 Jul 2007 14:55:44    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Cu exportorul a mers neasteptat de usor, desi nu am mai scris boaba de Python pana acum. O sa pun in curand o poza cu primul model exportat Smile

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 04 Jul 2007 19:14:00    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Cand lucram la exportarea UV-urilor, mi-a trecut prin minte o problema interesanta legata de compresarea numarului de vertecsi folosind indecsi...

Dupa cum se vede din desenul de mai jos, facut in Paint de catre moi de-ti vine sa-ti scoti ochii din cap cu o furculita si sa le dai foc, daca doua triunghiuri care impart 1 (sau 2) vertex sunt mapate cu o textura astfel incat maparea nu este 'continua' (adica un triunghi este mapat cu o bucata din textura, iar celelat nu cu o bucata adiacenta celeilalte, ci cu una separata, indepartata de prima) atunci cele 2 triunghiuri nu pot impartii vertexul, deoarece coord. UV sunt scrise in vertex... altfel spus, o limitare a compresarii unui vertex buffer c-un index buffer.



Mie chestia asta nu mi sa parut evidenta la inceput, am dat peste ea cand imi frecam neuronii cu UVuriel in Blender...

Asa ca am inceput sa ma gandesc cum pot exporta incat as iasa texturarea corect, dar nici sa renunt la index buffer. Defapt, in cazul din poza, fara index buffer, ar fi nevoie de 12 vertecsi, cu index buffer facut fara sa-mi dau seama de limitarea de mai sus, ar fi 6 vertecsi, dar maparea ar iesi gresit, iar cu index buffer, SI incat sa se vada corect, ar fi nevoie de 8 vertecsi, deci tot compresez de la 12 la 8.

Acum ma gandesc cum sa exportez corect... Blender imi da datele cam asa: o lista cu vertecsi, 6 in cazul acesta, care contin pozitie si normala, si index-ul vertexului in acel mesh. NU si UV per vertex; apoi am si o lista cu fetze, pt fiecare fata am o lista cu vertecsii din care e facut, exact ca mai sus, si UVuri pt fiecare vertex.

Cum m-am gandit eu preliminar sa trec de problema, este, din moment ce pot compara indexul (un int) al unui vertex din fiecare fatza cu indexul unui vertex din lista de vertecsi din mesh (cum ar veni, fatza tzine pointer la vertecsii meshului), atunci pot lua fiecare vertex din mesh, si verific fiecare fatza care foloseste respectivul vertex, iar daca exista doua fetze care folosesc acelasi vertex, dar au coord. UV diferite, atunci nu-mi ramane decat sa fac o copie a respectivului vertex, il adaug in lista de vertecsi al mesh-ului, si setez fatza sa indice spre noul vertex.

Repet procedura pana cand nu mai exista doua fetze care sa se refere la acelasi vertex, dar sa contina UVuri diferite, dupa care exportez cum am facut pana acum.

My bet este ca, daca scriu acei noi vertecsi la sfarsitul listei de vertecsi al mesh-ului, o sa cam stric posibilitatea de a nimeri vertex cach-ul. Nu stiu sigur, e doar o banuiala; dar daca e adevarat, atunci s-ar putea sa repar asta daca adaug noul vertex dupa cel original, si stiu si ce&cum, dar nu mi se pare ceva suficient de 'critic', plus ca ar mai adauga la timpul de exportare... in fine. Smile

Oricum ar fi, viata in Blender&Python e usoara, o sa termin exportorul de placere! Smile

Pareri/comentarii/flaming?

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 05 Jul 2007 09:01:27    Subiect: < fara subiect >
raicuandi info:

raicuandi:

3 words: Python. kicks. ass.
Smile

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 05 Jul 2007 16:03:18    Subiect: < fara subiect >
surreal info:

surreal:

Mi se pare buna ideea asta sa elimini vertexii cu uv-uri diferite.
Eu zic ca are rost sa depui un pic de efort in plus si pt. inserarea noilor vertex-uri dupa cel original, macar n-ai mustrari de constiintza ca ai fi putut optimiza. Oricum rau nu face.

Ca si algoritm de detectare a acestor vertexi bazat pe ideea ta ma gandeam la urmatorul algoritm(destul de rapid):

- in lista de vertexi mai aduagi cate o lista 'm_listaFetze' pt. fiecare membru(vertex).

un vertex va contzine: (m_pozitie, m_normala, m_listaFetze)

pt fiecare fatza considera cele 3 coltzuri v1,v2,v3 {
adauga la vertexes[v1/v2/v3].m_listaFetze indexul fetzei curente
}

- acuma pt. fiecare vertex in m_listaFetze ai lista fetzelor din care face parte

pt fiecare 'vertex' din 'vertexes' {
    daca exista clone de ale lui 'vertex' cu uv-uri diferite pe o fatza oarecare {
        cloneaza vertex-ul sia adauga-l dupa original in 'vertexes'
        updateaza index-ul in fatza
    }
}

Reality is the single possibility I can't ignore


Status:
Înregistrat pe:
21 Jun 2007 16:41:32
Vârsta: 32 ani
Mesaje: 31
Locatie: Cluj
Programator

 
    Postat la 06 Jul 2007 15:00:56    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Mersi surreal, dar am facut altfel pana la urma, desi dureaza probabil mai mult, algoritmul este mai simplu, si o sa am nevoie de asta, deoarece o sa adaug mai tarziu aceasi schema pt culori/vertex.

Ieri nu am lucrat nimic, a inceput vacanta de 2 saptamani... si am sarbatorit dormind 14 ore Smile

Am terminat azi in cateva ore exportorul (gotta love Python!), si am zis sa-l testez, deh..

Numai ca eu dezvolt chestiile pt Blender pe un alt calculator, un Pentium 2 cu o placa S3 Trio3D... de 8MB... nici nu se mai fabrica asa ceva... defapt, nici nu s-au scos vreodata drivere "final stable" pt Windows XP, folosesc niste drivere beta! Si totusi, antichitatea asta bate in OpenGL placa mea de pe laptop facuta cam prin 2003, un ATI x200m, cu 64MB. Incredibil!


Trecand peste momentul umilitor asupra ATI, pot muta date de pe un calculator pe celalalt doar prin internet, deci a trebuit sa mut cablul de retea ce duce la modemul ADSL de la laptop la... chestia aia ingalbenita, care desigur e prea voluminos sa stea pe birou... ma aplec sub birou, pun cablul de retea, si cum nu sunt obisnuit cu nenorocitele alea de suporturi glisante pt tastaturi, dau cu capul de ea in drumul meu spre "sus".

Trecand peste momentul umilitor asupra mea, din senin nu mai merge calculatorul vechi. Mouse-ul nu se misca, tastele nu fac nimic... e mort! Smile Da-i restart, TOT NIMIC!

Pana la urma am recurs la trucuri voodoo sa-l fac sa mearga, iar acum ma indrept spre testarea modelului exportat... (pozitii, normale, UV)
Pentru un cub texturat, mi-a dat 20 de vertecsi, asta este mai putin decat daca ar fi fost 4 vertecsi/patrat... daca a iesit bine sau nu, inca nu stiu...

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 06 Jul 2007 15:35:58    Subiect: Re:
Rimio info:

Rimio:

raicuandi a scris:

Trecand peste momentul umilitor asupra mea, din senin nu mai merge calculatorul vechi. Mouse-ul nu se misca, tastele nu fac nimic... e mort! Smile Da-i restart, TOT NIMIC!

Pana la urma am recurs la trucuri voodoo sa-l fac sa mearga, iar acum ma indrept spre testarea modelului exportat... (pozitii, normale, UV)
Pentru un cub texturat, mi-a dat 20 de vertecsi, asta este mai putin decat daca ar fi fost 4 vertecsi/patrat... daca a iesit bine sau nu, inca nu stiu...


Somebody up there really hates you Very Happy ...

If at first you don't succeed, you fail.



Status:
Înregistrat pe:
24 Mar 2007 21:50:44
Vârsta: 23 ani
Mesaje: 794
Locatie: Pitesti, Arges
Programator

 
    Postat la 06 Jul 2007 17:12:57    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Man, you can say that again!...

Apropo de placa mea ATI, am testat sa vad cum e daca rendez 90 de obiecte... 'obiectele' fiind desigur o gluma, toate la fel, si doar un quad - 2 triunghiuri fiecare.

La fiecare din cele 90 draw calluri pe frame, schimb doar world matrix-ul, si rendez din nou, ATAT! Si ies numai cu 30 de FPSuri... fara iluminare, fara AA, fara nimic... Nu mi se pare normal... si asta e in Release. Neutral Totusi NFS Underground 2 e jucabil la mine...

Am buguri in exportor, nu mi le scoate bine inca.

/edit: Se ofera sa mi-l testeze si mie cineva? Pornesti programul, apesi CTRL+O sa vezi statisticile (FPS etc.) Daca se ofera cineva, o sa-l uploadez...

Ultima editare efectuată de raicuandi pe 06 Jul 2007 17:15:26; 1 editări în total

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 06 Jul 2007 18:23:21    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Rimio, daca-ti zic ce nu mergea bine, nu o sa ma crezi...
Pe cuvantul meu, sunt prostii voodoo la mijloc! Confused

(hint: incearca asta in Delphi sau ce vrei tu: float f := 1.0f; float f2 := f; cat crezi ca o sa fie f2? Uite ca la mine poate sa fie si -1... asa ce e mai smechera.... )

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 06 Jul 2007 18:41:40    Subiect: < fara subiect >
raicuandi info:

raicuandi:

DIN PACATE, nu este vorba de nimic supra-natural Smile
Am mai patit "voodoo stuff" acu vre-o 2 ani, acum mi-am adus aminte:
Cand un CPU are 'probleme' (de obicei din cauza ca se incalzeste prea tare, ex. poate fi stricat ventilatorul, ceva cu pasta... etc.) atunci nu mai lucreaza corect. "Faza" este ca nu MEREU, ci doar cand este in full load, dar 'full load' de tot Smile Se stie bine ca atunci cand procesoru e in full load, se incalzeste mai tare. Aici e buba. Am patit-o in linux acu vre-o 2 ani. Totul mergea perfect, mai putin atunci cand vroiam sa compilez ceva... (chestii mari, gen kernelu, de dura o ora intreaga): la un moment dat, murea compilatorul cu un "segmention fault". Am incercat tot ce sa putut pe lumea asta, dar tot nu a mers pana nu am facut under-clock la CPU, cu vre-o 100 MHz (era ceva la un CPU de 1.5GHz pe vremea aia Smile ) Atunci a mers din prima... (in ziua aia am ramas asa de masca Shocked incat m-am jurat ca nu mai desfac carcasa la nici-un calculator cate zile mai am, dar uite ca am mintit... Smile )

Cred ca e si aici la fel... se prea poate la un calculator atat de vechi (Celeron@466MHz) sa se fi depus destul praf incat sa nu mai mearga bine ventilatorul, sau alte minunatii, sau poate pur si simplu ia trecut timpul Smile

Python este compilat in byte-code, apoi interpretat la rulare, deci vad asta destul de "full-load" IMO

Sau poate un destept a over-clock-uit calculatorul asta... Smile (ca io l-am primit)

Of of, grea viata cateodata si cu calculatoarele astea... "pianul acela mai ciudat cu ecran" mi-a zis odata un om batran prin Satu Mare sau vre-un alt oras parca... m-am prapadit de ras (io si skelet hoinaream orasu pe atunci, ne cautau profele ingrozite) Laughing

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 06 Jul 2007 19:08:51    Subiect: < fara subiect >
raicuandi info:

raicuandi:

S-au strecurat cativa gandecei in exportor, desi in mare merge acum.. (cum? am chemat exorcistu, cum altfel???)

Pentru cub, din cei 20 de vertecsi scrisi (desi am impresia ca ar trebui sa iasa numa 12), nu sunt folositi deloc vertecsii 4 si 13 de nici un triunghi... Smile Doua numere mult indragite, primul foarte comun prin catalog, iar al 2lea ... (toti restul de vertecsi sunt folositi!)

Imi bag p*** in ea de programare, ma fac cercetator intr-ale paranormalului , sigur o sa am succes Smile

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 06 Jul 2007 21:12:45    Subiect: < fara subiect >
raicuandi info:

raicuandi:

Update pe prima pagina! Exportorul merge acum! Smile
Dar sa facut cam lunga pagina aia.. Confused
Ar trebui sa incep sa postez ca ultimul post...

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 
    Postat la 06 Jul 2007 21:16:10    Subiect: < fara subiect >
raicuandi info:

raicuandi:

UPDATE
7 iulie


Dupa cateva momente paranormale, am reusit sa fac exportorul meu in Python sa mearga, facut tot intr-o singura zi Smile (Python a fost principalul ajutor!)

Dupa ce cubul a mers cu succes, am stat ca pe jar cand am transferat ultimul test (numarul 13!! 13!!! Smile ) : capul de maimuta din Blender (un fel de echivalent al teapot-ului clasic)

Din cate se vede, exportorul merge bine: ~900 de fete, si ~500 vertecsi, iar texturarea pare ok. (se vede mai bine pe cub, pe maimuta e cam ciudat, desigur, deoarece l-am texturat folosind un cilindru din perspectiva din fata ei)

In formatul XML, asta inseamna 135KB, vre-o 5 secunde dureaza sa-l exporteze pe un Celeron@466, si cam 3 secunde sa-l importeze pe un Celeron@1.6GHz )

De mentionat (pt mandriea mea Smile ) este ca au fost numai bug-uri minore de genul a schimba ">" in ">=", nimic "mare", fara eroare de concept sau design!

Exportorul a fost EXTREM de usor de scris in Python! Cum m-am intors sa scriu sistemul de screen-shot in C++, mi sa si facut dor de Python! Smile

Desigur, acesta e un format text, este si de asteptat! O sa se reduca drastic dimensiunile si timpii de incarcare atunci cand trec la formatul binar, dar n-o sa fac asta deocamdata, deoarece formatul insusi este cam nou-nascut, deci o sa fie modificat des, si doar ma chinui cu binarele aducandu-le la zi mereu. E mai bine XML asa o vreme.

Ah, desigur, nu puteau lipsii screenshoturile! Nu prea se intelege din lipsa iluminarii, a lipsei umbrelor, si pt ca textura e stearsa rau, dar acolo e un cap de maimuta, pe cuvant! Smile In plus, am pus si un render wire-frame... Wink Si cu ocazia asta, am scris si codul pt screenshoturi!




Nota: exportarea UVurile ESTE corecta, asa am texturat maimuta si in Blender! Se observa ca arata mai corect pe gura maimutei, si se vede asa ciudat pt ca am texturat folosind o tehnica foarte primitiva Smile

Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.


Status:
Înregistrat pe:
24 Mar 2007 21:02:40
Vârsta: 22 ani
Mesaje: 514
Locatie: Adelaide, Australia
Programator

 

Pagina 3 din 3 [ 1 | 2 | 3 ]


Server time: 22:00:49 10.02.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2011 Copyright 7thFACTOR Entertainment - All rights reserved