Home › Forums › A Demokészítés művészete › Programozás › OpenGL
- This topic has 51 replies, 12 voices, and was last updated 12 years, 5 months ago by Artlace.
-
AuthorPosts
-
2011-02-27 at 09:43 #1426EdwardMember
Sziaztok!Akkor nyitnék is egy témát az OpenGl-el ismerkedőknek.Egyenlőre csak néhány linket és könyv címet írnék, amik szerintem hasznosak lehetnek kezdéshez.
http://www.inf.u-szeged.hu/oktatas/jegyzetek/KubaAttila/opengl_html/
http://prog.hu/cikkek/katalog/4120/3D+jatek-grafika.html
http://www.lighthouse3d.com
http://fly.cc.fer.hr/~unreal/theredbook/
Háromdimenziós grafika, animáció és játékfejlesztés2011-02-27 at 22:37 #6263hornosMemberklasszikus: http://nehe.gamedev.net/főleg a python része érdekes, a python a jövő
2011-02-28 at 15:25 #6264GargajKeymasterA Pythont eleg regota igergetik jovonek :P
2011-02-28 at 16:24 #6265hornosMembermondhattam volna a flasht is
2011-03-01 at 01:12 #6266GeriMemberszerintem az időgép a jövő
2011-03-01 at 08:20 #6267TravisModeratorA jövőben az a jó, hogy nincs határideje. Mikor lesz kész a demód? Majd a jövőben.A témához kapcsolódóan: Ha az újabb API-k is érdekelnek valakit, ez egy elég használható forrás.
2011-03-02 at 00:50 #6268hornosMemberjövő = mikor lesz a githubon?
2011-03-02 at 10:38 #6269EdwardMemberTravis wrote …
A jövőben az a jó, hogy nincs határideje. Mikor lesz kész a demód? Majd a jövőben.A témához kapcsolódóan: Ha az újabb API-k is érdekelnek valakit, ez egy elég használható forrás.Ezek nagyon jó példaprogramok! Köszi.:)
2012-04-01 at 12:34 #21095murdockMemberSziasztok! Egy kis segtséget szeretnék kérni remélem jó helyre fordulok. A rról van szó hogy most ismerkedek az OpenGl-el de egyszerűen nem tudok ablakot elővarázsolni. minden függvény meg van hozzá mert máshol működik a kód (ablak létrejön meg jelenik benne a kis árba). Tehát ablakot nem látok de a kód fut (a tálcán meg jelenik). Mivel még most kezdek nem nagyon tudom mit kéne javítanom.Linux ot használok (Ubunut 10.10)
Köszi előre is mindent murdock2012-04-01 at 14:20 #21096rawbitsMemberValószínű, hogy nem fogok tudni segíteni, de talán érdemes lenne hozzácsapni, hogy mivel nyitsz ablakot.
Meg minden utasítás után tesztelni hibára és ha van, kirakni azt a konzolra, mert nem kell ablak egy program működéséhez. Egész tutin elvan mondjuk a rajzoló loopodban miután nem tudott ablakot generálni.
Nekem pl gyakran csinál olyat, hogy egyszer csak nem tud OpenGL ablakot nyitni és ilyenkor csak a jó öreg újraindítás segít…
2012-04-01 at 15:30 #21098murdockMemberNem teljesen értem minden pontját annak amit írtál (érthetően írtál csak az ismereteim hiányosak) meg mutatom mit akarok elsőre futtatni. Ami itt van az oldal alján azt szeretném futattni (kis át alakítással mert ez nem tökéletes) tehát a kód így néz ki:
#include
#include
/*#include "stdafx.h"*/void init(void) {
glClearColor(0.0, 0.0, 0.0, 0.0); // a háttér legyen fekete
glMatrixMode(GL_PROJECTION); // beállítjuk a vetítési mátrixot
glLoadIdentity(); // betöltjük az egységmátrixot
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); // vágósíkok
}void display(void) {
glClear(GL_COLOR_BUFFER_BIT); // a képernyõ törlése
glColor3f(0.0, 0.0, 1.0); // az érvényes szín kék
glBegin(GL_LINES);
{
glVertex2d(0.2, 0.2);
glVertex2d(0.8, 0.8); // az egyenes specifikálása
}
glEnd();
glFlush();
}void keyboard(unsigned char key, int x, int y) {
switch(key) {
case 27:
exit(0);
break;
}
}int main(int argc, char** argv) {
/* int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
*/
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // egyszeresen pufferelt, RGB szín módú ablak
glutInitWindowSize(200, 200); // az ablak mérete
glutInitWindowPosition(100, 100); // az ablak pozíciója
glutCreateWindow("firstglut"); // az ablak neve
init();
glutDisplayFunc(display); // a képernyõ kezelése
glutKeyboardFunc(keyboard); // a billentyûzet kezelése
glutMainLoop(); // belépés az esemény hurokba
return 0;
} egy új sor szúrtam be ez az “GlutInit” és a main argumentumait írtam át meg hiányzott 1-2: “}” és ez nem hozza a kívánt eredmény. futattni én úgyszoktam hogy terminálba be írom hogy “gcc -W -Wall -Werror simple -o simple -lglut”
és ezután futtatom a ./simple parancsal vissza nem kapok semmi hibát.
Köszönöm murdock- This reply was modified 12 years, 8 months ago by Gargaj.
2012-04-01 at 15:31 #21099murdockMembervéletlenül az egészet linkbe raktam bocs:s
2012-04-01 at 15:40 #21101GargajKeymasterLegkozelebb tudom javasolni a http://pastebin.com/ hasznalatat ;)
Amugy nemtom, en windozra leforgattam, itt flottul mukodik elsore. Linux alatt sztem Travis tudna neked segiteni.
2012-04-01 at 16:30 #21103ArtlaceMemberSzia Murdock!
Kiprobaltam a kodod OSX-en is Linux-on is, de rossz hirem van: mindketton mukodik.
Ennek megfeleloen viszont felmerul par kerdes:
– tudsz futtatni barmilyen OpenGL ablakot nyito programot? glxgears is jo!
– Bar a linket nem sir, de lehet hogy ezt keresed:-lglut -lGLU -lGL -L/usr/X11R6/lib/ -lXmu -lXi -lXext -lX11 -lXt
Ha nem tudsz igazan GL-t hasznalo programot futtatni akkor az aktualis (feltehetoleg 3rd party) GPU drivered a ludas, mert meg az VirtualBox-os Linuxom is (Debian Lenny) vigan megnyitotta az ablakot es belerajzolta a kek atlot.
OSX az jelenleg nem tema ugyhogy csak a teljesseg kedveert (meg mert van) forditottam le azon is.
2012-04-01 at 17:43 #21104murdockMemberElőször is bocs még egyszer a hülyeségekért amiket az előző hsz-ben műveltem.
Pastebint átnéztem legközelebb oda írom a kódot.
@Artlace: glxgears működik semmi gond nincsen vele minden megy (forog) szépen.
A parancs kiegészítésre amit írtál azt válaszolja hogy, a -lXmu -t nem találja a /usr/bin/ld-ben.Ezer hálám a segítségért murdock
2012-04-01 at 18:10 #21105ktMemberUbuntu 11.10-en is működik.
2012-04-02 at 11:07 #21107TravisModeratorAmennyiben ez nem tréfa, úgy javaslom a NeHe tutorialokat (http://nehe.gamedev.net/tutorial/lessons_01__05/22004/), mert ezek nem széthekkelt példaprogramok, és minden oprendszerre van forrás.
2012-04-02 at 12:43 #21109ArtlaceMemberMurdock: en javaslom az strace -f hasznalatat, megmutatja mit probal csinalni a programod.
Valoszinuleg odabent eljut az ablakkezeloig es ker valamit de nem kapja meg. Ha igy van, bar elegge sok syscall lesz ott szanaszet, de talan latszodni fog hogy mit nem talal.2012-04-02 at 14:33 #21110TravisModeratorSzerintem nem kell strace, mert Murdoc valamit elhallgat.
2012-04-02 at 16:33 #21111murdockMember@Artlace: ezt a parancsot mire futtasam a fordításra(gcc stb) vagy a futatásra?
@Travis:hidd el nem hallgatok el semmit hisz, azt szeretném hogy meg oldódjon a probléma.Bármit kérdezel(tek) szivesen válaszolok ha tudom miről van szó. A video kártyám egy RadeonX1200 a gép egy MSI laptop. OpenGL támogatás biztos hogy van rajta mert win alatt egyszer sikerült már belőni egy Free Pascal-os koperációval(itt az sem megy de legalább az ablak meg jelenik, de rajzolni nem rajzol) a Pascalos forrás innen van való.2012-04-02 at 18:33 #21114ArtlaceMemberMurdock: oke, en kerdezek: glxinfo kimenete?
Emellett valoban egy NeHe peldat is le kene forditanod hogy az mit csinal. Nekem az mind mukodott.
strace egyebkent futtatashoz jo: strace -f
Csak kapd el az outputjat mert sok lesz.2012-04-02 at 19:19 #21115TravisModeratorHa a -Werror opcióval fordítod a programot, akkor nem kapsz binárist, mert van két nem használt változód a keyboard() függvényben, ami normális esetben figyelmeztetés lenne, de ezzel az opcióval hibának számít. Ezért feltételeztem, hogy valami információ még hiányzik.
Azt is meg merem kockáztatni, hogy volt már egy másik bináris ilyen névvel a munkakönyvtáradban, te fordítottál, nem vetted észre a fordítási hibaüzenetet és a régebbi programot futtattad.2012-04-03 at 09:50 #21118murdockMemberA NeHe példa programok sem jók. A gluPerspective-re a InitGL-re és a ReSizeGLScene-re panaszkodik hogy hiba van benne.
itt van a glxinfo teljes kimenete http://pastebin.com/DhYMwwSM ugyan ilyen nevűek lehet hogy, voltak majd utána járok.2012-04-03 at 12:55 #21124TravisModeratorJó, most legyél szíves a fordítási hibaüzeneteket is megmutatni.
2012-04-03 at 14:52 #21125ktMemberGLU header megvan (glu.h), be is van include-olva?
2012-04-03 at 17:29 #21126ArtlaceMemberMost mar en is kivancsi lennek a forditasi hibauzenetekre.
2012-04-03 at 18:31 #21127rawbitsMemberDe nem onnan indult az egész, hogy a program fut, csak nincs ablak? Akkor csak lefordul valahogy nem? Ezért voltam kíváncsi, hogy mik a visszatérési értékei a glut-os cuccoknak. Azt kéne kicsapni a konzolra és akkor látnánk, hogy melyiknél bukik…
Mondom nálam is sz**akszik az OpenGL időnként! Újraindítás után meg újra minden jó.
2012-04-04 at 07:24 #21129murdockMemberNa ismét leszedtem a Nehe-s forrást kicsomagoltam bele mentem a mappájába (cd stb.stb) ott ezzel a parancsal akartam fordítani:
gcc -W lesson1.c -o lesson01 -lglut -lGLU -lGL -L/usr/X11R6/lib/ -lXmu -lXi -lXext -lX11 -lXt
és erre kaptam ezt a hiba üzenetet:
/usr/bin/ld: cannot find -lXmu
collect2: ld returned 1 exit status
@RawBits: de úgy indult. de csak azokat tudtam fordítani amikebe én bele nyúltam(ez nem bitos hogy túl szerncsés mivel most ismerkedek az egészzel)2012-04-04 at 08:43 #21130TravisModeratorEz már valami! Ha ezt akarod fordítani, akkor telepítened kell egy csomó xlib-dev csomagot, ami nem éri meg a belefektetett energiát. A sima Linux forrást szedjed le. Ott a makefile-ban a
LIBRARIES = -lX11 -lXi -lXmu -lglut -lGL -lGLU -lm
sor helyett a
LIBRARIES = -lglut -lGL -lGLU -lm
sort írod be, és tudod fordítani make -f makefile paranccsal. Ha nem, akkor nyomozunk tovább :-)2012-04-04 at 10:53 #21140murdockMemberNa szóval működik.asszem. A teljes képernyő fekete lesz és ESC-re kilép. Ahogy néztem a forrás nem is kell mást csinálnia. Szóval nagyon kösz mindenkinek a segítséget és a türelmet. De ha valami probléma akkor jelentkezek még:D még egyszer köszi mindenkinek murdock
-
AuthorPosts
- You must be logged in to reply to this topic.