|
Pravljenje igara Programski jezici, tehnike, alatke u službi pravljenja igara... |
|
Alatke vezane za temu | Vrste prikaza |
8.7.2007, 18:03 | #1 |
Kekule Mekule
|
Animacija teksture u OpenGL-u
Kako da uradim animaciju teksture u OpenGL-u? Ta animacija je za sprajt, ortografijska projekcija je podesena i ostatak, ali me buni kako da uradim animaciju teksture?
|
8.7.2007, 18:39 | #2 |
Starosedelac
|
Re: Animacija teksture u OpenGL-u
Kako bi bilo da pomerash koordinate teksture za vertexe? Npr. imash teksturu 256x256 i na njoj delove od po 32x32 (dajem samo primer) koje hocesh da animirash, tj. da se npr. vojnik krece. Znaci imash 4 vertexa
Kod:
1------2 | | | | | | 3------4 1 - (0,0) 2 - (1,0) 3 - (0,1) 4 - (1,1) nego one vrednosti kojim odgovaraju polozaji tih delova, za prvu sliku bilo bi 1 - (0,0) 2 - (0.25,0) 3 - (0,0.25) 4 - (0.25,0.25) za sledecu 1 - (0.25,0) 2 - (0.5,0) 3 - (0.25,0.25) 4 - (0.5,0.25) itd... ako si na to mislio ako nisi, reci pa da vidimo... |
9.7.2007, 14:18 | #3 |
Član
|
Re: Animacija teksture u OpenGL-u
Posto ce ti ovako nesto cesto trebati (animacija, tilesets itd.) mozda bi bilo pametnije prvo uraditi proceduru koja iscrtava zeljeni delic texture. Ovako nesto:
Kod:
void DrawImage2dPart(Texture * tex, float x, float y, float bx, float by, float width, float height) { int w=(*tex).width; int h=(*tex).height; glBindTexture(GL_TEXTURE_2D, (*tex).texID); glBegin(GL_QUADS); glTexCoord2f(bx/w,1-(by+height)/h); glVertex2f(x,y+height); glTexCoord2f((bx+width)/w,1-(by+height)/h); Vertex2f(x+width,y+height); glTexCoord2f((bx+width)/w,1-by/h); glVertex2f(x+width,y); glTexCoord2f(bx/w,1-by/h); glVertex2f(x,y); glEnd(); glBindTexture(GL_TEXTURE_2D, 0); } |
9.7.2007, 17:21 | #4 |
Kekule Mekule
|
Re: Animacija teksture u OpenGL-u
@kish: Uradio sam ja to josh kad je EclipsE napisao, nego nisam stigo da javim
|
14.7.2007, 22:33 | #5 |
Kekule Mekule
|
Re: Animacija teksture u OpenGL-u
Da ne pravim novu temu, kako da uradim Pixel-Perfect koliziju u OpenGL-u (2D naravno), posto mi je bounding box previse neprecizan?
|
15.7.2007, 0:55 | #6 |
Starosedelac
|
Re: Animacija teksture u OpenGL-u
Prvo trebash da uzmesh pixele i smestish ih u neki niz( pogledaj ovu funkciju glGetTexImage (get pixels from a texture)), e sad, tekstura neka ti bude crno bela, belo je prazno, crno je puno, i kad imash 2 niza uporedjujesh ih ALI morash da imash i u uvid da se ne uporedjuju samo teksture, posto se sprajtovi mogu nalaziti bilo gde u prostoru... Moj predlog ti je da se manesh toga, posto puno pixela = puno proveravanja = male performanse... Ja bih napravio sistem za deljenje sprajtova u bounding boxeve, znaci jedan sprajt, vise bounding boxeva, i time mozesh sebi da skratish proracune mnooooogo... Isto, da imash recimo glavni bounding box koji obuhvata ceo sprajt, i prvo uporedjujesh veliki sa velikim, ako je doslo do kolizije onda svaki mali posebno. Ako hocesh, odradicu ti primer za BitBlt u VB-u ili XNA, C#
|
15.7.2007, 13:37 | #7 |
Kekule Mekule
|
Re: Animacija teksture u OpenGL-u
Znam za to proveravanje pixela, al' nisam znao za tu funkciju za dobijanje pixela. Inace svaki sprajt normalno ima jedan BB koji ga obuhvata celog i PP metodu se prvo proverava veliki BB pa tek onda pixel po pixel.
|
15.7.2007, 13:53 | #8 |
Starosedelac
|
Re: Animacija teksture u OpenGL-u
Ali je sasvim nepotrebno! Zamisli dva sprajta 128x128, znaci svaki ima ...... 16 348 piksela... 2 takva ...... 32 768 .... i hocesh da napravish igru a samo za 2 sprajta moracesh da proveravash ne znam ni ja koliko piksela medjusobno! Ako imash bounding box-eve(ili bounding circle-ove) mozesh taj proracun da smanjish na recimo 10-tak proracuna za 2 sprajta! Ali dobro, ako ti tako hocesh, ja ne mogu da te sprecim, samo ti govorim sta je najbolje...
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Preporuka programa za izradu 3D animacija | Dark Rider | Grafički softver i radovi | 43 | 27.5.2016 21:27 |
OpenGL SDK? | Andross | Pravljenje igara | 2 | 20.6.2007 14:49 |
DirectX vs OpenGL | PeTkO | Programiranje | 5 | 1.5.2007 22:23 |
Wolfenstein + OpenGL problem !!! | Helingen | O igrama uopšte | 3 | 20.5.2006 15:54 |
OpenGL 1.3 problem??? | ddak | Grafika | 7 | 23.12.2005 0:30 |