Aktív témák
-
QuarK
senior tag
A FreePascal forráskódjában megvan a graph forráskódja. Én is annak segítségével csináltam anno HighColor GUI-t, 1024x768-as felbontásban. És még nagyjából gyors is volt.
Egyébként eltekintve a VESA és 15 bites színmélység előnyeitől, figyelembe kell venni, hogy a TP eléggé lassúcska egy nyelv (legalábbis az én 333MHz-es noteszemen oda kell figyelnem a performanszra)...
320x200-ban a következő dolgokat tudtam használni: Virtuális képernyő. Nem a videomembe írok, hanem egy lefoglalt 64000 blokkba, majd egy assembly eljárással villámgyorsan tolom a képernyőre, és ugyanilyen hamar törlöm is. Gyors árnyékolás: egy 256x64 méretű kép (colormap) segítségével egész szép fény-árnyék effektusok érhetők el.
Engem mindig is foglalkoztatott ez a 3D megjelenítés, és persze én is pascalban próbálkoztam. Először jött a szokásos háromszög poligon megjelenítés, flat shading, majd gouraud shading, majd ezek vegyítése a texture mapping-gal. Csak hát itt gond volt a perspektíva korrekcióval, és persze a gouraud sem a legszebb árnyékoló algoritmus. És további effektekről nem is igazán álmodhattam.
Majd végül mielőtt a C-re áttértem volna az alábbi szinten maradtam: 16 pixelenkénti perspektíva korrekciós poligonok kiköpése, árnyékolás az alábbi módon: direkt a textúrán hajtottam végre a megvilágítást; majd azt rajzoltam ki (lightmapping, a'la Quake1). Meg persze átlátszó felületek; kavargó felszín; Z-puffer. (mondjuk ezt érdekesen oldottam meg; két 64000-es pointerem volt, egy az alsó 8 bitnek, a másik a felső 8-nak (ti. a mélységet integerben tároltam)
Itt egy kép is:
De aztán feladtam, mert így is már 400k memóriaigénynél tartottam, és még be se lett töltve pálya, meg textúra sem. XMS-el elbíbelődhettem volna, de összességében a pascal szvsz nem alkalmas jó minőségű 3d megjelenítésre. Valahol mindenképpen veszíteni kell (minőség, textúrák száma, sebesség, stb.) -
Rover623
félisten
A BGI-kkel nekem sajna eddig nem volt túl sok jó tapasztalatom, lassúak, esetenkén bugzanak, nincs duplapuff , kevés szín , nem mindenhol müxik stb...
Mert nem jutottál hozzá annak idején az enyémhez...
Kevés szín? A graph.tpu korlátai miatt ennyit lehetett használni (256). Lehetett többet is (csináltam HiColor-t is) de akkor a progiban spec hívásokat kellett alkalmazni, ergo elveszett a kompatibilitás, nem lehetett egyszerűen megoldani hogy a progi alatt csak a BGI cserélődjön a vasnak megfelelően.
Nemcsak VESA-t csináltam, volt natív SVGA is, közvetlen chip-kezeléssel...
Amcsiba eladott szoftver is készült vele, 15.000 eladott példányból két tucat problémás eset volt...pedig 95-96 környékén az ottani eszközpark nem kicsit tért el a mienktől...a legtöbb VGA karit csak ''papíron'' láttam
97 végén, amikor befejeztem a fejlesztést, az országban fellelhető összes VGA kompatibilis karit kezelte...
Azért kellett leállnom vele, mert a Borland nem segített abban, hogy továbbléphessek! A graph unitban vannak bugok (heap kezelés), és korlátok. Ezt akartam feloldani egy átdolgozott graph.tpu-val, de nem adták a forráskódot
Új graph-ot írni, meg rámozdulni a kártyákban megjelenő 2D és 3D gyorsítófunkciókra is...hobby szinten már nem volt kivitelezhető...
P.S.:
Egyébként ma (2005)-ben én sem javaslom a DOS-os környezetet grafikai alkalmazásra... -
GBX
aktív tag
én speciel azé ajánlom az elején a 320*200-as felbontást mert GYORS, de nagyon. Írtam régebben egy pici hajós programot ahol a hajókat kell kilőni (Ships!)
Ott sok billboardot használtam sok textúrával. A totál átlagos 2ghz-es gépen átlag 250 fps-t (210-280fps) hozott ki.
Kezdésnek nem rossz, és később lehet mégjobban berhelni a megjelenítéseket.
Ennek a 320*200 as felbontás kezeléséhez szum 7 (magic7) eljárás kellett:
-init
-deinit
-clear
-set/getpixel
-swapbuffers (érdemes dupla buffereléssel dolgozni (csak +64K memoria))
-setpalette (256 color rulez)
-draw
ezeket érdemes asm-ben csinálni, (ettől olyan gyors)
Innentől teljesen trivi.
+tipp : érdemes olyan globális változókat (esetleg konstansokat) felvenni ahol jelezve van hogy mekkora a felbontás/színmélység stb... és renderelni mindig ezek figyelembevételével történjen. Ne legyen az hogy egyik felbontásban okés de egy nagyobb felbontásban minden elvan csúszva esetleg nem jelenik meg.
A BGI-kkel nekem sajna eddig nem volt túl sok jó tapasztalatom, lassúak, esetenkén bugzanak, nincs duplapuff , kevés szín , nem mindenhol müxik stb...
De szerintem majd te is rá fogsz jönni miután már a 5ezredik sornál tartasz, hogy a pascal egyre inkább korlátoz, leginkább a kevés lefoglalható memória miatt (640K (BillGates: ááá, az mindenre elég, 10 év múlva : Izé én 640MB-ra gondoltam))
és te is be fogod látni hogy az objektumoriantált programozás (OOP) a te barátod, és akkor írhatod át az egészet C++-ba mert OOP-re az egy jó nyelv (de akár Java is jöhet, de az is csutkára c++).
Tehát mielőtt belevágsz/nagyon elásod magad, ajánlom használj vmi magasabb szintű fejlesztőrendszert és esetleg vmi grafikai API-t.
Ajánlom figyelmedbe a OpenGL + C++ párosítást. Ezt kb 2 év aktív tanulással sacc/kb el tudod sajátítani kb közepes/haladó szintre. És ha ezeket tudod akkor úgy grafikázhatsz ahogy akarsz, mert megint visszatér a grafika a perpixel számításokra (úgy mint réges régen, képpontról képpontra számolunk az eddig megszokaott CSAK texturázott sokszögekkel szemben) á lá pixelshader. -
Rover623
félisten
Megpróbálom előásni a BGI-t forrásanyagban...
A tesztprogit már megtaláltam, talán még emlékszel a BGIDEMO-ra...ez annak az alapján készült.
Összecsomizom és elküldöm, de ezt erősen olvasgatni kell és úgy okulni belőle, mert lefordítani már én sem tudom
Az elmúlt 7-8 évben ''kicsit'' megváltoztak azok a unitok, amikre hivatkozik... -
Polyák
tag
Hi!
Tudsz segiteni valamit (pl:forráskódot amiből kindulhatok, vagy megértehtem) SVGA-VESA BGI -vel kapcsolatban?
Én EGA-VGA-ban próbálkoztam de volt valami szép!
Mekkora az a 320*200 -mal komolyabb grafika?
640*480-nál nagyobb? mert én akkorába dolgoztam max! (de nem 3d)
Esetleg tudnál küldeni olyan alkalmazés amit te csináltál 3dben? ha nem baj!
Előre is köszi! -
Rover623
félisten
Ha komolyabban foglalkozol vele és kell komolyabb grafika mint a 320x200, jutányosan (pl. ingyen) átengedek SVGA-VESA BGI-t, a forrással egyetemben, érdemes tanulmányozni pl. az egyes grafikai primitíveket...
Arra jó, hogy letesztelhesd: van-e elég erős vas a közeledben, hogy szoftveres 3D megjelenítést csinálj
Annak idején (vagy 10 éve) a leggyorsabb BGI volt a piacon...ezzel ment a PC-X magazin grafikus shell-je is...amíg Windows-os nem lett. -
GBX
aktív tag
Szia, én régebben programoztam 3d-t pascalban.
Pár tapasztalat:
Grafika megjelenitésre a leggyorsabb a 320*200-as felbontás amit asm parancsokkal inditasz és asm-ben éredemes rá hivatkozni (pixel elérés, beállitás stb..)
Ha 3d-ben akarsz vmit csinálni érdemes 1szőr a mateknál kezdeni, merhát ez matek,
Alapok: pontok/vonalak/drótháló mozgatása, stb,
ajánlom hogz csinálj egy mátrixokkal dolgozó unit-ot, ami legalább 3x3-as mátrixokkal tud dolgozni
és csinálj egz vector unitot ami 3 komponenses vectorokkal (x,y,z) tud műveleteket végezni
Egy pici gyorsitási tipp: a sin,cos,tg fv-eket előre egy tömbben tárold és egy spec. eljárással (pl mysin(alfa single)) olvasd ki a megefelelő szöghöz a megfelelő sin értéket.
Ajánlom a prog.hu -t ahol sok ilyen saját készitésű 3d-s fv található.
Sok sikert. -
Bero
aktív tag
-
Polyák
tag
Senki más?
-
Polyák
tag
KÖszi SZépen!
NAgyon tetszettek a linek!
VAlaki tud még hasonlót? -
QuarK
senior tag
Én anno 1-2 évig hobbi szinten foglalkoztam ezzel, akkor (bár nem pascal alatt) átgyúrtam a quake motort, hogy quake2 szintű grafikát nyújtson, DOS alatt. Igazából nem tudom, mit ajánljak.
Letöltöd a forráskódot Bővebben: link, GPL, azt teszel vele amit akarsz. De ehhez tényleg az kellene, hogy már nagyon régóta foglalkozz a dologgal, de tanulásra is jó szvsz.
Egyébként volt némi poén felhangja is a dolognak, de az biztos, hogy szép nagy falat, és mindenki padlót fogna, ha Quake1 motor menne Turbo Pascal alatt. Nem lehetetlen feladat, de ne várj gyors sikert.
Egyébként meg ez is jó hely, innen sikerült nekem egy-két érdekes 3d pascal progit leszednem (bár azok se léptek túl a Doom szintjén): Bővebben: link.
Itt pedig néhány pascal-os 3d motor: Bővebben: link
Ennyi, igazából én is úgy kezdtem, hogy keresgéltem agyba főbe, töltögettem, megnéztem, jó meghagytam, nemjó töröltem...És most már nem is tudom, hogy lehetne röviden erről mondani bármit is...
-
Polyák
tag
Bocs hogy ilyen ritkán irok de mostanában keveset ülök net előtt!
Tudnál nekem segíteni ebben ? -
b14
senior tag
Elég rövid életű réma volt.
-
Polyák
tag
Szevasztok!
Azt szeretném megérdeklődni hogy a tp7-tel lehet 3dbe programozni?
Én tuttam doom2 szerüséget csinálni de nem volt tökéletes !
Tud nekem valaki segíteni? Előre is köszi!
Érdekel még mindenféle forráskód is.
Aktív témák
Hirdetés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- War Thunder - MMO Combat Game
- Android szakmai topik
- Cyberpunk 2077
- Ivqkzy-: 2. gépem
- Bambu Lab 3D nyomtatók
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Kerékpárosok, bringások ide!
- Bittorrent topik
- További aktív témák...
- GAMER PC : RYZEN 5 4500 / 16GB DDR4 / ASUS RX 480 8GB / WiFi / Bluetooth / 512GB M.2 SSD / 500GB HDD
- Dell Latitude 7390, 13,3" FHD IPS , I5-7300U CPU, 16GB DDR4, 512GB SSD, WIN 11, ( olvasd végig )
- Acer PREDATOR HELIOS NEO 16 / i9-14900HX / RTX 4070 (140W) / 1 TB SSD / 240HZ
- Topping A70 Pro fejhallgató erősítő
- Topping D70 Pro Octo DAC
- Beszámítás! Sony PlayStation 5 825GB SSD lemezeskonzol extra játékokkal garanciával hibátlan működés
- Intel X540-T2 dual-port 10GbE RJ45 hálózati vezérlő (10Gbit, 2 port, áfás számla, garancia)
- BESZÁMÍTÁS! Asus TUF B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 XC 12GB Rampage SHIVA Chieftec 600W
- AKCIÓ! Lenovo Legion Slim 5 16AHP9 notebook - R7 8845HS 16GB RAM 512GB SSD RTX 4060 8GB Win11
- Bomba ár! Dell Latitude 5495 - Ryzen 5 I 16GB I 256SSD I 14" FHD I HDMI I Radeon I Cam I W10 I Gari!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest