.[ ČeskéHry.cz ].
FPS
Jdi na stránku Předchozí  1, 2, 3  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Quimby



Založen: 21. 04. 2009
Příspěvky: 51

PříspěvekZaslal: 23. leden 2010, 22:35:19    Předmět: Odpovědět s citátem

aha to me nenapadlo aha tim by se to dalo vyresit me jde o pohyb takze jen reakce na stisk klavesy tak to zuatim tak dlouho netrva ale aspon to osetrim takze me napada
kód:

GLint cas=10;
GLint limit;
if( (clock() - last_time) > cas )
{
 last_time = clock();
 if(1000/cas >fps)
 {
  limit=(1000/cas)/fps;
  if(limit>10)
   limit=10;
 }
  for(GLint loop=0; loop<limit, loop++)
 {
  //kod pro pohyb
 }
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 23. leden 2010, 22:43:42    Předmět: Odpovědět s citátem

pohyb neupdatuj po určitém intervalu, ale pokaždé, akorát o kolik máš změnit pozici vypočítej na základě času mezi posledníma dvěma snímky
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 23. leden 2010, 22:54:22    Předmět: Odpovědět s citátem

V pripade pohybu bych se spis ridil dobou trvani jednoho snimku.
tj. urcil bych si rychlost pohybu za sec. treba 10 jednotek.
A pak bych pocet jednotek o ktere se ma objekt posunout v tomto snimku spocital z ryhlosti za sec. a doby trvani minulyho snimku.
takze nejak:
kód:

cur_speed = "rychlost units/sec" * "doba trvani minulyho snimku v sec."

pak muzes objektem kazdej snimek pohnout o cur_speed.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 24. leden 2010, 00:12:18    Předmět: Odpovědět s citátem

Quimby napsal:
ale ted kdyz nad tim uvazuju kdyz bude mit nekdo fps pod 33 tak je to spis problem jeho pc a ne mojich optimalizaci ja se snazil

Vtipné, velmi.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 24. leden 2010, 01:42:46    Předmět: Odpovědět s citátem

třeba ti pomůže : http://www.ceske-hry.cz/forum/viewtopic.php?t=855

Je to primitivní sice, ale myslím, že v něčem ti to základní přehled může dát.
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 24. leden 2010, 01:57:48    Předmět: Odpovědět s citátem

Ked sme uz pri tom, tak pre stabilitu fyzikalnej simulacie je velmi vhodne, aby bol vzdy krok konstantny. To sa pri nekonstantom framerate (ci thread-update-rate) da dosiahnut "akumulaciou" kroku. Ja som to posledne robil nejako takto (osekane od bordelu):

kód:
stepAccum += delta; // step accumulation         
while(stepAccum > STEP_SIZE) {
   double step = STEP_SIZE;
   stepAccum -= STEP_SIZE;
   IntegrateRK4(step);
}

Namiesto "obvykleho":
kód:
Integrate(delta);

U mna bolo STEP_SIZE = 0.0005 sekundy - urcene experimentalne pre danu simulaciu.

V praxi to znamena, ze v niektorych framoch sa nemusi spocitat nic, ale ak mame dost CPU casu (deltu -> 0), tak v mnohych framoch spocitame hned niekolko krokov, kde kazdy bude mat rovnaku velkost. Nevyhodou je experimentalne urcenie STEP_SIZE a to, ze nam moze integracia (fyz. simulacia) "prerast" cez hlavu :-] Kazdopadne, videl som tento pristup na mnohych miestach (napr. kniznica Bullet).
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quimby



Založen: 21. 04. 2009
Příspěvky: 51

PříspěvekZaslal: 24. leden 2010, 10:14:42    Předmět: Odpovědět s citátem

Deluxe napsal:
V pripade pohybu bych se spis ridil dobou trvani jednoho snimku.
tj. urcil bych si rychlost pohybu za sec. treba 10 jednotek.
A pak bych pocet jednotek o ktere se ma objekt posunout v tomto snimku spocital z ryhlosti za sec. a doby trvani minulyho snimku.
takze nejak:
kód:

cur_speed = "rychlost units/sec" * "doba trvani minulyho snimku v sec."

pak muzes objektem kazdej snimek pohnout o cur_speed.



Díky,hned je to přesnější

Eosie napsal:
Vtipné, velmi.

Jo to asi neni nejlepší nápad,vtipný to taky neni,vždy se dá asi něco zlepšit.

Jinak Houp díky to si určitě přečtu vypadá to zajímavě
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quimby



Založen: 21. 04. 2009
Příspěvky: 51

PříspěvekZaslal: 25. leden 2010, 17:18:34    Předmět: Odpovědět s citátem

Tak mám další o něco větší problém jde o vyhlazování textur viz obrázek všude sem hledal,ale vždy sem našel jen vyhlazování čar ,bodů,polygonů ale textur nikde

http://img705.imageshack.us/img705/9080/beznzvu1q.png
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 25. leden 2010, 17:26:15    Předmět: Odpovědět s citátem

http://gregs-blog.com/2008/01/17/opengl-texture-filter-parameters-explained/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quimby



Založen: 21. 04. 2009
Příspěvky: 51

PříspěvekZaslal: 25. leden 2010, 17:33:46    Předmět: Odpovědět s citátem

no z toho co sem pochopil tak asi je nejlepsi GL_LINEAR / GL_LINEAR a to prave pouzivam a vypada to tahle

kód:

 if (!GLloadTexture(textura_a[2], &texture[2], GL_LINEAR, GL_LINEAR))// Nahraje texturu
 {
  MessageBox(NULL,textura_a[2],"Nenalezeno!",MB_OK | MB_ICONINFORMATION);
  return FALSE;
 }

load texture je moje vytvorena funkce kteraa je stejna s funkci na load textur z nehe 6 lekce akorat sem pridal parametry textura_a je jmeno textury a adresa a texture je pole kam se uklada
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
JohnyDog



Založen: 17. 08. 2007
Příspěvky: 66

PříspěvekZaslal: 25. leden 2010, 17:47:18    Předmět: Odpovědět s citátem

Quimby napsal:
no z toho co sem pochopil tak asi je nejlepsi GL_LINEAR / GL_LINEAR a to prave pouzivam a vypada to tahle

kód:

 if (!GLloadTexture(textura_a[2], &texture[2], GL_LINEAR, GL_LINEAR))// Nahraje texturu
 {
  MessageBox(NULL,textura_a[2],"Nenalezeno!",MB_OK | MB_ICONINFORMATION);
  return FALSE;
 }

load texture je moje vytvorena funkce kteraa je stejna s funkci na load textur z nehe 6 lekce akorat sem pridal parametry textura_a je jmeno textury a adresa a texture je pole kam se uklada

Ne, k eliminaci aliasingu v texture potrebujes mipmapy, cili GL_LINEAR_MIPMAP_LINEAR.

Ten dalsi problem na obrazku je aliasing polygonu, k eliminaci toho potrebujes zapnout antialiasing (multisampling).
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quimby



Založen: 21. 04. 2009
Příspěvky: 51

PříspěvekZaslal: 25. leden 2010, 18:05:20    Předmět: Odpovědět s citátem

Takze
kód:

 if (!GLloadTexture(textura_a[2], &texture[2], GL_LINEAR,GL_LINEAR_MIPMAP_LINEAR))// Nahraje texturu
 {
  MessageBox(NULL,textura_a[2],"Nenalezeno!",MB_OK | MB_ICONINFORMATION);
  return FALSE;
 }

ale ten druhy problem s tim si nevim rady,zkousel sem
kód:

 glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
 glEnable(GL_POLYGON_SMOOTH);

ale taky bez vysledku program pracuje na nehe kodu tak snad sem to dal do initGL ale zadny vysledek
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
JohnyDog



Založen: 17. 08. 2007
Příspěvky: 66

PříspěvekZaslal: 25. leden 2010, 18:09:13    Předmět: Odpovědět s citátem

http://www.opengl.org/wiki/Multisampling
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quimby



Založen: 21. 04. 2009
Příspěvky: 51

PříspěvekZaslal: 25. leden 2010, 18:16:35    Předmět: Odpovědět s citátem

JohnyDog napsal:
http://www.opengl.org/wiki/Multisampling


neco sem precetl tak sem to dal dohromady
do initgl dam
kód:

 glEnable(GL_POLYGON_SMOOTH);
 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 glEnable(GL_BLEND);

ale porad nic porad to vypada spatne
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 25. leden 2010, 20:12:22    Předmět: Odpovědět s citátem

tak si cital zle pretoze hned podtym.
citace:
Since GPUs of the day didn't support it in hw, it would run very slow.

tu mas tutorial. http://nehe.ceske-hry.cz/tut_46.php

hm Photoshop na zakruzkovanie co by zvladlo aj malovanie. mas ho legalne?
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3  Další
Strana 2 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna