» »

Katero workstation graficno?

Katero workstation graficno?

zdravcc ::

Razmisljal sem o graficni karti v rangu 1500$ ali manj, primer:
firegl 2, firegl 8800, firegl 3, wildcat 5110, firegl 4, ali celo firegl 8700

Najbolj bi si zelel imeti wildcat, ampak je cena zlo vlka, najcenejsa pa je 8700, ki je vec kot pol cenejsa od ostalih, lahko bi cakal na nov VPU Oxygen od 3dlabs, ker cena baje ne ob visoka, bo pa kartica dobra.
Rabim predvsem kartico ki zmore hudo geometrijo, govorim tudi do 100000000 poligonov(float*3*10^8 + razni indexi+ normale+ipd.-polygoni so trikotniki) ali celo vec, torej neka kartica, ki bi najbolje imela AGP pro, saj je za tako geometrijo potreben ram na plati, in to samo za opengl, pa dobro bi blo ko bi bla cimbolj programirljiva. Mam pa dual Athlon MP1800 na ASUS 7M-D, mam AGP pro, 2GB DDR ecc reg. rama, trenutno imam radeon 8500, ki se ne razume najbolje z veliko kolicino poligonov. Ni pa za nobeden poseben program, ki ga bi vi poznali, glavno je to, da uporablja za renderiranje opengl loopan(vec objektov) indexed vertex array (GL_QUADS in GL_TRIANGLES) .

Prosim, kdo pozna te stvari naj prosim svetuje, lahko pa pomagate tudi tisti, ki nimate izkusenj in samo sklepate.
  • spremenil: zdravcc ()

CaqKa ::

spadam med one druge ki samo sklepajo.. newem kaj pa geforce4 quadro? se ne spoznam na zmoglivosti te kartice... drugače pa ti bo ziher kakšen silicon graphics zadostoval!

BoO ::

Strani (reviji), ki se ukvarjata s takimi stranmi:
cadalyst
cadence
Tu je nekaj testov samih kartic in delovnih postaj iz katerih se da kaj razbrati.

P.S.: Ali lahko vseeno vprašam za program s katerim se bo uporabljala?
An approximate solution to the right problem is more desirable than a precise solution to the wrong problem.

Jaxx ::

Najbolse in najdrazje so vsekakor 3dlabs-ove graficne. FireGL je sicer poceni ampak se ne more primerjati. Osebno bi na tvojem mestu kupil 3dlabs Oxygen GVX1 Pro ali morda GVX210. Wildcati so predragi in pomoje ne potrebujes tako zmogljivo kartico. Pomembno je tudi ali mislis uporabljati vec monitorjev za OpenGL. S tem so velike tezave pri mnogih graficnih karticah. S 3dlabs-ovo graficno bos imel pri tem sigurno kar najmanj tezav.

Oglej si tudi www.3dlabs.com

zdravcc ::

Najprej hvala za predloge, se vec takih prosim pa bo odlocitev dosti lazja.

V bistvu ze uporabljam dva monitorja in pri tem ima radeonka kar nemalo problemov, ki bi se jim lahko reklo muhe, saj nekaj casa dela vse zelo dobro potem spet ne, vecino so problemi , da vcasih ne morem nastaviti pri doloceni nastavitvi namizja, frekvence obeh monitorjev na vec kot 60 Hz, vcasih pa tega problema ni ???!!!

Glede programa lahko povem to, da je modelirno, animacijso orodje z renderirnikom, ime pa je se neznano.
Primer: za kroglo s 1000 segmenti(segmenti*(segmenti-1) *2 polygonov) allocira okoli 250mb, to je z quad normalami, flat normalami in s 3. razlicnimi indexi(triangle, mesh, edge).
Ostale podrobnosti pa sem navedel ze zgoraj, ja in rendrerira se v zacetku eno luc v 4. razlicnih oknih; eno perspektivna projekcija, ostale 3 ortografska projekcija. Tu stvar se dela dokaj normalno ceprav se racunalnik vidno zelo muci, sveda je program kar se da razdeljen na threade, uporabljam win2000 O.S.. OpenGL transformacije so samo za renderiranje ostale izracuna dela procesor, zato bi bil hvalezen, ko bi lahko kartico prilagodil funkcijam programa, da bi malo razbremenila procesor. Pri animaciji naprimer z krznom(fur) bi rabil ze kaksen cluster SGI graficnih postaj.

zdravcc ::

Glede quadro g4 mislim, da je kartica podobna firegl z r200 cipom, in podobna je tudi cena, tako da sklepam, da tudi njej ne pase veliko geometrije je pa res, da je dovolj dobra za efekte, kar pri delu z programom ni tako pomembno in je pomembneje pri koncnem renderiranju. Kaj mislite firegl 3, ki pa je nekoliko drazja kot firegl8800 in dosti cenjsa od wildcat 5110 in skoraj tako zmogljiva, mislim da imata celo obe enak IBM cip za grafiko(v bistvu sta dva eden za geometrijo(kalkulacije) drugi renderiranje(konce kalkulacije)).
Ampak ne vem ce se firelg 3 se dobi, dobi se firegl 4, ki je le malo hitrejsa, saj je popolnoma enaka firegl 3 le z navitim cipom in pa firegl 2, ki pa ima premalo pomnilnika za svojo ceno, cipi pa so spet enaki kot v 3. in 4..

zdravcc ::

Pa hvala BoOO za linke, so dokaj zanimivi.

zdravcc ::

Kaj pa mislite o tej , ki se pride z P10 3dlabsovim cipom in podporo opengl 2.0, slisi se odlicno in mocno in dokaj poceni.

Senitel ::

zdravcc: Če jaz prav zastopim ti delaš na tem (programiraš) rendererju za ta modeler oziroma nekaj podobnega in rabiš nasvet glede grafične + še kaj?

Zgodovina sprememb…

  • spremenil: Senitel ()

zdravcc ::

Oh my god ! (mi o volku, volk iz gozda)-pa ne ti Sentinel.
Sentinel, oprosti ampak raje nebi govoril o tem, ker so me na drugem forumu zaradi prenagljenih obljub in momentarne napihnjenosti skoraj zivega pozrli ampak nekaj takega ja, s tem da delam bolj tisto drugo; orodje za nekaj in orodje za nekaj podobnega, kot pa renderer, sicer pa tudi renderer, ki je ironicno od vsega skupaj trenutno se najboljsi. Me caka se nekaj popravkov za ostalo.
Lahko pogledas na "www.3delavnica.com", pod forum 3d grafika(3d programiranje)/my 3d studio/ jaz sem pa Ogrizek. Samo ti tega ne priporocam razen ce si mazohist, ker je bolece, dolgo in kruto.

Ja in rabim nasvet za graficno, sedaj sem se prevesil na stran FireGL8800(bolj zaupam ATI-ju) ali Qaudro 4 900 XG(mogoce malce zmogljivejsi), ampak cakam na boljso idejo oziroma na vec nasvetov, ki bi mi pomagali pri tem hudem problemu.
+mogoce se kaj ja, ce imas se kaksno idejo.
Sedaj iscem nasvet samo za hardware in nic drugega, ne glede mojega dela, ker sem na 3delavnici dobil ze prevec nasvetov, kot jih lahko sam pozrem.

zdravcc ::

Sentinel by the way, zlo dober podpis!
Pa se kako resnicen:)

Senitel ::

He, he, he...
Sam tolk vprašam, da vem kakšen odgovor spisat (pa tistga na 3D delavnici se mi itak ne da prebirat).
Najprej kar se tiče grafičnih kartic. Če hočeš programabilnost, potem ti v momentu ostanejo samo GeForce 3 & 4 Ti, Quadro 4, Radeon 8500, FireGL 8800 ter prihajajoči P10. Od teh kartic je GeForce 3 najpočasnejša P10 pa najhitrejša v številu trikotnikov na sekundo (po obstoječih podatkih). Glede nato, da že imaš Radeona 8500 se ti po mojem mnenju ne splača kupovati nove kartice, ker so hitrejše samo tolk koker majo višjo uro (to leti predvsem na FireGL 8800, GeForce 4 Ti 4600 (in visoko clockani Quadroti) so hitri ko strela in podpirajo par stvari, ki jih lahko naredi še hitrejše a o tem malo pozneje. P10 je jasno car hitrosti, saj ima "efektivno" 4 vertex shader enote, vendar ga še nebomo ugledali do jeseni, do takrat pa lahko pričakujemo še vsaj NV30 in R300).
Podatki o trikotnikih v sekundi, ki jih proizvajalci popajo na škatle so optimalni. To sploh ne pomeni, da se jih nebi dalo doseči ampak to, da je treba bit pri vertexih pazljiv. Najenostavneje si je zadevo predstavit z vertex shaderji. Da transformiraš en vertex (vector3D pos, vector4D color) potrebuješ minimalno 4 ukaze (3 skalarne produkte in en premik za barvo) in to ti prinese na Radeonu 8500 maksimalno 135 milijonov vertexov v sekundi (Clock*VertexUnits/InstructionCount).
Zdej pa par nasvetov kako doseči čim več trikotnikov na sekundo:
1. Ne uporabljat standardnih OpenGL vertex arrayov, ker se mi zdi, da nikoli ne pristanejo v video pomnilniku. Uporabljaj ATI_vertex_array_object (http://www.ati.com/developer/sdk/Radeon... oziroma NV, ker imaš samo tako možnost da vertexi padejo v video pomnilnik oziroma v AGP pomnilnik (AGP aparture).
2. Poskusi se znebit quadov... Sicer ne poznam OpenGL-a tako zelo dobro (Direct3D pa nima quadov), sam kolikor je meni znano driverji pri quade razbijajo na triangle stripe, kar pomeni štiri vertexe, restart, štiri vertexe, restart.
3. Indeksiran triangle list je drugi najboljši primitive (kar pomeni, 8 vertexov za kocko in 36 indexov za trikotnike)
4. Triangle strip (kakršen koli) je vedno najboljši primitive
5. Dodatek k prvi točki: Te vertex arraye je tudi dobro organizirat tako, da iz njih sploh ne bereš (ker lahko to pri driverju povzroči, da ga bo premaknil v system memory). Tako imaš v vertex arrayih samo to, kar rabi kartica za izris tisto, kar pa potrebuješ za program pa hraniš v sistemskem pomnilniku če se podatki prekrivajo jih podvojiš. Če je podvajanj preveč je morda dobro kar kreirat en vertex array, ki ga discard-aš, nafilaš, narišeš, discardaš, nafilaš, narišeš,... Tako imaš še zmeraj za do 1GB/s vertexov na kartici.
6. Pa še standardna, ki jo verjetno že veš: batch, batch, batch,...
Prva, druga in tretja točka bi mogle kar it, četrta je pa mal težja.

Upam, da boš v vsem tem tekstu našel kaj uporabnega zase.

CaqKa ::

zanimivo... čeprav nisem mel pojma o čem si zdaj pisal :) no sej kaj je vektor še vem :)

zdravcc ::

Ja saj na zacetku je bila misel, da bi dal vse v ATI_vertex_array_object, ampak sem spoznal, da potem nimam nobene prenosljivosti, saj mora biti za ATI_bla.. najmanj cip R200, to pomeni samo ati od 8500 naprej, stvar pa mora biti penosljiva, je ta ATI_bla.. zlo zanimiv, saj ima lahko ze paralelno zraven vertexa shranjeno quad normalo(smooth) in pa coordinato 2Dtexture [0..1, 0..1] zato ker ima lahko take offsete lahko uporabis strukturo prav za izrisovanje in bla, bla, bla.

Kaksna je stvar pri strojnih cilklih pri procesorji poznam, valjda za eno tocko (x,y,z) moras pomnoziti z (tx,0,0), (0,ty, 0) in (0,0,tz) matrica 4*4, bla, bla.. Poznam stvari.

Za quade je pa tako, da bi ce bi uporabljal triangle, bi moral en edge dolociti kot glDisable(GL_EDGE_FLAG) in bi se za to potreboval array, tako da ne hvala, ker se gre za meshe(ce poznas 3smax), vem, da je bolje uporabljati triangle, ampak je to v tem primeru dokaj nesmiselno.

Jep, ce je 8 vertexov, torej osem vogalov, potrebujes pri kocki za quad: 6* (st. segy * st. segx )*4
za tri: 6*(st. segy * st. segx )*3*2 indexov(unsigned int)
za edge: 6*(st. segy * st. segx )*3*2*2

te graficne vertex arraye za renderiranje scene z opengl vedno unicim, prej ko swapam buffer(zamnjam frame buffer), ampak allocirani array z vertexi mora ostati.

batch ?, mogoce se ti bo zdelo cudno ampak ne vem kaj to je, prosim razlozi.(slisi se znano)

Ok ta je bil zelo zgovoren, ceprav to ze vse vem, pa se "nekaj" vec, je pa zanimivo in lepo videt, da se clovek(Sentinel) dejansko spozna na nekatere stvari, ampak jaz bi moral poznati, kako(na kaksen nacin) porcesor dejansko izvaja opengl ukaze, torej bi moral za tako razmisljanje poznati kartico v drobovje, kar pa je brez sourca nemogoce ali DDK(driver developer's kit), zato se raje kot na taksne primerjave zanasam na obcutek in izkusnje(ki jih nimam) zato prosim za pomoc pri izbiri kartice, mogoce pa bodo tudi kaksi obcutki in izkusnje drugih pomagali in seveda tudi natancnejse tehnikalije kot jih je nastel Sentinel iz teh dobim obcutek. Edin nasvet ki bi ga prosil za program je trenutno tudi edini in najvecji in tudi zelo cuden problem v programu, Sentinel ce imas izkusnje z allociranjem Heapa(new, malloc, realloc, ipd.) bi te kasneje prosil, ko bom imel cas, da se rezpisem o problemu, ce bi mi lahko pomagal, naj te se enkrat opozorim, problem je zelo cuden in logicno in sintaksicno ne bi smel biti problem, razen ce cesa ne vem, kar bi moral vedeti, kar je cisto mozno, gre se za allociranje index arraya iz unsigned int. Podrobnosti bodo sledile.
Prosim pomagaj, seveda ce zelis.

Senitel ::

Batching, pač da pošiljaš na kartico čim več trikotnikov v eni draw komandi.
Kar se pa same grafične tiče se ti pa pomojem ne izplača...
Kolk tps-jev oziroma qps-jev pa dejansko dobiš (po možnosti pri eni luči)?
Kaj te muči z heapom?

zdravcc ::

Pri krogli 1000*1000 z vso kramo, okoli 3 do 5 fps z Quadi in okoli 4 do 5 fps z Triangli(malce hitreje).
Problem je v tem, da ce allociram ni vazno kako velik heap, lahko je tudi 100* vecji kot bi moral biti, glede na stevilo indexov, primer: obj[curr].edgeIP=new unsigned int[segx*segy*12] <-to je potrebovana velikost lahko napisem tudi obj[curr].edgeIP=new unsigned int[segx*segy*12*100] lahko potem vedno uporabim samo in tocno polovico indexov, primer:
glDrawElements(GL_LINES, object[curr].sizeEdge/2 , GL_UNSIGNED_INT, object[curr].EdgePI);
bodi pozoren na /2 pri sizeEdge, sizeEdge==stevilu indexov, ki so potrebni za celoten obkjekt, ce odstranim tisti /2 in napisem bilo kaj namesto tistega, lahko tudi naprimer odstejem polovico size-a pa ne dela, mi napise klasiko overloadan array: the memory at 0x785Fbla... could not be referenced, ko pa je polovic pa mi izrise samo pol in tocno pol objekta, pri meshindex tega ne dela, pa je narejen po popolnoma istem kopitu z unsigned int.
??!!
z malloc stvar sploh ni sposobna iti preko objekta 200*200.

cudno, vsaj meni.

Senitel ::

Ok, sicer je ura pozna, pa me bo glih kar pobral, pa še polno glavo fizke mam... Samo:
sizeEdge!=stevilu indexov!! Za narisat eno črto rabiš dva indexa!! Glede na tvoj primer bi rekel da rišeš segx*segy*6 črt (dva trikotnika??) za kar rabiš segx*segy*12 indexov, kar je OK.
Note, da lahko dobiš un error tud če postaviš index iz obsega arraya...
Dej probi spraznt un pomnilnik, ki ga rezerviraš:
ZeroMemory(obj[curr].edgeIP,sizeof(int)*segx*segy*12);

zdravcc ::

Wow !
Ej ti si zakon, ta problem me muci(da ne bo vulgarnih izrazov, sicer pa !@&%*********) ze odkar sem pricel s tem programom, you are a life savior, ej dobesedno si mi polepsal zivljenje, hvala, hvala, hvala, tisockrat hvala, ce imas kaksen problem samo reci se bom potrudil maximum, da ga resim.

Se enkrat hvala!

zdravcc ::

Sorry za custveni izliv, ampak pomisli kako je ko imas pol programa napisanega, pa ti se vedno ne dela osnovna stvar.

Senitel ::

No lepo, da zdej dela :P


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

GeForce 9600M GT 512MB slaba grafična?

Oddelek: Strojna oprema
442556 (1605) Rudolf
»

No sound (Wolfenstein...)

Oddelek: Igre
151771 (1607) Slo-One
»

Geforce4

Oddelek: Novice / Grafične kartice
271891 (1891) tedybear
»

3d engine

Oddelek: Programiranje
6982 (848) Phil

Aalchemy (strani: 1 2 )

Oddelek: Zvok in slika
635288 (4526) Senitel

Več podobnih tem