- Bemutatkozott a Poco X7 és X7 Pro
- Poco X3 Pro - hardverfrissítés
- Honor 400 - és mégis mozog a kép
- Milyen okostelefont vegyek?
- iPhone topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Netfone
- Körvonalazódnak a Xiaomi 16 specifikációi
- Megjelent a Poco F7, eurós ára is van már
- Szívós, szép és kitartó az új OnePlus óra
Aktív témák
-
BaLinux
tag
Javaslom ismét a #48-as hozzászólásomat.
Tehát: ne használj indexelt típusokat, illetve ha mégis, akkor a lib be fogja tölteni neked szépen és RGBA-ba konvertálva kapod meg. Nem kell fáradni vele. Az opengl csak RGB(A)-szerű formátumokban fogad képadatot, meg néhány tömörített cucc amibe nem mentem bele. -
BaLinux
tag
Angol: értem. Szerintem maximálisan megéri, hogy maximálisan rágyúrjál egy az angol középfokra (legalább!), mert ez tart vissza az igazi fejlődésben. Én is sokáig középszint alatt valamennyivel voltam, mert a gimnáziumban nem igazán lehetett fejlődni, magamtól meg lusta voltam. Ha van lehetőséged/pénzed, szánd rá magad egy angoltanfolyamra, és nem fogod megbánni!
-
BaLinux
tag
Helyes. Javaslom, hogy inkább használj valami kész image libraryt, ahelyett hogy szenvedsz itt mindenféle formátummal. Van olyan LGPL-es lib, ami png, jpg, és még kb 10 formátumot tud betölteni, elmenteni, és számításokat végezni képeken.
Pl. libSDL_image, és ráadásul sokkal több mindent tud, illetve crossplatform, ha c++, c-ben írod. -
BaLinux
tag
Hát elég összetett az opengl állapotgépe. Minden glEnable/glDisable-hető dolgot nézzél át, textúrát jól töltöd-e be, esetleg tesztként húzd rá egy téglalapra, és nézd meg hogy jó-e.
Úgy látom az u, v koordináták valóban megfelelő [0;1] intervallumból vannak, akkor nyilván ne oszd le.
A textúrakoordináták lényege éppen az, hogy egy ponthoz hozzárendel egy pontot a textúrán. Ezt úgy kell elképzelni, mintha a textúra egy végtelenül nyúlékony és vékony anyag lenne, amit szögekkel rögzítesz a vertexeknél. Lineárisan nyúlik és megfelelően torzulva kitölti a közrefogott poligonok felületét. -
BaLinux
tag
Igen, a normálvektor csak a fényekhez kell.
Interpolálás helyett mondhatnék átlagot is. Két vektor átlaga ugyanúgy (v1+v2)/2. Azt javaslom, képezd magad kicsit linalgból, aztán ha jól emlékszem az opengl támogat olyat, hogy vertexenként vehetsz fel normálvektort, nem csak poligononként. Az adott vertex normálvektorát úgy értelmezd, mint a szomszédos poligonok normálvektorának átlagát. Egy 3szögre normálvektort számolni nagyon könnyű, de most nem tudom fejből, keresd meg. -
BaLinux
tag
Szerintem nem úgy néz ki furcsán, mintha nem lenne megvilágítva, mert most egységes világítást kap úgymond, tehát lighting off, ugye? Ha off, akkor textúra koordináta gondok vannak, félrecsúszott a rucija
Ha on, akkor próbáld ki előbb kikapcsolt lightinggal.
Meg vigyázz, mert az u és v koordinátát le kell osztanod x és y textúra mérettel, hogy megkapjad a 0-1 közé eső float koordinátát. Ezután a glTexCoord2f -et használj, mindig a glVertex3f hívás előtt. Ha ez nem javítja, akkor is itt a hiba valahol. Nem kell ahhoz megvilágítás, hogy aránylag normálisan nézzen ki a cucc.
A normálvektorokat meg azzal kell, ja. Azok is előre vannak gyártva, igaz nem tudom miért... helyben is kiszámolhatnád, és ha a szomszédos vertexekre szépen interpolálod a normálvektort, akkor elég sima felületet kapsz világítással ahhoz képest, hogy milyen kocka szegény modell. -
BaLinux
tag
A GL_TEXTURE_MIN_FILTER és GL_TEXTURE_MAG_FILTER a messziről nézett, tehát kicsinyített illetve közelről nézett, tehát nagyított textúra interpolációs mószerét állítja be. Mindkettőt állítsd be, mert úgy lesz jó. Mindkettőre minimum bilinear ajánlott, trilinear (azaz mipmap) még jobb, de akkor mipmapeket is generálni kell a textúrához, ami szintén automatikus. Lásd tutorialok.
A GL_TEXTURE_WRAP_S, *T pedig azt állítja, hogy 1-nél nagyobb (float esetén) tex koordinátánál wrappelje-e a textúrát vagy ne, ill hogyan. (tehát ismétlődjön-e)
Nem arról van szó, hogy érdemes-e használni, hanem használd ami kell -
BaLinux
tag
Sajnos nem tudok magyar nyelvű részletes 3d trafós leírást... én annak idején mindent netről tanultam.
A milkshape text formátum is jó, de eredetileg a binárisra gondoltam, mind1.
A drótváz megjelenítés: glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
illetve nézd meg a többi paraméterét is. -
BaLinux
tag
Jó ez az oldal, szerintem próbáld ki azt a progit amit a ''Reading a MD2 file'' és a ''Rendering the model'' címszó alatt ír, és értsd meg, kezdetnek jó. Amúgy nem teljesen komplett, ha jól látom (nincs benne texture loader pl), de nem baj. Aztán rá lehet térni az interpolációra.
Az opengl commandos rész csak azért van, hogy hatékonyabban lehessen opengl-lel rajzolni a modellt. Amíg az elsőt nem érted meg, ne is foglalkozz vele.
Az adatok bőven elégségesek a modell kirajzolásához, amúgy a Quake2-ben sem ment volna nekik. -
BaLinux
tag
Pl a már említett oldalon van egy tutorial ami pont ezzel foglalkozik:
Bővebben: link
Illetve van egy loader amit régebben átírtam, az eredetit viszont nem találom. Jobban jársz, ha megérted a tutorialból, és nem csak használod.
[Szerkesztve] -
BaLinux
tag
A milkshape saját formátuma is nagyon egyszerű, ahhoz tényleg vannak loaderek, használtam is olyat. Animálni is tud szvsz, de lehet hogy azt neked kell megírnod a loaderhez. Először viszont inkább próbálkozz egy kockával vagy ilyesmi, az egyszerűbb... ;)
A csontváz jöhet később -
BaLinux
tag
Az x', y', z' jelölésű változók majdnem megegyeznek a belinkelt oldalon leírt (11)-es összefüggés által adottal, helyesebben ezek a -d-szeresük. Ezesetben nem a z=-1, hanem a z=d síkba vetítesz (mint egy fotólemezre). A különbség annyi lehet, hogy fordított és zoomolt képet kapsz, vagy ilyesmi. Az általad írt képlet jobbsodrású koordinátarendszert használ? Gondolom.
Ráadásnak még a mátrixok és vektorok is transzponáltak... tehát a könyvedben a sitehoz képest minden transzponált, de ez ne zavarjon, mert
ha M mátrix és P oszlopvektor, akkor
M * P = (P') * (M')
ahol az A' az A transzpontáltját jelöli.
A jobboldali irásmód a könyvedé, a baloldali a honlapé. -
BaLinux
tag
Ismered ezt az oldalt? (NeHe Productions)
Bővebben: link
Innen kiindulva biztosan megtalálsz mindent.
Még 1 praktikus fórum link:
Bővebben: link
[Szerkesztve] -
RedAnt
aktív tag
Huh anno csinaltam Pascalban ilyet
320*200, 256 szin... mode13h rulz...
Hogy is volt?
Az a lenyeg hogy azt kell kiszamolni hogy milyen szogben latod a kameraallasbol a pontokat. Tulajdonkeppen egy gombi koordinatarendszerre kell lekepezni, es ez jelenik meg a kepernyon, en legalabbis igy csinaltam.
Legyen adott a kamera koordinatai: cx,cy,cz
Es a pont amit meg akarsz jeleniteni: px,py,pz.
(mondjuk legyen a koordinatarendszer: balra x, fel y, elore z)
Kerdes hogy milyen szogben latod a pontot:
vizszintesen: arctg( (py-cy)/(px-cx) )
Fuggolegesen: arctg ( (pz-cz)/ sqrt( (px-cx)^2 + (py-cy)^2 ) )
Amit igy megkapsz ket szoget, abbol lesz a kepernyon x es y koordinata.
Pl x-et latod -90..+90 fokig, y-t aranyosan valahogy... A latoszog szerint.
Nah kezdetnek ennyi -
BaLinux
tag
Azért szokás 4x4-es mátrixot használni minden trafóhoz, hogy az eltolás is ábrázolható legyen, legalábbis eddig ezzel a meggyőződéssel éltem. mod: ha jól értem, akkor nem affin trafókat is tudnak így csinálni, és a perspektivikus trafó tényleg ilyen.
A perspektivikus vetítésnek van 3 fontos paramétere:
- közeli vágási felület távolsága (ennél közelebbi cuccokat nem látsz)
- messzi vágási felület távolsága (ennél messzebbi cuccokat nem látsz)
- látószög
Ha beadsz neki egy (x,y,z) pontot, akkor vissza fogsz kapni egy (x',y',z') pontot, melynek (x',y') része a 2ds vetítési síkod koordinátái lesznek (de vigyázni kell, mert még nem képernyő koordináták, hanem ha jól értettem [-1;1] intervallumban), a z' pedig egy speciális módszerrel kapott (nem nyálaztam át teljesen), z-bufferben felhasználható érték. Ami garantált, hogy ha P1 pont P2 mögött van, akkor z'(P1)>z'(P2). Ezt nemlineáris függvényekkel oldja meg ha jól láttam. De jól át kéne olvasnom, mert ''kézzel'' nem csináltam még ilyet.
[Szerkesztve] -
BaLinux
tag
Tudom mit akarsz, ezt úgy hívja az opengl, hogy ''projection matrix''
Mingyá kikeresek neked egy megfelelő paraméteres mátrixot, úgy hívják a látóteret amúgy angolul, hogy frustum (ami egy torz csonka gúla gyakorlatilag).
mod: Meg is van egy jó link: Bővebben: link
[Szerkesztve]
Aktív témák
Hirdetés
- Formula-1
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Hardverkemping június végén
- Call of Duty: Black Ops 6
- Óvodások homokozója
- Autós topik
- Bemutatkozott a Poco X7 és X7 Pro
- Gitáros topic
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Kazy Computers vélemények - tapasztalatok
- További aktív témák...
- EREDETI Apple Watch ULTRA óraszíjak (BLACK TITANIUM) - 49mm
- Apple Watch ULTRA 2 49 mm - Black Titan, Black Ocean Band - MAKULÁTLAN! - 3 ÉV GARANCIA
- Razer Core X eGPU
- MSI Cyborg 15 A13VF - 15.6"FHD 144Hz - i7-13620H - 16GB - 512GB - RTX 4060 - Win11 - 1,5 év garancia
- Asus ProArt RTX-4060 OC 8GB (PROART-RTX4060-O8G)
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- PlayStation Plus Premium 24 hónapos előfizetés , egyenesen a Sony-tól!
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 77G3 - 77" OLED evo - 4K 120Hz 0.1ms - MLA - 2000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
- Üzleti Fujitsu Lifebook u7510 15,6" FHD IPS 2021/08. havi gyártás
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest