Grafika: GUI, OpenGL

[megoldva] Szociometria ábrázolása

Olyan ingyenes alkalmazást keresek, amivel ábrázolni lehet egy (mátrixként tárolt) szociometriai irányított gráfot.
Azaz: a megkérdezett embercsoport tagjai adott kérdésekre (szimplán vagy duplán is) bejelölhetnek másokat, és az ezt mutató mátrixot kellene irányított gráfként megjeleníteni. A mátrix minden eleme: semmi, x vagy xx lehet, ennek megfelelően a sor->oszlop irányított él: nemlétező, vékony vagy vastag (piros) lehet. Önmagára nem mutathat senki.

A Graphviz tud ilyet?

Egy példa:

A. B. C. D.
A _ x xx _
B x _ _ _
C _ xx _ _
D _ _ x _

eredménye A->B A=>C, B->A, C=>B, D->C, csak mindez egyberajzolva, azaz valahogy így: D->C<=A<->B (és még egy C=>B él is).

QT4 szálkezelés

Sziasztok!

Akadt egy kis problémám. Megpróbálom érthetően leírni.

Szóval, van egy gui, amin található két gomb és egy textedit. Az egyik gombot megnyomva egy másik szálon indulna egy ciklus, ami folyamatosan bővítené a textedit tartalmát (insertPlainText).

A gondom az, hogy bármit is csinálok, az ablak egyszerűen kifagy míg ez a ciklus fut. A tartalom is csak utólag a ciklus befejeztével jelenik meg.

Ha lehet valami példával is dobjatok meg (főleg python, de C++ is megteszi). Előre is köszönöm mindenkinek a segítséget!

GPU alapú orvosi képalkotás

Sziasztok,

1-2 éve olvastam egy egyetemi - talán holland vagy svéd- projectről, a lényege, hogy videókártyákkal számoltak ki viszonylag gyorsan ct vagy mri képeket 3d-be megjelenítve. Kezdetben csak Vista-n ment nekik, de később tervezték/megcsinálták Linux-ra is, és szándék volt rá, hogy nyílt forrásúvá teszik a fejlesztéseket. Próbáltam rákeresni, de sajna nem találtam őket, pedig Youtube film is volt a projectről. Ha valakinek beugrik, hogy kik lehettek ők, annak előre is köszönöm a linket. Esetleg tipp, hogy van-e használható nyílt project GPU alapú orvosi képalkotásra.

Qt erőszakos kdeinit

VLC-nél jön ez elő nálam, de gyanítom bármelyik Qt alkalmazásnál létezik, ahol van "open file".
Nem KDE-t használok (fateromnak van fent a gépen), és mikor rákattintok vlc-ben az open file menüpontra, meghívja a kdeinitet, majd lefagy.
Kilövöm, visszaindítom, onnan már jó, de igazából semmi szükségem, hogy felrántson egy csomó KDE-s cuccot, amikor nem használom.
Másik gépen nincs fent KDE, és kiválóan megy a vlc (bár gondolom egy fokkal butább menüvel, most nem tudom megnézni).

Szóval feltenném a kérdésem:
Van rá valami mód, hogy force-oljam a Qt-t, hogy ne izzítsa be a KDE-s libeket?

itt már valaki leírta ugyanezt a problémát részletesebben, backtrace-ekkel:
http://forum.videolan.org/viewtopic.php?f=13&t=85968&sid=48775d78bfa31f…
(remélem így permalink)

szerk QT -> Qt

glGenBuffers betöltési hiba

Üdv!
Az lenne a kérdésem, hogy miért nem tudok lefordítani egy kis alap opengl progit.
A hiba a következő:implicit declaration of function glGenBuffers.
és még persze az összes többi buffer-es függvényre. A gl.h be van töltve, ugyanis minden más működik, sőt régi ogl-es progik amiket írtam, azok is fordulnak rendesen.
kis keresés után megtaláltam a glext.h-ban a függvényt, és elvileg ezt a headert betölti a gl.h, de mégsem találja.
Google-ben nem sok mindent találtam, de ha valaki tud franciául:Itt lehet van valami használható.

[Megoldva]2d ábrázolásban szeretnék segítséget kérni.

Sziasztok

Hatalmas képeken kellene (szemmel) optikai szempontból érdekes képrészleteket keresni, a következő módon.
Adott egy tömb, ami x, és y koordinátákban a kép koordinátáit adják meg. Ha valamely pontban az érték nagyobb, mint egy adott maximum a képpont fehér, ha kisebb mint a minimum, a képpont fekete. A kettő között lineáris szürkeskála, tehát pofonegyszerű metódus. Egy egy trackbarral állítom a minimum értékét minimum, és maximum között, és viszont. Azzal a megszorítással, hogy a minimum mindíg kisebb, mint a maximum. A baj az, hogy a kép nagyon sokszor 5k*5k nagyság fölött van, ami gyakorlatilag lehetetlenné teszi, az analitikus elemzést, nem tudom szűkíteni a látóteret, mert nem tudható, hogy hol bukkan fel az érdekes rész. Kénytelen vagyok a fenti állítgatást a teljes képen megtenni. De olyan szinten tetű lassú, még több szálon is a megjelenítés, hogy 10-20 másodperceket kell várnom két csúszkamozdítás között, ha a cpu számol. Tudom, hogy ez dilettáns megoldás, de (eddig, mivel nem vagyok profi programozó, hanem amolyan lelkes amatőr) nem foglalkoztam opengl-el (mert gondolom ez a megoldás). Gondoltam ám legyen csináljuk opengl-el. Meg is írtam a dolgot mert nem nagy só. 2 egymásba ágyazott ciklus, így hirtelenen elsőre megoldásnak tűnt
ez:

glBegin(GL_POINTS);
while (i
{
int j=0;
while (j
{
int tpcolor=memo[i][j][0];
glColor3f(tpcolor,tpcolor,tpcolor);
glVertex2f(i,j);
j++;
}
i++;
}

Igen ám, de ha simán i, és j-ket lépek, akkor nem 1-pixel 1 pont alapján lép, hanem valami számomra misztikus módon minden 10-dik 20-dik.... (egyenletesen persze) pixelbe berak egy pontot, és a kép csökevénye látszik. Biztosan az van, hogy valami beállítást, stb nem teszek meg. A lényeg az annyi lenne, hogy milyen alapbeállítások mellet tudok amolyan 1 pixel 1 pont képet sima 2d képet megjeleníteni opengl-el, esetleg fittelni képernyőméretre......

Lehet nem világos így elsőre minden. A kérdésfeltevésem azért is kusza, mert ez az egyik legkisebb (ámbátor piszokul bosszantó) gond a megvalósítással. A másik gondom az, hogy egy 5k*5k fölötti méretű kép, így sem sokkal gyorsabb (látványosn gyorsabb, de 3-4 órányi opengl tanulás után, ennyi ment). Biztosan nem így kell csinálni. Tudom, nagyon sok jó doksi van (le is töltöttem jópárat), amit szépen át fogok tanulmányozni, mert tetszik, és praktikus lehet a munkámhoz az opengl, de most gyors megoldást szeretnék találni, amiben bízom, hogy tudtok segíteni.

Mindent előre is köszönök.

OpenGL antialiasing Intel GPU-val, linuxon

Igyekeztem a címben kellően összefoglalni azt, hogy mit is szeretnék. Tudom, hogy tldr-nek tűnik, de kééérlek, ha már itt jársz, olvasd el. Köszi!

Előszó: Sajnos nem nagyon van időm elmélyedni az OpenGL, és egyáltalán a grafikus programozás világában jelenleg, egyéb elfoglaltságok miatt. Már így is túl sokat olvastam (időt pazaroltam) ezzel az egésszel. Így most tényleg valami kezdőknek szánt iránymutatásra lenne szükségem.

A laptopomban (ThinPad T61) levő Intel x3100 kártya segítségével szeretnék OpenGL segítségével előállított képen élsimított vonalakat. A redbookot olvasgatva először is bosszankodok, hogy majd' minden bekezdés elején ott a "Note:", hogy az ebben a fejezetben leírt dolgok bizony lassan deprecated státuszban vannak.

A Google találatai elvezettek NeHe 46. leckéjéhez, amely egy igencsak windows-os beállítottságú, sok egyéb fájlt include-oló megoldásnak tűnik, és végül a letöltött windows-os binárist (wine-nal) futtatva csak nem lesz élsimítás.

Ezen a multisamplingon lovagolva a következőig jutottam (teles glxinfo kimenet):

[kalevala][kmarc][~][$] glxinfo | grep -i multisample
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GL_ARB_half_float_vertex, GL_ARB_map_buffer_range, GL_ARB_multisample, 
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object,

Tehát úgy nézem, hogy nálam van ARB multisample kiterjesztés. Viszont a következő kódrészlet egyértelműen kiírja, hogy nulla darab sample bufferem van:

 static GLint buf[1], sbuf[1];

   glGetIntegerv (GL_SAMPLE_BUFFERS_ARB, buf);
   printf ("number of sample buffers is %d\n", buf[0]);
   glGetIntegerv (GL_SAMPLES_ARB, sbuf);
   printf ("number of samples is %d\n", sbuf[0]);

Megmondom őszintén, nem is nagyon értem a glxinfo kimenetében szereplő GL*multisample-ök összefüggését, kapcsolatát.

Kérdéseim a következők:
- Van-e lehetőség bármilyen módon egyszerű élsimításra ezen a hardveren?
-- Az sem gond, ha lassú: jelenleg pontosan 162 poligon, és két lámpa mellett van rá szükségem.
- Accumulation bufferrel próbálkoztam, egy példa alapján eljutottam egy Gauss-szórásos tömb használatáig, azonban az előállított kép általában mozog is, ezzel a módszerrel pedig elmosódottá válik a mozgás. Esetleg ezirányú ötletnek is örülnék.

linux 4k -nostdlib segfault

Helló a következő a probléma:

Elkezdtem írni egy intro-t linux alatt. Pompásan működik, de ha -nostdlib kapcsolóval fordítom, szegmentálási hibával kilép. Itt a backtrace:


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7198db6 in sprintf () from /lib/libc.so.6
(gdb) bt
#0 0x00007ffff7198db6 in sprintf () from /lib/libc.so.6
#1 0x00007ffff603fa36 in ?? () from /usr/lib64/libGLcore.so.1
#2 0x00007ffff6042d51 in ?? () from /usr/lib64/libGLcore.so.1
#3 0x00007ffff6319d24 in ?? () from /usr/lib64/libGLcore.so.1
#4 0x00007ffff604247e in ?? () from /usr/lib64/libGLcore.so.1
#5 0x00007ffff6081d5e in ?? () from /usr/lib64/libGLcore.so.1
#6 0x00007ffff631a320 in ?? () from /usr/lib64/libGLcore.so.1
#7 0x00007ffff6045aa6 in ?? () from /usr/lib64/libGLcore.so.1
#8 0x00007ffff63175ef in ?? () from /usr/lib64/libGLcore.so.1
#9 0x00007ffff602c65c in ?? () from /usr/lib64/libGLcore.so.1
#10 0x00007ffff654c1b0 in ?? () from /usr/lib64/libGLcore.so.1
#11 0x00007ffff6550c8a in ?? () from /usr/lib64/libGLcore.so.1
#12 0x00007ffff65511d5 in ?? () from /usr/lib64/libGLcore.so.1
#13 0x00007ffff5cdb30d in ?? () from /usr/lib64/libGLcore.so.1
#14 0x00007ffff5ce2d1a in ?? () from /usr/lib64/libGLcore.so.1
#15 0x00007ffff5cd5711 in ?? () from /usr/lib64/libGLcore.so.1
#16 0x00000000004010cb in init_engine () at render.c:28
#17 0x0000000000400fdd in _start () at main.c:41
(gdb) info frame
Stack level 0, frame at 0x7fffffffae48:
rip = 0x7ffff7198db6 in sprintf; saved rip 0x7ffff603fa36
called by frame at 0x7fffffffae68
Arglist at 0x7fffffffad60, args:
Locals at 0x7fffffffad60, Previous frame's sp is 0x7fffffffae48
Saved registers:
rip at 0x7fffffffae40
(gdb) frame 16
#16 0x00000000004010cb in init_engine () at render.c:28
28 glLinkProgram(prg);
(gdb) print prg
$1 = 2

Sajnos a libek strip-elve vannak :(
Igazából annyi lenne a kérdésem, hogy más is belefutott-e már ebbe a problémába.
Lehet saját memcpy-t kéne írnom? valami ilyesmire gyanakszom.

gtk - ablakelemek színezése

Ez az első ablakkezelős kisérletem, kérlek ezt vegyétek figyelembe, ha sík idiótaságot írnék.

Namost: csinálok egy sudoku-megoldót. Annyi a különlegessége a többihez képest, hogy te magad állíthatod be a tábla felosztását, így nem csak az alap sudokuval boldogul, de a kacifántosakkal is.
Az táblát végsősoron 9 * 9 db gtk_entry elem (azaz a számok beviteléhez szükséges mező) és 10 * 10 db gtk_toggle_button képezi. Az utóbbiak képezik az elemek közti határokat - ha azt akarod, hogy határ legyen a két elem között, megnyomod, újboli megnyomásával kikapcsolod.
Nagyjából működik is a dolog, de az ablakelemek színezésével bajban vagyok. Ugyan saccra be tudom állítani őket a gtk_widget_modify_[base|bg|fg] függvényekkel, de ha átállítom a GTK-témát, a progim is átmegy színváltósba.
Olvastam valahol, hogy saját gtkrc-vel kéne ezt kiküszöbölni, ha jól emlékszem, de ennek a hogyanját nem tudom. Ezért kérek tőletek segítséget, ötleteket, hogy miként küszöbölhetem ki a környezet változásából adódó bajaimat?