PDA

View Full Version : [Frage] anforderungen, 3. abgabe


grimreaper
01-06-2004, 13:39
hi!

ich hab mal ne frage bezüglich der punkte die für die 3. abgabe verlangt sind.
müssen wir die gesamten funktionalitäten auf den f tasten zur verfügung stellen?
z.b. display lists. wirklich sinn machen die nur bei statischer geometrie..erzeugen kann man sie natürlich auch für die dynamischen, aber geschwindigkeitsgewinn wirds keinen bringen.

genauso, sollen wir immediate mode einbaun, wenn wir schon von vornherein alles mit vertex-arrays rendern?

dann hätt ich noch ne frage zu den partikel systemen ;]
also ich hab jetzt mal feuer mit billboard-partikelsystemen implementiert und bin mal am rätseln was genau "Verhalten der Partikel beeinflußt sich gegenseitig" bedeutet?

Chuck
01-06-2004, 14:15
werd da gleich mal eine meiner fragen zu der abgabe dranhängen :)

wie werden selbst gestrikte effekte bewertet, bzw wie kann man erfahren wieviele punkte man dafür bekommt.

achja und das mit den ftasten interessiert mich auch... unsere engine verwendet standardmäßig auch zumindest vertexarrays (bzw eben VBOs falls unterstützt). insofern wäre es für uns ein extremer aufwand das ganze auf immediate mode umzustellen. ausserdem weis ich noch immer nicht genau was mit umstellen der texturqualität jetzt eigentlich genau gemeint ist :p

grimreaper
01-06-2004, 14:19
insofern wäre es für uns ein extremer aufwand das ganze auf immediate mode umzustellengenau darauf wollt ich hinaus :devil:


ausserdem weis ich noch immer nicht genau was mit umstellen der texturqualität jetzt eigentlich genau gemeint ist :ptja,.. wissen tu ichs auch nicht, aber ich habs derzeit so gelöst:
f5: schaltet mipmapping ein oder aus (also wechselt zwischen GL_wertvonf4 und GL_LINEAR_MIPMAP_wertvonf4

und f4 schlatet bei mipmapping zwischen GL_LINEAR_MIPMAP_NEAREST und GL_LINEAR_MIPMAP_LINEAR um, und ohne zwischen GL_LINEAR, GL_NEAREST um

aber kA ob das so gemeint ist.

wie werden selbst gestrikte effekte bewertet, bzw wie kann man erfahren wieviele punkte man dafür bekommtjo, das wär auch interessant zu erfahren,.. damit man nicht unnötig zeit in nicht benötigte dinge steckt,.. ist ja immerhin nichtmal mehr 1 monat zeit.

ChrisChiu
01-06-2004, 16:51
werd da gleich mal eine meiner fragen zu der abgabe dranhängen :)

wie werden selbst gestrikte effekte bewertet, bzw wie kann man erfahren wieviele punkte man dafür bekommt.

achja und das mit den ftasten interessiert mich auch... unsere engine verwendet standardmäßig auch zumindest vertexarrays (bzw eben VBOs falls unterstützt). insofern wäre es für uns ein extremer aufwand das ganze auf immediate mode umzustellen. ausserdem weis ich noch immer nicht genau was mit umstellen der texturqualität jetzt eigentlich genau gemeint ist :p

Naja, von einem glDrawElements() auf Immediate Mode ist ja nicht sooo ein Aufwand.

Ihr könntet ja eine Ersatzfunktion schreiben wie etwa MyDrawElementsImmediate(), die einfach das Vertex-Array traversiert, und dann glVertex, glColor, glNormal usw. ausgibt.

Mit der Texturqualität ist umschalten zwischen bilinear und trilinear gemeint. MIPMAPs sollten auch umschaltbar sein (obwohl zugegebenermaßen die Kombination trilinear + keine Mipmaps etwas unbrauchbar ist).

Es ist ja nur um zu sehen, wieviel diese Dinge ausmachen in der Performance bzw. Qualität.

grimreaper
01-06-2004, 17:13
Naja, von einem glDrawElements() auf Immediate Mode ist ja nicht sooo ein Aufwand.tja bei einem sauberen engine-design, ists so gut wie 0 aufwand,... nur hat die sauberkeit recht stark mit dem zeitdruck gelitten ;/
aber ok,... wird eingebaut.

was ist mit den display lists? ja/nein, überall/nur bei statischen objekten....??

ChrisChiu
01-06-2004, 17:30
Also da Display Lists bei nicht-statischen Objekten keinen Sinn machen, sollte es nur umgeschaltet werden für die statischen.

Im Übrigen: Mipmapping "ausschalten" zur Laufzeit kann man effektiv, indem man maximalen und Base Mipmap-level auf den Wert 0 setzt, dann verwendet er nur mehr die Base Mipmap. Ist ein glTexParameter() Aufruf.

Chuck
01-06-2004, 17:44
hmm naja stimmt n vertex array ummodeln in immediate mode ist nicht soooo schlimm... trotzdem is es unangenehm :) (vor allem, wenn zu jedem vertex noch beliebig viele texturkoordinaten und noch 2 generische vertexattribute übergeben werden... dass das ganze in immediate mode noch spielbar sein wird bezweifle ich jetzt schon *g*)

thewulf
02-06-2004, 12:36
Bei uns wird diese Sache auch auf einigen Aufwand hinauslaufen. Noch ein paar Renderpfade mehr...

Display Lists kommen bei uns überhaupt nicht vor, müssen wir die jetzt extra irgendwo einbauen?

Uebungsleitung
03-06-2004, 18:06
Wenn man schon vertex arrays hat, ist immediate Mode trivial - die genauen Befehle um die Vertex-Array Befehle zu emulieren stehen sogar in der Spec (so sind vertex-Arrays ja definiert).

Display Lists für statische Objekte sind ja eigentlich auch trivial...

Michael Wimmer

MarianSchedenig
18-06-2004, 13:56
Ich denke, das Hauptproblem ist, eine halbwegs (soweit es die knappe Zeit halt erlaubt ;)) sauber programmierte Engine so anzupassen, daß die verschiedenen Ressourcen auf Knopfdruck zur Laufzeit angelegt/freigegeben/neu berechnet werden. Zumindest ist das bei uns das Problem. Die Mipmapping-Tasten gehen schon, Display Lists auch, aber irgendwas crasht noch beim Neuanlegen der VBOs.

Dazu gleich auch zwei Fragen:

1) Verstehe ich das richtig, daß man zwischen folgenden Modi umschalten können muß: Immediate Mode / Vertex Arrays ohne VBOs / Vertex Arrays mit VBOs? Letzteres ist nämlich bei uns noch gar nicht implementiert.

2) View Frustum culling....wenn das deaktiviert ist, sollen wir einfach beinhart die gesamte Welt zeichnen?

grimreaper
18-06-2004, 14:07
also wenn die engine sauber programmiert ist, ists eigentlich minimalst-arbeit immediate mode gegen was anderes zu tauschen, nur wenns unsauber ist, muß man viel rumhacken.

ich denke vbo's muß man nicht extra implementieren, wenn man keine hat,.. hab ich auch nicht.

zum viewfrustum-culling,.. ich schlate da das culling von objekten ein und aus,... wenn sichs ausgeht werd ich auch noch das map-culling dazu ein und ausschalten.

bin mal gespannt wieviel ich dann im endeffekt für die abgabe fertig hab ;)

MarianSchedenig
18-06-2004, 14:26
also wenn die engine sauber programmiert ist, ists eigentlich minimalst-arbeit immediate mode gegen was anderes zu tauschen, nur wenns unsauber ist, muß man viel rumhacken.

Naja, jedes Model braucht Flags, die sagen, ob es Vertex Arrays verwenden soll, ob es VBOs verwenden soll... Dann braucht die Engine ein Flag, das die maximal "erlaubte" Stufe festsetzt, und dann muß ich für alle Models diese Dinge neu generieren, wenn ich die Flags in der Engine ändere.

ich denke vbo's muß man nicht extra implementieren, wenn man keine hat,.. hab ich auch nicht.

Sind bei uns implementiert. Bringen bisher keinen Speedup, genausowenig wie Display Lists. Wahrscheinlich müssen wir erst mehrere Models zu Gruppen zusammenfassen, damit die Arrays/Lists nicht so klein ausfallen. Aber dazu brauchen wir erst einen Quadtree mit Bounding Boxes.

Frage ist nur: Muß man, wenn man VBOs hat, zwischen Arrays mit und Arrays ohne VBOs umschalten können, oder reicht der Switch zwischen Immediate Mode und Arrays?

zum viewfrustum-culling,.. ich schlate da das culling von objekten ein und aus,... wenn sichs ausgeht werd ich auch noch das map-culling dazu ein und ausschalten.

Gibt's bei uns (Skydoo - Rennstrecke über den Wolken) halt nicht. Ich kann entweder die ganze Strecke zeichnen oder nur den sichtbaren Bereich mit Frustum Culling aus dem Quadtree lesen.

bin mal gespannt wieviel ich dann im endeffekt für die abgabe fertig hab ;)

Kommt mir bekannt vor. :)

grimreaper
18-06-2004, 14:38
ok,.. das mit den flags ist was anderes... wie gesagt ich hab nur immediate und vertex arrays,.. und da brauch ich dem renderer nur sagen, ob er das komplette array rüberschicken soll, oder einfach ausm array jeden punkt rausholen und die einzeln senden,.. (soll nicht heißen meine engine ist gut,.. soll nur heißen, so funktionierts jetzt, nachdem ich das umgebaut hab, und immediate und vertexarrays zu unterstützen :D )

hmm,.. ich glaub nicht daß es notwendig ist, jede kombination von immediate, vert-array, vbo,... möglich zu machen,.. ich glaub es geht einfach hauptsächlich um den unterschied zwischen immediate und arrays,... zumindest interpretier ich die angabe so hehe

Gibt's bei uns (Skydoo - Rennstrecke über den Wolken) halt nicht. Ich kann entweder die ganze Strecke zeichnen oder nur den sichtbaren Bereich mit Frustum Culling aus dem Quadtree lesen.hmm,.. ja aber du kannst die racer,.. (weiß nicht mehr wie ihr die teile genannt habt ;] ) gegen das frustum cullen,.. BB werden die ja haben schätz ich mal

bin mal gespannt wieviel ich dann im endeffekt für die abgabe fertig hab http://hades.gothic.at/iforum/images/smilies/wink.gif
Kommt mir bekannt vor. http://hades.gothic.at/iforum/images/smilies/smile.gifich denke da sind wir alle ziemliche leidensgenossen ;]
aber ich hab schon mit einigen gesprochen die cg23 früher gemacht haben,.. und es scheint normal zu sein, abstriche zu machen in bezug was geplant war und was fertig ist :coolsmile (bei mir fehlt halt leider content :( ,.. nachdem ichs allein mach, hab ich keine zeit auch noch rennstrecken zu mappen,.. aber das spielprinzip wird klar, und jeder der will kann dann ja nach gutdünken rennstrecken dazubaun hehehe, ....die models hab ich eh geklaut ;) )

Uebungsleitung
18-06-2004, 18:55
Im Prinzip war schon gedacht, vertex arrays mit und ohne VBO zu testen, allerdings sind wir da nicht so streng.

Also wenn die Entscheidung jetzt ist, VBOs zu implementieren oder noch am Gameplay/Content herumzufeilen, dann macht bitte letzteres!

Michael Wimmer