Toon posts:

[FLASH] 3D Engine

Pagina: 1
Acties:

Verwijderd

Topicstarter
op http://www2.hku.nl/~patrick/1 staat mijn eigen 3d engine tot zover. Ik wil nu graag z-ordening erbij in knallen ... Ik zat te denken aan de aftsnad te bereknen van een punt tot aan het oog (de gebruiker/ beeldscherm), deze is dan het dichstbij. Of kanik gewoon volstaan met kijken welke z-waarde het kleinst is. de FLA staat ook op het adres ...

Ik wil graag geen complete code hier, zodat ik zelf niks meer hoef te doen. Maar graag ideeen hoe je dit het beste kunt aanpakken.

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Ik heb verder niet zo'n verstand van 3D engines, maar ik zou het z-orderen zo vroeg mogelijk in je code doen om zsm te bepalen of je iets niet verder hoeft te "renderen" annex berekenen, maarja daarvoor moet je ook weer bepalen of er niet iets anders "voor" zit :D

voor dit soort dingen heb ik ook zwaar respect :)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Ermm....doet nie.....

Laatste 6 Player.......geen beweging in te krijgen.

Verwijderd

Op vrijdag 31 mei 2002 15:05 schreef B-Top het volgende:
Ermm....doet nie.....

Laatste 6 Player.......geen beweging in te krijgen.
Keyboard gebruikt?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

ow.. bij mij deed ie ook niks.. maar ik zat op die knoppen (die trouwens errug ver naar rechts staan :P) te klikken..

ff proberen met KB.

Verwijderd

Topicstarter
sorry guys ... je moet met de cursortoetsen werken. Die knoppen vallen in de SWF eigenlijk buiten de stage.

Verwijderd

werk je met getrianguleerde polygonen? dan kan je z-sorten op het zwaartepunt van elke polygoon...... en dan "vanachter" beginnen tekenen.

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Op vrijdag 31 mei 2002 10:32 schreef PatrickPietens het volgende:
op http://www2.hku.nl/~patrick/1 staat mijn eigen 3d engine tot zover. Ik wil nu graag z-ordening erbij in knallen ... Ik zat te denken aan de aftsnad te bereknen van een punt tot aan het oog (de gebruiker/ beeldscherm), deze is dan het dichstbij. Of kanik gewoon volstaan met kijken welke z-waarde het kleinst is. de FLA staat ook op het adres ...

Ik wil graag geen complete code hier, zodat ik zelf niks meer hoef te doen. Maar graag ideeen hoe je dit het beste kunt aanpakken.
OFFTOPIC:
http://www2.hku.nl/~patrick/1/player.swf

HOE HEET DAT LIED?!?!? :D dat zat namelijk ook in Ali G INDAHOUSE :D

Verwijderd

Topicstarter
hehehe ...

M Beat ft. General Levy - General

volgens mij het meest gezochte nummer op dit moment :P

Verwijderd

Gebruik een quicksort routine zoals die in deze file staat.

http://www.xs4all.nl/~elout/flash/flashback10.html
(de --> function zqsort(low, high))

stel je voor je hebt 3 bolletjes
1 - z= 10
2 - z= 100
3 - z= 50

je doet een quicksort op de z-waarde
dan krijgt zoiets van
1 - z= 10
3 - z= 50
2 - z= 100

dan weet je gelijk welk bolletje eerst of laatst moet tekenen.

hier semi-code -- even uit m`n hoofd (niet getest)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
for (i=0;i<bolletjes; i++) 
{
 zbol[i]=random(200) //z-waarde
 bolnummer[i]=i;     //nummer van het bolletje
}

zqsort(0, bolletjes-1)

for (i=0;i<bolletjes; i++) 
{
 teken bolletje met bolnummer[i]
}


//--------- 

function zqsort(low, high)
{
    i = low;
    j = high;

    if (high > low)
    {
        x = zbol[Math.floor((low+high) / 2)];
        do
        {
            while (zbol[i] < x) i++;
            while (zbol[j] > x) j--;
            if ( i<=j )
            {
                temp=zbol[i];
                zbol[i]=zbol[j];
                zbol[j]=temp;

                temp=bolnummer[i];
                bolnummer[i]=bolnum[j];
                bolnummer[j]=temp;

                i++;
                j--;
            }
        } while (i <= j);
        if (low < j)  zqsort(low, j);
        if (i < high )  zqsort(i, high);
    }
}

edit:
de quicksort is een algemene routine die veel gebruikt wordt, ik heb m dus niet zelf uitgevonden

Verwijderd

Topicstarter
ik dacht zelf aan zoiets :
code:
1
2
3
4
5
6
7
8
9
10
function zSorteren () {
    var dnArray = new Array();
    for (i=0; i<=diepteObject; i++) {
        dnArray.push ( { diepte: this["nieuwObject" + i].getDepth (), nummer: i } );
    }
    dnArraysortOn("diepte");
    for (i=0; i<=diepteObject; i++) {
        this["nieuwObject" + i].swapDepths(dbArray[i[i])
    }
}

is deze manier slim, of te langzaam?

  • Oogst
  • Registratie: Juli 2001
  • Laatst online: 04-01 21:29
Werkt code zoals die van cel-ed ook als de bolletjes deels overlappen?

Devblog / portfolio
Swords & Soldiers
Awesomenauts
Proun
Cello Fortress


Verwijderd

Ik ben zelf niet zon Flash Gast maar die Player ziet er leet uit. Ik snap nog steeds niet hoe jullie deze graphics tekeken. Gebruiken jullie daar een andere programma voor (zo ja, welke)?

Nou suc6 met je 3d enginetje ziet er wel geinig uit tot nu toe..

Verwijderd

doe die 3D engine nu maar stap voor stap.
dan begrijp je het beter.
Begin met painters algoritme ea.

ik zit nu op gourard shading/texturemapping. en een m`n eigen z-buffertje. Als ik er weer zin in heb, next step frustrum clipping ea. Maar ik ben niet zo`n whiz, voor mij gaat het stap voor stapje.
oa. oud ding;
http://www.xs4all.nl/~elout/morphic/morphic06.html (niet echt clean)

Aan de andere kant, er komen weer talen aan waardoor je gelijk weer kan raggen op je 3D-kaartje, bijv. laatste versie van director heeft weer lekker open-GL support.
Ook weer leuk, camera hier, lampje daar en go, ipv. je hele 3D engine zelf te schrijven.

Verwijderd

ff offtopic hoe heet dat liedje op het achtegrond (ook bij ali g gebruikt ?)

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 12:12

Pelle

🚴‍♂️

dude, kijk eens een paar reacties boven je :z

Verwijderd

ohja sorry ben nog al slaperig rond deze tijd :z

Verwijderd

Dit is echt totally whack 8-) Bij mij werkt ie prima :) Nog veel success :) btw, kan ik um als ie klaar is gebruiken (met credits natuurlijk)... Ik had net wel een vet ideetje namelijk :7

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

zeer cool
tip(je) camera met de muis bedienen en 'rond' kunnen draaien, maar vrees dat dat te moeilijk gaat worden

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

Deze komt erbij als Active Desktop Item :D

http://www2.hku.nl/~patrick/1/player.swf

Verwijderd

Op vrijdag 31 mei 2002 22:27 schreef cel-ed het volgende:
doe die 3D engine nu maar stap voor stap.
dan begrijp je het beter.
Begin met painters algoritme ea.

ik zit nu op gourard shading/texturemapping. en een m`n eigen z-buffertje. Als ik er weer zin in heb, next step frustrum clipping ea. Maar ik ben niet zo`n whiz, voor mij gaat het stap voor stapje.
oa. oud ding;
http://www.xs4all.nl/~elout/morphic/morphic06.html (niet echt clean)

Aan de andere kant, er komen weer talen aan waardoor je gelijk weer kan raggen op je 3D-kaartje, bijv. laatste versie van director heeft weer lekker open-GL support.
Ook weer leuk, camera hier, lampje daar en go, ipv. je hele 3D engine zelf te schrijven.
Ziet er goed uit. Waar haal je de info vandaan om zoiets te maken? En is dit geheel softwarematig of maak je gebruik van opengl oid?
Ik heb zelf namelijk een tijdje met opengl lopen prutsen, maar daarmee geef je een aantal punten op je voegt een lichtje toe en voila je hebt een simpele 3d scene. Nou wil ik dus zelf zoiets gaan maken, alleen dan zonder gebruik van een 3D api, om de techniek er achter te begrijpen. Maar het lukte me niet eens om van een punt in een 3d ruimte (x,y,z) de positie te berekenen op een 2d scherm. Hier is ook heel weinig informatie over te vinden ;( De meeste informatie die ik heb gevonden gaan over ver gevorderde dingen of ze maken gebruik van een 3d api, wat ik dus niet wil.

Verwijderd

Er is best veel te vinden over deze onderwerpen hoor, ook zonder gebruik te maken van een 3D API. Zoek eens naar 'oude' tutorials uit de demoscene, in die tijd bestond DirectX of OpenGL nog niet en werden er ook 3D engines gemaakt waarbij alleen 'pure' C/pascal (en soms assembly) gebruikt werden. Ze gebruikten dan alleen vaak gewoon de standaard-modes van de VGA-kaart (mode 13h voor de liefhebbers :) ) en werkten dus meestal in een, naar huidige maatstaven, belachelijke resolutie. Uiteraard kun je dezelfde theorie toepassen in hogere resoluties.

Zo heb je hier bijvoorbeeld de Denthor tutorials, een klassieke serie teksten op dit gebied.

Ook is dit een aardige tekst die mij iig voor het eerst enig inzicht verschafte in waarom je een matrix kunt gebruiken voor een transformatie....

Zo zijn er nog veel meer, Google is your friend in dit geval. Zoeken op 3D programming tutorial, en alles van na 1990 negeren ;)

Verwijderd

software matig, paar experimentjes van een jaar terug, zie;

http://www.xs4all.nl/~elout/buf/

al die goede tutorials waar ik veel informatie kreeg, en gebookmarked heb zijn inmiddels weer offline. Dus je moet het ff doen met deze source. (ok ik heb het ook van anderen, geschreven vertaald naar m`n eigen 'ding' om het werkend te krijgen.)

veel plezier ermee.

Verwijderd

Op zondag 02 juni 2002 20:02 schreef cel-ed het volgende:
al die goede tutorials waar ik veel informatie kreeg, en gebookmarked heb zijn inmiddels weer offline.
Cool! softwarematig & in Java. :)

Er is inderdaad een hoop verhuist en verdwenen op dat gebied. Ik herrinerde me opeens de naam 'Kiwidog', iemand heeft onder die naam ook een reeks geschreven waar ik aardig wat van geleerd heb. Zoeken op Google leverde een pagina op waar nog heel wat 'oude shit' staat:

http://www.geocities.com/SiliconValley/Park/9784/tut.html

(zullen wel heel wat dooie links bij zitten, maar als je een eind naar beneden scrollt vind je onder het kopje 'Math' iig nog een werkende link naar die Kiwidog tutorials, en nog zo wat...)

Verwijderd

Op vrijdag 31 mei 2002 18:27 schreef PatrickPietens het volgende:
ik dacht zelf aan zoiets :
code:
1
2
3
4
5
6
7
8
9
10
function zSorteren () {
    var dnArray = new Array();
    for (i=0; i<=diepteObject; i++) {
        dnArray.push ( { diepte: this["nieuwObject" + i].getDepth (), nummer: i } );
    }
    dnArraysortOn("diepte");
    for (i=0; i<=diepteObject; i++) {
        this["nieuwObject" + i].swapDepths(dbArray[i[i])
    }
}
Wat dacht je van lekker snel je array'tje op z sorteren?
code:
1
2
3
4
5
6
7
8
9
movieclip.prototype.nums = function (a,b){
    a = Number(a[2]);
    b = Number(b[2]);
    return(-((a > b) - (a < b)))
}

array.prototype.numsort = function(){
    this.sort(nums);
}

ENJOY! :)
Pagina: 1