Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

21.08.2012, 20:00

Instancing und Frustum Culling

Hallo.

Gibt es eine möglichkeit trotz Instancing, Frustum Culling anzuwenden?

oder irgendwelche anderen Optimierungen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

21.08.2012, 20:01

Wo genau liegt das Problem? Einfach den Buffer mit den Instanzdaten eben entsprechend befüllen...

3

21.08.2012, 20:04

Hmm bislang befülle ich den Buffer beim Initialisieren.

Geht nicht ebenso viel Leistung verloren wenn ich das in jedem Frame "befülle"?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

21.08.2012, 20:14

Wieso genau verwendest du nochmal Instancing? ;)

5

21.08.2012, 20:18

um zb Bäume oder Grass darzustellen. Und davon ne Menge.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

21.08.2012, 20:22

Ich glaube eher, dass dot darauf hinaus will, dass wenn Du eh alles nur einmal am Anfang initialisierst, Du auch hättest ein statisches VBO nehmen können statt Instancing. Was ehrlich gesagt vermutlich sogar besser gewesen wäre.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

21.08.2012, 20:25

Natürlich spart man mit Instancing Speicher und Bandbreite, aber ein weiterer wesentlicher Vorteil ist ja gerade eben auch, dass man einen großen Haufen Objekte dynamisch rendern kann, ohne dass sämtliche Daten in jedem Frame über den Bus müssen. Gerade bei sowas wie Gras will man ja wohl kaum in jedem Frame tatsächlich jedes einzelne Grasbüschel in der Szene rendern. Dank Instancing kannst du nun eben einfach nur deine Positionsdaten dynamisch befüllen, der Rest ändert sich ja nicht...

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

8

21.08.2012, 20:30

Ich würde aber auch nicht jedes Grasbüschel in jedem Frame einzeln gegen das Kamerafrustum prüfen wollen.

Meine Empfehlung:

Unterteile Deine Landschaft in passend große Teilgebiete, so dass in jedem Teilgebiet von einem einzelnen Mesh ein paar hundert oder tausend Instanzen stehen. Erstelle pro Teilgebiet einen VertexBuffer mit allen Instanzen, die zu instanziierenden Meshes hast Du hoffentlich separat erstellt. Dann kannst Du pro Teilgebiet eine Bounding Box (oder was auch immer Du benutzt) erstellen und gegen die cullen.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

21.08.2012, 21:40

Im Falle von Gras könnte man allerdings überhaupt die Grasbüschel voll dynamisch für das aktuelle Frustum generieren anstatt das ganze Gras für die komplette Szene vorzuberechnen...

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

10

22.08.2012, 16:32

Ist es heute schon möglich, effizient (bzw in echtzeit) über große Flächen Gras zu rendern? Die meißten Spiele nutzen einfach sprites, auf denen ein ganzes grasbüschel steht... Sieht total kacke aus -.- und sie rendern auch nur gras bis zu einem gewissen Abstand (=wenige hundert meter). Ich habe nie Instancing ausprobiert, wie mächtig ist es?

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

Werbeanzeige