» »

My 3d engine

My 3d engine

Phil ::

Evo zdej sm koncno spacal skup nekaj v openGLu cemu bi lahko rekli 3d engine. Najdete ga na naslovu
klik. Mapa je shranjena v data/txt/cman2.txt, drugo pa v ostalih datotekah.
V particle.txt so shranjeni efekti kot so dez in sneg (po defaultu sta oba izklopljena, za vklop odprite particle.txt in spremenite stevilodevcev v 2).
Zalaufa se pa v 800*600. Komande so: smerne tipke za premikanje,miska,m za vklop izklop megle,j za "lebdenje", space za skok,F1 fullscreen in l za osvetlitev(dela bolj cudno :8)).
Preizkuseno na c466@581, v3 2K driverji 1.08.00, v Win 2K in v win 98.
btw a kdo ve kako v openGLu nalozis nalozis teksturo vecjo od 256*256 alpa teksturo, ki ni mnogokrtnik st. 2 (v tem enginu lahk nalagas samo teksture npr.
32*32,64*64...)
  • spremenil: Phil ()

Phil ::

No a je ze kdo preizkusil?

Monster ::

se je cool ne sm dej gor source codo,da bi kdo lahk še key naučo ne. Edino kar je mogoče čudno je da se on MD2 model ne giba glih tekoče
Ka zaboga...

Senitel ::

Seveda lahko v OpenGL-u uporabljaš teksture večje od 256x256, samo jih tvoj Voodoo 3 ne podpira :\...
Tekstur, ki pa niso mnogokratnik števila 2 pa nemoreš uporabljat (zaradi filtriranj, cache mehanizmov,...).
Bom sprobal, ko pridem domov :D.

Senitel ::

Nekaj nasvetov:
- nikoli ne inicializiraj miške v windowed mode-u na exclusive >:D...
- pri alpha blendingu moraš vedno (razen če res veš kaj delaš):
- izključiti "depth testing"
- poskrbeti, da so vse netransparentne stvari že narisane

Pa un model se res neki čudno premika...? Težave z interpolacijo med meshi?

Khey ::

S kerim jezikom pa programiras.
Ce z Delphijem, imas ene dobre komponente za programiranje z OpenGL, pa se hitrej laufa.

Senitel ::

Ups pa še neki:
- fps dobim: 1.#INF0000, kar pomeni, da imaš nekje problem z floating poing natančnostjo (zelo verjetno timeGetTime)
- pa tist, da je za alpha blending treba izklopit depth testing ni glih najboljša rešitev. V bistvu moraš izklopit samo z write-e (z testing ostane), vendar nevem kako to nardit v OpenGL-u...

Senitel ::

Pa ker ne morem popravljat svojga message-a je obrazložitev prve stvari tukaj:
renderiranje se konča v tako kratkem času, da timeGetTime ne zazna razlike in ker imaš nekje v svoji kodi 1000.0f/timeGetTime() dobiš 1000.0f/0.0f in to je to 1.INF000... Tako da uporabljaj QueryPerformanceCounter za "ticke" in QueryPerformanceFrequency, da ugotoviš koliko "tickov" je ena sekunda.

Phil ::

Ja sej to z INF tut men kaze sam a ne pride do napake ce je deljenje z 0. Drgac pa thx za komentarje bom takoj ko bo cas popravu. Model je itak samo iz enega mesha, zatika se pa zato ker ma samo 6 frejmov za tek jzt sm pa uporabu samo 1-kratno interpolacijo med vsakima dvema slikama izracuna se po eno tocko in je pol 11 frejmov). To sm itak ful na hitro naredu bom takoj popravil k bom mel cas.
Khey: to sem naredil v VC++
p.s Forum pa res steka
LP

lordgreg ::

jaz sicer nisem v takih vodah ampak to, kar sem videl je nekaj inspirativnega za vse,.. slovenci smo napredni...

čestitam človek ;)

Khey ::

LORDGreg:
Nekje dobi Delphi (5, 6 whatever) in si zdownloadaj z naslova www.glescene.org komponente. Tm mas tut sample za miljon stvari v OpenGL-u, tut tek, 3D sprehod,
ogenj ....

Phil ::

Senitel: sam teksture ki niso mnog. st. 2 se more dat nekako nalagat kr pri quaku2 se vse teksture kr enih cudnih dimenzij (razen ce jih pol raztegne).
Khey: dej pol pa naredi ti isto v delphiju z istimi modeli.. (ce so za vse primeri ne bi smelo biti problemov), pa bomo mal primerjali hitrost. Na zacetku sem pozabil se eno komando,
pa zdej ne morem posta popravit (w za wireframe).
LP

Khey ::

Sej se ti ni treba razburjat, ker je cist kul narjeno.
BTW: jst sm sprobu narest en tak sprehod po centru Ljubljane, pa sm uspel narest sam eno ulico (sam ne z detajli !) pa eno stavbo.
sam je tko mal bl bedn, k nism mel velik cajta se s tem ukvarjat
ostalo so samo se detajli

Senitel ::

Un value 1.#INF000 je ena VC++ specifika, ki jo dobiš pri deljenju z nič (se mi zdi)... Podobno lahko dobiš med debugiranjem v spremenljivke vrednosti, ki ti povejo, da ni setirana in podobno. Vendar nevem kje je to kaj dokumentirano...??

Za teksture, ki pa niso "power of 2" pa lahko engine jasno dela kar koli hoče, vendar bo pomoje vsak klic za kreiranje take teksture v OpenGL-u in DirectX-u failov.

Phil ::

Zdej sem popravil fps counter (mam 50-200fps :))
in izris transparentnih stvari (z glDepthMask), za misko pa ne morem, ker
ne vem, kako pogledati ce je okno aktivno anyone?

Senitel ::

WM_ACTIVE...:D

cahahopie ::

Bravo...kar nadaljuj! Sicer je potrebno še nekaj znanja.
V katerem skriptnem jeziku si pa pisu? Delphiju? C++?
Predvsem me zanima ... kolk časa si rabu za tole (dnevi, tedni, meseci?) pa kolk znanja jezika, ki si rabu (beginer, intermediate, profesional)??:)

Phil ::

Ja napisano je v VC++ (sej ze par postov nazaj pise :\ ), delal sem pa ene 4,5 meseca (
sam jzt delam tako, da ene par dni fejst delam, pol pa teden, dva pocivam :\.
Zdej k je sola pa al nimam casa alpa se mi ne da, razen ob vikendih). Prej sem pa precej znal c++ (tole sem tut ze nekje napisal, semizdi) do dinamicnega zaseganja pomnilnika
in branja/pisanja datotek.
LP

DarkWIng ::

kr uredu... tud jest delam nekej podobenga....
par vprašanj : a normale md2 modelov potegenš iz predefinirane tabela (anorms.h :)) a jih znaš generirat "on-fly"..

pa glede collision detection : kakšen algoritem uporabjaš za line-triangle intersection.. pa kako maš samo sceno organizirano (BSP/Octree/hybrid)...

če pa rabiš kekšno pomoč gelde openGL pa kr praš...
You're a wonderful friend and a raving psycho.

Phil ::

Normal za md2 model engine se ne izracunava (sej se vid kako je cudno osvetljen), drgac za okolico se pa izracunajo samo enkrat na
zacetku (sej se itak razen modelov nc ne premika), drgac jih je pa cist lahko izracunat (ne vem kako ti mislis on-fly, a vsakic ko se izrise trikotnik... ?) .
Alogaritem za collision detection je tale
BSP,octa trees pa ni sploh (za collision detection jih ne rabim).
LP


Vredno ogleda ...

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

[C && OpenGL] "speed tape"

Oddelek: Programiranje
71268 (1119) Monster
»

Nov članek: Čudežno popotovanje skozi grafični cevovod - 2. del

Oddelek: Novice / Nova vsebina
414783 (3537) SavoKovac
»

C++ programirane v Open GL oz. Direct x

Oddelek: Programiranje
242990 (2261) Vesoljc
»

3D Engine

Oddelek: Programiranje
291835 (1435) helidium
»

Collision detection

Oddelek: Programiranje
81936 (1688) Senitel

Več podobnih tem