Performance-Frage
Übersicht

ChristianKBetreff: Performance-Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab eine Map, die aus einem relativ großen Mesh besteht. Jetzt würde ich gerne wissen, ob Blitz3D alle Dreiecke des Meshes rendert oder nur die, die im sichtbaren Bereich liegen. Könnt ihr mir da weiterhelfen? | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn nur ein Vertex eines Meshes innerhalb des Sichbereiches der Kamera liegt, wird das ganze Mesh 'gerendert'. Bei einigen Grafikkarten, wird dabei aber zuvor eine Überprüfung gemacht und eventuelle Triangles des jeweiligen Frame deaktiviert. Kommt also auch auf die Grafikkarte an.
- GeForce hat es meines Wissens nicht (vielleicht aber die neueren Modelle) - Meine schon 3 Jahre alte ATI hat so eine Funktion, die zudem auch verdeckte Triangles (Raster) abschaltet und nicht mitrendert. - Was die Anzahl von Triangles angeht, ist meist eine ATI vom Vorteil. - Was die Texturierung angeht, ist meist eine GeForce im Vorteil. Du kannst dich also nie darauf verlassen, wie schnell ein Programm sein wird. Daher empfehle ich dir ALLE möglichkeiten auszunutzen, wo man Performence raus holen kann. Lese dir mal dazu folgenden Threat durch, wie ich Probleme mit eines meiner Codes im Codearchiv hatte und wie enorm die Unterschiede unter Grafikkarten sein können. https://www.blitzforum.de/foru...hp?t=21867 Besonders interessant: Bei einigen Leuten war der Code so langsam, obwohl sie ein mehr als 200 % leistungsfähigeres System hatten als meines es ist. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist nicht das das Mesh gerendert wird. Die meisten Karten der letzten Jahre sind schlau genug nicht sichbares auch nicht zu rendern.
Problem ist jedoch das "ist im Sichtbereich" -> "wird zur Grafikkarte gesandt" heisst. Und das ist das was eigentlich das wirkliche Problem darstellt speziell auf low end Karten, onboard und ähnlichen Karten die keine Bandbreite haben. Am sinnvollsten ist es eigentlich die Welt in Bereiche (untermeshes) zu unterteilen, welche +- 1.5 Mal die Länge deiner Kamerasichtweite haben. Es gibt dazu im englischen Code Archiv von Rottbott (glaub war von ihm) ein Chunk Mesh Codeschnippsel der ein statisches Mesh selbst zersäbelt auf basis deiner Eingaben. Würde den als Grundlage nutzen und entsprechend deiner Bedürfnisse erweitern wo nötig |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für eure Hilfe. Wenn ich das Mesh unterteile, sollte die Performance ok sein. ![]() Und da hab ich gleich noch ne Frage: Werden alle Meshes 2mal gerendert, wenn ich einen Mirror erstelle, oder wird das irgendwie anders gemacht? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mirror spiegelt effektiv die geometrische Welt.
Wenn du das umgehen willst musst du mit Stencil Buffern Spiegel implementieren. Ich könnte schwären, das hat schon jemand gemacht und entweder hier oder im englischen online gestellt ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Richtig! Tom hat das mit seiner dx7test.dll gemacht ( http://www.tomspeed.com/stencil_mirror ).
Ich werd zwar nie verstehen, wie das funktioniert, aber das sieht gut aus. ![]() Danke für den Tipp. |
||
![]() |
Arrangemonk |
![]() Antworten mit Zitat ![]() |
---|---|---|
suchts mal nach frustum culling im google
da gibts funktionen oder erklärungen für |
||
ingeneur |
porcus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn die Spiegel nicht unendlich groß sein müssen, versuchs mal
mit Sphere- oder Cubemapping. |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich das mit dem Frustum Culling richtig verstanden habe, wendet die Funktion EntityInView( ) genau dieses an, oder? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
prinzipiell ja. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Egal, ob ich den Blitz3D-Mirror, CubeMapping oder StencilMirror benutze, ich muss die gesamte Szene mehrmals rendern. Gibt es auch eine Technik bei der ein RenderWorld ausreicht? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nö, wie sollte es auch?
Erst muss die Welt da sein, damit sie gespiegelt werden kann. Das ist selbst bei Shadern so. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group