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ā...
Image
kā man uz tex cord uzstādīt listi? Šādi?

Code: Select all

glTextCoord2d(vt[i].vx,vt[i].vy);
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
CodeWolf wrote:

Code: Select all

glTextCoord2d(vt[i].vx,vt[i].vy);
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 ... :D
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