Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 2.5.2013, 15:49   #201
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: How to... C++

Release build, prvobitno ustanovio frapsom, 10 merenja i u svakom merenju je gornji kod davao ~4 fps-a manje, pa sam merio mikrosekunde za render (razlika vremena posle i pre render poziva) i gornjem kodu treba u proseku ~100 vise nego donjem.

NOTE: Ovo je deo rendera za zidove, ista situacija u loopu za pod/plafon.
Andross je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 15:56   #202
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: How to... C++

Otvori preko nekog disasemblera oba fajla pa pogledaj šta se tačno generiše, ili postuj ovde. Jedno off pitanje – šta tačno ti radiš tu pa C++ kôdom prolaziš kroz color buffer?

Poslednja ispravka: Geomaster (2.5.2013 u 16:14)
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 16:14   #203
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: How to... C++

Pokusao sam preko 2 dissasemblera (pvdasm i boomerang) i oba pucaju u sred dekompajliranja. Radim Raycaster, pa crtam po lokalnom baferu koji posle uploadujem preko glDrawPixels - te mi je svaki frejm bitan.
Andross je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 16:16   #204
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: How to... C++

Citat:
Andross kaže: Pregled poruke
Pokusao sam preko 2 dissasemblera (pvdasm i boomerang) i oba pucaju u sred dekompajliranja. Radim Raycaster, pa crtam po lokalnom baferu koji posle uploadujem preko glDrawPixels - te mi je svaki frejm bitan.
Ah, raycaster, mislio sam da je neka realtime aplikacija. Ako koristiš Visual C++ uradi ovo i onda jednostavno pogledaj šta je iza te linije kôda kao što već spomenuh.
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 16:23   #205
Belphegor
V.I.P. Programiranje
 
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
Određen forumom Re: How to... C++

Nemoj gledati na FPS.
Belphegor je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 16:47   #206
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: How to... C++

^Znam kako funkcionise to zato sam i merio frametime i razlika je u proseku 100 mikrosekundi, sto je smesno ali za ovakav tip aplikacije u jednom trenutku moze da znaci + sam overhead se stvara od redosleda nevezanih instrukcija.

@Geomaster: MinGW ali sam nasao da sacuva assembly u build logu pa kad procackam postujem. Takodje raycasting je realtime, verovatno si mislio na raytracing. Evo videa da vidis o cemu je stvar (ovo je najprimitivnija verzija raycastera, dosta za pocetak):

MSG Raycast
Andross je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Andross na korisnoj poruci:
Belphegor (2.5.2013)
Stara 2.5.2013, 17:07   #207
Belphegor
V.I.P. Programiranje
 
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
Određen forumom Re: How to... C++

Svidja mi se taj medieval Wolfenstein 3d.
Mozes da implementiras taj algo sa SIMD instrukcijama, mada ces onda morati malo i da promenis strukturu podataka.
Belphegor je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 17:17   #208
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: How to... C++

Citat:
Andross kaže: Pregled poruke
Takodje raycasting je realtime, verovatno si mislio na raytracing.
Jes, sa pola mozga radim od jutros, pogodi zašto... Ali i dalje mi nije jasno zašto bi, ako već radiš kroz GPU, radio ovakvu stvar kada možeš to isto postići kroz shadere. Ali ajd', odo da odspavam pa kad se vratim pogledaću ponovo, možda shvatim
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 17:28   #209
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: How to... C++

Ukratko svodi se na "bajanje zrakova" (lol) i crtanje vertikalnih linija, otvoricu temu uskoro pa vise tamo.

Posle rvanja sa GDB-om koji odbija da radi sto mu se zapoveda, poredjenjem citavog assembly koda (naravno alatom) sam dosao do zakljucka da se generise mov viska.
Andross je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 17:34   #210
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: How to... C++

^ Da, ali koliko vidim ovo što si ti postovao opušteno može da se uradi u šejderu. Ili grešim?
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 2.5.2013, 18:59   #211
Belphegor
V.I.P. Programiranje
 
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
Određen forumom Re: How to... C++

^Naravno da moze, samo sto bi algo bio malo drugaciji i bilo bi dosta brze, ali to mu verovatno nije bila poenta projekta?
Belphegor je offline   Odgovor sa citatom ove poruke
Stara 7.5.2013, 14:57   #212
Lucic Nemanja
Starosedelac
 
Član od: 2.12.2005.
Lokacija: Beograd
Poruke: 1.241
Zahvalnice: 65
Zahvaljeno 76 puta na 49 poruka
Slanje poruke preko Skypea korisniku Lucic Nemanja
Određen forumom Re: How to... C++

Imam jedan problem. U pitanju je kombinacija ugnežđavanja klasa i njihovo nasleđivanje. Dakle neka imam klasu:

Kod:
class List
{
protected:
    class Node
    {
        friend class List;
        //implementacija cvora
    };
    
    // Node *first, *last itd....
public:

    //neke metode za upravljanje listama
};
E sad, recimo da hoću da napravim novi tip liste koji bi bio identičan kao i prethodna samo sa različitom implementacijom čvora kako bih to mogao da izvedem?
Ono što mi pada na pamet i što bi bilo najelegantnije rešenje jeste da nasledim listu i napišem u izvedenoj listi novu ugneždenu klasu Node, a da ne menjam metode same klase. Da li bi onda one pri pozivu imena Node pristupale klasi Node ugneždenoj u izvedenoj ili u baznoj klasi? Npr. ako neka metoda poziva Node(); koji konstruktor bi zapravo bio pozvan?
I naravno, da li je uopšte moguće definisati klasu istog imena ako je već ugneždena u baznoj klasi?
Lucic Nemanja je offline   Odgovor sa citatom ove poruke
Stara 7.5.2013, 18:05   #213
Belphegor
V.I.P. Programiranje
 
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
Određen forumom Re: How to... C++

Zar nije bolje u ovom slucaju da Node bude templejt parametar List-i?
Kod:
template< typename Node >
class List
{...};
Ovako imas cist izbor implementacije Node-a bez "djubreta" u baznoj klasi (mislim ne treba ti ni nasledjivanje).
S'tim da su imena metoda Node-a ista koje pozivas sa List-om.?
Belphegor je offline   Odgovor sa citatom ove poruke
Stara 8.5.2013, 22:42   #214
Lucic Nemanja
Starosedelac
 
Član od: 2.12.2005.
Lokacija: Beograd
Poruke: 1.241
Zahvalnice: 65
Zahvaljeno 76 puta na 49 poruka
Slanje poruke preko Skypea korisniku Lucic Nemanja
Određen forumom Re: How to... C++

Pišem kernel za neki projekat na faksu. Korišćenje templejta je previše high level za tako nešto. Generalno trebalo bi da se piše u C-u, ali kao eto da nam olakšaju pošto nam je prvo susretanje sa sistemskim softverom radimo u c++u da ne moramo sami da realizujemo tabele virtuelnih funkcija za neke podsisteme, da vučemo gomilu pokazivača na funkcije i sl. U pitanju je borland c++, procesor 8086. Dosta često mora da se pribegava i asembleru za neke stvari tako da je sama pomisao na template nekako neadekvatna u ovom kontekstu . Ne znam čak ni da li bi moglo da se koristi, ali da, definitivno bi bilo elegantno da je u pitanu neki aplikativni softver.
Konkretno liste koristim da bih pamtio koje su mi niti spremne za rad, a koje blokirane. Kod blokiranih mi je potrebno još po neko dodatno polje u čvoru i da redefinišem po koju metodu, pa mi je nekako nasleđivanje prirodno palo na pamet. Ako ništa drugo, napisaću potpuno dve različite nezavisne klase, što bi funkcionalno i bilo bolje, ali eto... volim objektnu logiku . Mada kažu da se ne treba mnogo navikavati na nju u ovakvom softveru.
Lucic Nemanja je offline   Odgovor sa citatom ove poruke
Stara 14.5.2013, 0:25   #215
Patrick
Član
 
Član od: 12.6.2006.
Poruke: 112
Zahvalnice: 19
Zahvaljeno 6 puta na 6 poruka
Određen forumom Re: How to... C++

Citat:
Lucic Nemanja kaže: Pregled poruke
Konkretno liste koristim da bih pamtio koje su mi niti spremne za rad, a koje blokirane. Kod blokiranih mi je potrebno još po neko dodatno polje u čvoru i da redefinišem po koju metodu, pa mi je nekako nasleđivanje prirodno palo na pamet. Ako ništa drugo, napisaću potpuno dve različite nezavisne klase, što bi funkcionalno i bilo bolje, ali eto... volim objektnu logiku . Mada kažu da se ne treba mnogo navikavati na nju u ovakvom softveru.
Rade u BCC-u templates, ali samo malo nesto drugacije treba da se napise, ne secam se sta je bilo u pitanju, al radili su ljudi s njima, ja sam ih izbego.
Nsam bas razumeo sto bi izvodio klasu posebno za spremne i blokirane niti? Sto ne stavis da imaju ista polja i metode (potpuno iste klase da su) a da imas jednu listu svih niti i pored toga listu onih koje spavaju, spremne ionako idu u Scheduler, a blokirane pamti onaj ko ih je blokirao (nesto tipa "lista onih koji cekaju na mene") i samo dodas polje status u Thread koje kaze da li je READY, BLOCKED, RUNNIG... za sve to ti treba jedna lista koja prihvata klasu niti.
Patrick je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Patrick na korisnoj poruci:
Lucic Nemanja (15.5.2013)
Stara 14.5.2013, 19:44   #216
Lucic Nemanja
Starosedelac
 
Član od: 2.12.2005.
Lokacija: Beograd
Poruke: 1.241
Zahvalnice: 65
Zahvaljeno 76 puta na 49 poruka
Slanje poruke preko Skypea korisniku Lucic Nemanja
Određen forumom Re: How to... C++

Citat:
Patrick kaže: Pregled poruke
Rade u BCC-u templates, ali samo malo nesto drugacije treba da se napise, ne secam se sta je bilo u pitanju, al radili su ljudi s njima, ja sam ih izbego.
Nsam bas razumeo sto bi izvodio klasu posebno za spremne i blokirane niti? Sto ne stavis da imaju ista polja i metode (potpuno iste klase da su) a da imas jednu listu svih niti i pored toga listu onih koje spavaju, spremne ionako idu u Scheduler, a blokirane pamti onaj ko ih je blokirao (nesto tipa "lista onih koji cekaju na mene") i samo dodas polje status u Thread koje kaze da li je READY, BLOCKED, RUNNIG... za sve to ti treba jedna lista koja prihvata klasu niti.
Plan mi i jeste da imam listu svih i listu uspavanih niti, samo što u listi uspavanih treba da postoji i polje za svaku nit koje govori koliko još vremena treba da bude blokirana u umnožcima od 55ms (perioda javljanja timer prekida). Kada dođe timer prekid treba da dekrementiram vreme od svake i proverim da li je došlo do nule na nekoj i ako jeste da je probudim. To polje mi je nepotrebno u listi svih niti, pa ono... U krajnjem slučaju mogu da iskoristim listu sa poljem vremena i u listi svih niti, ali da ga uopšte nekoristim.
Lucic Nemanja je offline   Odgovor sa citatom ove poruke
Stara 14.5.2013, 23:16   #217
Patrick
Član
 
Član od: 12.6.2006.
Poruke: 112
Zahvalnice: 19
Zahvaljeno 6 puta na 6 poruka
Određen forumom Re: How to... C++

E, bas tako! Nista se ne sekiraj sto se to polje nece koristiti osim kad nit ne spava. To je zanemarljivo. Ako ces da vodis racuna o resursima, pre svega o vremenu, onda ne zaboravi da listu niti koje spavaju odrzavas sortiranom kad god ubacujes neku novu nit u tu listu i tako da ti nit koja prva treba da se probudi bude na pocetku liste i ima to polje jos koliko joj je ostalo da spava i SAMO njega dekrementiras kad god ti otkuca tajmer, a za ostale niti pamtis u tom istom polju vremensku RAZLIKU u odnosu na ovu nit sa pocetka liste... pretpostavljam da si vec video negde slican algoritam i da znas na sta mislimm... To ce da bude bas efikasnije jer neces svaki otkucaj tajmera da prolazis kroz celu listu i da dekrementiras intervale, niti da proveravas da li je svaka dosla do nule, nego samo da li je prva dosla do nule i nikako ne zaboravi da ako jeste nula, proveris i da li su one do nje isto na nuli jer ako su imale isti period spavanja kao prva nit, onda ce njihova razlika u spavanju da bude isto nula pa i njih probudi.

Srecno!
Patrick je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Patrick na korisnoj poruci:
Lucic Nemanja (15.5.2013)
Stara 15.5.2013, 1:38   #218
Lucic Nemanja
Starosedelac
 
Član od: 2.12.2005.
Lokacija: Beograd
Poruke: 1.241
Zahvalnice: 65
Zahvaljeno 76 puta na 49 poruka
Slanje poruke preko Skypea korisniku Lucic Nemanja
Određen forumom Re: How to... C++

Da, da, već sam obavešten na vreme o tom algoritmu . Hvala u svakom slučaju!
Lucic Nemanja je offline   Odgovor sa citatom ove poruke
Stara 25.5.2013, 16:10   #219
sistavac
Novi član
 
Član od: 24.5.2013.
Poruke: 1
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: How to... C++

Pozdrav, totalni sam pocetnik, od juce sam poceo da istrazujem c++ i uz pomoc interneta poceo sam da shvatam neke osnovne komande itd itd, i sad pokusavam da napravim program koji ce mi proveriti da li je broj koji unesem deljiv sa 2 ili nije, pa mi ne ide.. Ako moze neko da ispise kod na brzinu verujem da nije slozen postupak za vas znalce.
Pravim proste programe za izracunavanje, ispisivanje testa, isprobavam neke moje gluposti sa if, if else, svim tim kombinacijama ali nesto slozenije ne mogu da uradim.
I ako neko zna neki sajt sa pocetnickim problemima za resavanje i zadacima za vezbanje, prostim tutorijalima c++, ili pak ima neki savet za napredovanje u c++ bio bih zahvalan da okaci i podeli sa nama neznalcima.
Hvala
sistavac je offline   Odgovor sa citatom ove poruke
Stara 25.5.2013, 16:14   #220
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: How to... C++

http://www.cprogramming.com/tutorial/modulus.html
Andross je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Andross na korisnoj poruci:
sistavac (25.5.2013)
Odgovor

Bookmarks sajtovi

Tagovi
c++, how to, pomoc, programiranje

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno



Sva vremena su po Griniču +2 h. Sada je 0:08.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com