Page 1 of 2
Teksturu novietojums uz 3d modeļa
Posted: 09 Apr 2011, 20:58
by CodeWolf
Labs vakars.. Vai kāds lūdzu nevarētu man izpalīdzēt ar teksturu novietojumu uz 3d modeļa?
Lieta tada ,ka izveidoju *obj modeļu nolasītāju... viss itka būtu labi , neskaitot to ka nezinu kā novietot tekstūras uz modeļa..
Kods kur manuprāt vajadzētu ievietot teksturu koardinatas:
Code: Select all
glBegin(GL_TRIANGLES);
for (int i=0; i<triangleCount; i++)
{
//glTextCoord2d(...
glVertex3f(v[t[i].v1-1].x * 0.25, v[t[i].v1-1].y * 0.25, v[t[i].v1-1].z * 0.25);
//glTextCoord2d(....
glVertex3f(v[t[i].v2-1].x * 0.25, v[t[i].v2-1].y * 0.25, v[t[i].v2-1].z * 0.25);
//glTextCoord2d(.....
glVertex3f(v[t[i].v3-1].x * 0.25, v[t[i].v3-1].y * 0.25, v[t[i].v3-1].z * 0.25);
}
printf("Tri* %d | Vert* %d | TexCords* %d \n",triangleCount,vertexCount,texcordCount);//check
glEnd();
Re: Teksturu novietojums uz 3d modeļa
Posted: 10 Apr 2011, 07:25
by snake5
glTexCoord2f tur manuprāt labāk derēs. d-funkcijas strādā ar double cipariem, ne float (grūti gan saprast, kas tev citur lietots, varbūt arī ar double ir labāk).
Citādi gan viss izskatās pareizi, daudz gan nevaru pateikt bez datiem.
P.S. Neieteiktu aizrauties ar manuālu objektu mocīšanu zīmēšanas laikā (tie *0.25). Tam cilvēki lieto matricas.
Re: Teksturu novietojums uz 3d modeļa
Posted: 10 Apr 2011, 12:42
by bubu
Snjakem: Cipars nav tas pats, kas skaitlis - tāpat kā burts nav tas pats, kas vārds.
CodeWolf: Tekstūru informāciju nevar no zila gaisa izrēķināt vai uzminēt no virsotņu koordinātēm. Vai nu tev šī informācija jānolasa no tā paša obj faila formāta (ja tur tāda ir, tad katrai virsotnei tur jābūt norādītai tekstūras koordinātei - diviem skaitļiem u un v), vai nu arī pašam manuāli katrai virsotnei jāpiekārto tekstūru koordinātes. Citādi tas nestrādā.
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 16:47
by CodeWolf
Nu to es itkā saprotu + tekstūru dati tiek nolasīti no modeļa faila...
minuss tads ka nezinu kā viņas uzstadit uz modeļa..
viss strādā...
kā man uz tex cord uzstādīt listi? Šādi?
te būs full source:
http://pastebin.com/TfQ1D2NU
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 16:55
by snake5
http://en.wikipedia.org/wiki/Wavefront_ ... coordinate
Pēc šī vajadzētu saprast, kā var nolasīt/pielietot tekstūru koordinātas.
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 16:58
by bubu
Tavai texcoord struktūrai nemaz nav vx un vy memberu. Tai ir u un v memberi, kurus tad arī jālieto:
Code: Select all
glTextCoord2f(vt[t[i].v1-1].u, vt[t[i].v1-1].v);
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 17:44
by CodeWolf
Ups... nepamaniju.. vnk pāris dienas atpakaļ izmainiju un ar to ari beidzu.. shon piesedos veel nepaspēju kompilēt + nomainīt... .u .v ...
mhmm.. tgd jadoma kā lai pievieno tekstūru katram modelim klāt...
ja pareizi saprotu tad virs tekstūrām jāpievieno
glBindTexture (GL_TEXTURE_2D,ModTe
);...
bet ka lai pectam izsaucu teksturas main failā? tā lai katram objektam būtu savi tekstūru faili .
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 17:58
by snake5
Lai tekstūras pieliktu, tās vispirms vajag ielādēt. Kā tev ar to kodā?
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 18:47
by bubu
Re: Teksturu novietojums uz 3d modeļa
Posted: 11 Apr 2011, 21:23
by CodeWolf
bubu nedomāju ka tev kas tads bija jamekle un jaraksta... teksturu loaderis jau sen uz pc staav ,jo 2 d speles tak kka bij jauztaisa...
te būs main fails kurā tiek izveidotas tekstūras,spraiti + kur vajadētu atrasties arī 3D modeļu tekstūrām....
http://pastebin.com/48crMryn