Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - .:NOXY:.

Strony: 1 ... 46 47 48 49 [50] 51 52 53
736
Osz lol xD tego to ja nie wiedzialem Thx Java ale problemu toraczej nie rozwiaze poki sobie nie kupie karty z wieksza pamiecia Vram ;D jak oscyluje w zapasie 20MB na Vramie Grafy to scena smiga :/

737
Laduje dosc lamersko:


                                        pglGenBuffers(1,&tempvbo.VBOVertices);
pglGenBuffers(1,&tempvbo.VBOCoords);
pglGenBuffers(1,&tempvbo.VBONormals);
pglGenBuffers(1,&tempvbo.VBOFaces);

glEnableClientState( GL_NORMAL_ARRAY );
glEnableClientState( GL_TEXTURE_COORD_ARRAY );
glEnableClientState( GL_VERTEX_ARRAY );
glEnableClientState( GL_INDEX_ARRAY );

pglBindBuffer(GL_ARRAY_BUFFER_ARB,tempvbo.VBOVertices);
pglBufferData(GL_ARRAY_BUFFER_ARB,tempvbo.vSize*3*sizeof(GLfloat), vertices, GL_STATIC_DRAW_ARB );

pglBindBuffer(GL_ARRAY_BUFFER_ARB,tempvbo.VBOCoords);
pglBufferData(GL_ARRAY_BUFFER_ARB,tempvbo.vSize*2*sizeof(GLfloat), coords, GL_STATIC_DRAW_ARB);

pglBindBuffer(GL_ARRAY_BUFFER_ARB,tempvbo.VBONormals);
pglBufferData(GL_ARRAY_BUFFER_ARB,tempvbo.vSize*3*sizeof(GLfloat), normals, GL_STATIC_DRAW_ARB);

pglBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB,tempvbo.VBOFaces);
pglBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB,tempvbo.fSize*3*sizeof(GLuint), faces, GL_STATIC_DRAW_ARB);

glDisableClientState( GL_INDEX_ARRAY );
glDisableClientState( GL_VERTEX_ARRAY );
glDisableClientState( GL_TEXTURE_COORD_ARRAY );
glDisableClientState( GL_NORMAL_ARRAY );

Buffers.push_back(tempvbo);


wyswietlanie:


glPushMatrix();


if(isinsanced) glMultMatrixf(PhysMatrix);

glEnableClientState( GL_NORMAL_ARRAY );
glEnableClientState( GL_TEXTURE_COORD_ARRAY );
glEnableClientState( GL_VERTEX_ARRAY );
glEnableClientState( GL_INDEX_ARRAY );

pglBindBuffer( GL_ARRAY_BUFFER_ARB, Buffers[dm].VBOVertices );
glVertexPointer( 3, GL_FLOAT, 0, NULL );

glClientActiveTextureARB(GL_TEXTURE0);
pglBindBuffer( GL_ARRAY_BUFFER_ARB, Buffers[dm].VBOCoords );
glTexCoordPointer( 2, GL_FLOAT, 0, NULL );

pglBindBuffer( GL_ARRAY_BUFFER_ARB, Buffers[dm].VBONormals );
glNormalPointer(GL_FLOAT, 0, NULL );

pglBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, Buffers[dm].VBOFaces );
glDrawElements(GL_TRIANGLES, 3*Buffers[dm].fSize, GL_UNSIGNED_INT, NULL );

glDisableClientState( GL_INDEX_ARRAY );
glDisableClientState( GL_VERTEX_ARRAY );
glDisableClientState( GL_TEXTURE_COORD_ARRAY );
glDisableClientState( GL_NORMAL_ARRAY );
glPopMatrix();


Jest to spowodowane Moja checia uzycia bibliotego GLOD ktora pozwala na generowanie dyskretnych LOD'ow a jej laczenie dziala na wlasnie takiej zasadzie (zmiana jedynie w vertex i index )

Co do walki z Visualem F12 sprowadza mnie za kazdym razem do pliku ntdll.dll
Ale wydaje mi sie ze chyba wiem co jest problemem zauwazylem ze gdy tak sobie pouciekam i powracam do frusturm zwiechy sa coraz zadsze i krotsze az w koncu zikaja
Sciaglem GPU-Z i tu sie okazuje... ze moje 384Mb Vram to za malo z Expolorerem po walczeniu gry W ramie jest tylko 30mb zuzycia za to o zgrozo ram karty wypeliony jest w 99% :D i wydaje mi sie ze moj kochany przesuwa dane w ram i swap co powoduje te majestatyczne Lagi...

738
Szkółka / Odp: Problem ze wskaźnikami
« dnia: Grudzień 30, 2009, 23:36:04 »
Uzywasz Visuala ? To wlacz projekt przez F5 bedzie sie debugowac :) jak wywali bald to debugger sie zatrzyma dojdziesz do problemu poprzez CallStack

739
@Krzysiek: tak geometria cala jest zaladowana w VBO jako STATIC_DRAW i juz z nia nic nie robie. Czeka grzecznie na wyswietlenie
@Esidar: Tak uzywam Visual'a zaraz sprawdze :>

740
Culling wyglada tak:

if(TFrustrum){
if(!TFrustrum->frustum.SphereInFrustum(Posp.x,Posp.y,Posp.z,15)||(distance>DMM)) continue;
}

dla modelu ofc

a sama funkcja:

                    bool SphereInFrustum(float x, float y, float z, float Radius)
{
int i;

for(i = 0; i < 6; i++)
{

if(frustum[i][0] * x + frustum[i][1] * y + frustum[i][2] * z + frustum[i][3] <= -Radius)
{
return false;
}
}

return true;
}

741
Napotkałem sie podczas tworzenia dosc duzej mapy do gry na ciekawe zjawisko jest mi ono bardzo nie na reke wiec chciał bym sie dowiedziec czy ktos kiedys miał taki probelm i czy mozna go jakos roziwazac

Załozenia :

Optymalizacja sceny poprzez Frustrum Culling oraz usuwanie geometrii widzialnej gdy ta przekroczy widocznosc Level of Detail.

Technika:

Jezeli model nie jest widoczny w frustum badz znajduje sie w odleglosci 700m od kamery zaprzestan rysowania , Aby wszystko miało rece i nogi modele , textory , shadery sa wspoldzielone co to oznacza ze kazdy kolejny obiekt stworzony na scenie jest instancja Raz juz zaladowanego otrzymuje tylko jego geometrie oraz cialo ficzne nowa jest tylko pozycja oraz ew rotacja

Zakładamy rowniez ze dla potrzeby testow Wylaczamy generowanie Level Of Detail tak wiec gdy Obiekt pojawi sie w zakresie widocznosci badz w Frustrum Rozpoczynamy Jego rysowanie.

I tutaj pojawia sie moj probelm o ile min jednka instancja modelu jest widoczna gdzies w obszarze widocznosci to nie powoduje to spadku FPS badz drasycznego zwieszenia sceny
Problem pojawia sie gdy mam model ktory ma tylko 1 instancje przykladowo Auto albo 5 samochodow roznego typu Skoro nie uzywamy LOD powiedzmy ze mamy do naglego wyrenderowania 50k Vertow (10k na model) no i tu pojawia sie dramat

W efekcie takiego zagrania dostaje niesamowity ziwech sceny na 1sek czasami 2 co jest nie do pomyslenia Domyslam sie iz wywolane jest to dziwnym cachowaniem geometrii w karcie czy
ktos jest w stanie mi powiedziec jak ten probelm rozwiazac swego rodzaju robienie pre renderu w buffor zeby go wypelnic nie pomaga wiec za kazdym razem gdy bardziej zlozona geometria ma sie ukazac dostaje zweich z poczatku myslalem ze to wina physX i jego proba ustawienia modelu jednak testy dowiodly ze tak nie jest oczywiscie gdy instancji jest wiecej badz jedna jest juz widocza problemu nie ma co wiecej o ile model jest lowpoly probelm jest nie zauwazalny (nie mal ze ;p)

Prosił bym o jakas porade badz naprowadzenie mnie jak przygotowac karte na taki skok vertexow w jej buffor

Pozdrawiam.


742
Silniki / Odp: Własny silnik problem opengl i vbo (wyświetlanie terenu)
« dnia: Grudzień 27, 2009, 15:25:16 »
Jeah cały GameDev :> zamiast powiedziec chłopakowi gdzie może być błąd to sie beda czepiać nazwy "muj" a ja sobie obiekty nazywam "zw4gxc785f" :> tez sie dowalicie ogolnie procio to sie zle alokuje pamiec przejrzalem wlasny kod i kiedys tez miałem ten problem Eliaszu :>

Problem to w wypadku kart NV wystepuje w postaci VAX'a w postaci Pure Virtual Func Call co oznacza ze nadpisujesz pamiec w karcie graficznej :)
Zgłoś sie do mnie dzis wieczorem to ci pokze jak to zrobic zeby to miało rece i nogi :] pozdrawiam.

743
Szkółka / Odp: [OpenGL] Skopany ambient?
« dnia: Grudzień 26, 2009, 17:21:31 »
Zle liczys wogole specular :) nie uzywaj halfvectora bo czesto gesto zle dziala :) openGL ma swoj siwat :)

ja to robie tak i smiga az miło :) ew rob sobie swiatlo ambient jako att = 1/ambient^2;

vert:


varying vec3 normal;
varying vec3 position;
varying vec3 lightDir;

void main()
{
normal = normalize(gl_NormalMatrix * gl_Normal);
position = vec3(gl_ModelViewMatrix * gl_Vertex);
lightDir = gl_LightSource[0].position.xyz;

gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
}


frag:


uniform sampler2D myTexture;

varying vec3 normal;
varying vec3 position;
varying vec3 lightDir;

void main()
{
vec3 n,E,L,R;

n = normalize(normal);
    E = normalize(position);
    L = normalize(lightDir);
    R = reflect(-L,n);
   
vec4 Base = texture2D(myTexture,gl_TexCoord[0].xy);
vec4 Ambient  = (gl_FrontLightModelProduct.sceneColor * gl_FrontMaterial.ambient) +
(gl_LightSource[0].ambient * gl_FrontMaterial.ambient);
vec4 Diffuse  = gl_LightSource[0].diffuse * gl_FrontMaterial.diffuse * max(dot(n,L),0.0);
vec4 Specular = gl_LightSource[0].specular * gl_FrontMaterial.specular * pow(clamp(dot(R, E), 0.0, 1.0), gl_FrontMaterial.shininess );


gl_FragColor = (Base*ambient + Base * Diffuse) + Specular;
}


744
Szkółka / Odp: Jak pobrać wskaźniki funkcji z rozszerzeń OpenGL?
« dnia: Wrzesień 24, 2009, 14:01:20 »
a ja bede gnojem ktorego wnerwia ciagle odsylanie ludzi do Google.pl mendrcy siwata sie znalezli tak was boli mu pokazac jakto sie robi? :]

prosze o to pelny kod ladowania rozszerzen z OGL:

np:// tutaj zawarte jak zaladowac pare rozszerzen textur, VBO , FBO itp
glee to osobna biblioteka do ladowania rozszerzen karty mozna sciagnac z internetu bardzo fajne ale nie ze wszystkim dziala

link do kodu: www.noxy.ovh.org/temp/extensionload.zip



745
Szkółka / Odp: [OpenGL] Kolizje modelu z mapą.
« dnia: Czerwiec 27, 2009, 11:52:44 »
Nie wiem czy dobrze rozumiem ale chcesz na 1 quadzie sie poruszac i zmieniac wysokosc ;d
chyba nie tedy droga da sie ale to bez sensu ;p skoro i tak ci przyjdzie kiedys zrobic HeightMape :)

A tam jest wiele sposobow obliczania wysokosci takie 2 proste znane:

ja tego uzywam:

float cHMap::GetHeight(float x, float z)
{

  float projCameraX = x / MAP_SCALE;
  float projCameraZ = z / MAP_SCALE;

int hflCol0 = int(projCameraX);
int hflRow0 = int(projCameraZ);
int hflCol1 = hflCol0 + 1;
int hflRow1 = hflRow0 + 1;


float h00 = g_terrain[hflCol0 + hflRow0*MAP_X][1];
float h01 = g_terrain[hflCol1 + hflRow0*MAP_X][1];
float h11 = g_terrain[hflCol1 + hflRow1*MAP_X][1];
float h10 = g_terrain[hflCol0 + hflRow1*MAP_X][1];

float tx = projCameraX - float(hflCol0);
float ty = projCameraZ - float(hflRow0);

float txty = tx * ty;

return h00 * (1.0f - ty - tx + txty)
+ h01 * (tx - txty)
+ h11 * txty
+ h10 * (ty - txty);
};

ale na Nehe znajdziesz jeszcze z rownania kolorow Hmapy :) tak ci chyba bedzie latwiej ;p
niz meczyc sie z quadem ;p a Hmape nie jest ciezko zrobic :)

746
Szkółka / Odp: [OpenGl] przełączanie tekstur w skyBox
« dnia: Czerwiec 15, 2009, 20:09:51 »
i ew glBindTexture(GL_TEXURE2D, ID); czyli tam u ciebie tex[0 - 5] ;] musi działac :> ja tak robilem kiedys ale polecam probowac boxa renderowac cubemapa w shaderze choc to drudniejsze ale imo szybciej chodzi o ile sie uzywa VBO

747
OpenGL / Odp: Problem z nałożeniem tekstury
« dnia: Czerwiec 08, 2009, 22:20:51 »
nie altiwej by ci bylo liczyc odleglosć puktu kamery od danego wieszcholka sciany ? jak juz tak chcesz na nooba ? wtedy wystarczy tylko przeciecia promeni liczyc :) wiem znowu ktos ci opdisuje bez pokazania kodu ;]

Albo uber noob kod czyli np policz sobie normalna do danej powieszchni ktora ma jakas dlugosc i od niej licz promien :]

748
Poszukuję / Pomoc przy projekcie Supra
« dnia: Czerwiec 01, 2009, 13:27:07 »
Poszukję Osób do współpracy nad projektem :)

Animator:
- Znajomość MilkShape badz podobny
- Umiejetność tworzenia animacji szkieletowych i ich doklejanie do gotowego modelu

Grafik 3D
- Umiejętność tworzenia Mapowania UV
- Budowanie Textur UVMap

Grafik 2D
- "Kolorowanie: UVMap

Jeżeli czujesz się na silach i chcesz przyczynić się do powstania projektu napisz :) Jestem tylko programista i ten projekt to raczej moje hobby na które poświęcam parę h tygodniowo ;] wiec bez pomocy innych cudów nie będzie :(

Nie chodzi mi o ostre prace nad projektem bo sam nie poswiecam mu wiele ale na tym etapie potrzebuje grafiki bo bez niej nie jestem w stanie dalej testowac silnika :) chodzi raczej o wolna pomoc czasami cos tam szkubnąc nie prosze o wiele ;]

gg: 8168787 :)ł

749
Szkółka / Odp: Powielanie tekstury w jednym kierunku
« dnia: Czerwiec 01, 2009, 12:02:23 »
Słyszałeś o czymś takim jak parametry textury? ;D

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, Param);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, Param);

gdzie param ma wartosc GL_REPEAT , GL_CLAMP . GL_CLAMP_TO_EDGE (GL_CLAMP_TO_BORDER) itp

S, T to parametry szerokosc wysokosc jezeli chcesz ustawic poowtarzalność w "pionie" to T ustaw na GL_CLAMP a S na GL_REPEAT :)

750
niby poprawna ale GCC tego nie toleruje :) musialem caly projekt przerabiac jak go pod code block dawalem daltego oszczedzam sobie takich praktyk z misiowaniem :p bo o dziwo powinno akceptowac ale sie nie kompuluje :]

Strony: 1 ... 46 47 48 49 [50] 51 52 53