Nochmal zu const speed
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der Ram ist wie die Festplatte, er löscht die Daten aber wieder. Also ist das schon wichtig. Wenn ich nur 512 Arbeitsspeicher habe und 500 wird genutzt, dann ist das schon heftig.
Aber das ist jetzt volkommen egal. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Em,
vieleicht solltest du mal MouseHit benutzen und nicht 1 Mio. Cubes erstellen ![]() Oder zähle die mal in einer Variable und zeige sie dir im Fenster an . If MouseDown(1) Then EndIf |
||
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
DW hat Folgendes geschrieben: Der Ram ist wie die Festplatte, er löscht die Daten aber wieder.
Nicht ganz mit dem Löschen: Erst beim System-Shutdown wird der Speicher geleert, vorher wird der Speicher noch für einen eventuellen Neustart des Programms weiterbelegt. Jedenfalls teilweise, glaube ich ![]() |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
So jetz mal anders : Wenn du ein Cube erstellst, ist der nicht im RAM (glaube ich jedenfalls) , das ist total egal, was leistung zockt, sind die vielen Surfaces!!
Cube Mesh Pro Trianlge 3Vertices Pro seite 2Triangles Triangles -> 2TrisProSeite * 6WürfelSeiten = 12Tris Vertices -> 3Vertices*2Triangles*6WürfelSeiten = 36Vertices Surfaces = 01Surface 12Tris * 100 Cubes = 1200 Tris! 36Vertics * 100Cubes = 3600Tris UND 100 Surfaces!! [Edit] bei meiner MEthode 1Surface, 1200Tris, 2400Vertices! JEdes Surface muss einzeln an de Grafikkarte gesendet wrden-> Rechenverlust. Ich sende 1 du 100 - dadurch der RIESEN unterschied. Und der Code dort, die Schleife, DAS ist FrameUnabhängiges Programmieren. [EDIT] So und nun mal von mir was :: Code: [AUSKLAPPEN] Graphics3D 1024,768,32,1 SetBuffer BackBuffer () Global FPS_MAX = 60,A Global CubeMesh,CubeSurf cam = CreateCamera () PositionEntity cam,0,0,-10 FramePeriod = 1000/FPS_MAX FrameTime = MilliSecs() - FramePeriod CubeMesh = CreateMesh() CubeSurf = CreateSurface (CubeMesh) While Not KeyHit(1) Cls Repeat FrameEllapsed = MilliSecs() - FrameTime Until FrameEllapsed FrameTicks = FrameEllapsed/FramePeriod FrameTween# = Float(FrameEllapsed Mod FramePeriod) / Float(FramePeriod) For FrameLimit = 1 To FrameTicks If FrameLimit = FrameTicks Then CaptureWorld() FrameTime = FrameTime + FramePeriod Update() Next RenderWorld FrameTween Text 0,0,A Flip v_sync Wend Function UpDate() If MouseDown(1) cub = FFE_CreateCube(Rand(-70,70),Rand(-70,70),Rand(-70,70)) A = A + 1 EndIf End Function Function FFE_CreateCube(X,Y,Z) ;FRONT v0 = AddVertex (CubeSurf,X-1,Y+1,Z-1,0,0) v1 = AddVertex (CubeSurf,X+1,Y+1,Z-1,1,0) v2 = AddVertex (CubeSurf,X-1,Y-1,Z-1,0,1) v3 = AddVertex (CubeSurf,X+1,Y-1,Z-1,1,1) AddTriangle CubeSurf,v0,v1,v2 AddTriangle CubeSurf,v1,v3,v2 ;BACK v0 = AddVertex (CubeSurf,X-1,Y+1,Z+1,0,0) v1 = AddVertex (CubeSurf,X+1,Y+1,Z+1,1,0) v2 = AddVertex (CubeSurf,X-1,Y-1,Z+1,0,1) v3 = AddVertex (CubeSurf,X+1,Y-1,Z+1,1,1) AddTriangle CubeSurf,v0,v2,v1 AddTriangle CubeSurf,v1,v2,v3 ;LEFT v0 = AddVertex (CubeSurf,X-1,Y+1,Z-1,0,0) v1 = AddVertex (CubeSurf,X-1,Y+1,Z+1,1,0) v2 = AddVertex (CubeSurf,X-1,Y-1,Z-1,0,1) v3 = AddVertex (CubeSurf,X-1,Y-1,Z+1,1,1) AddTriangle CubeSurf,v0,v2,v1 AddTriangle CubeSurf,v1,v2,v3 ;LEFT v0 = AddVertex (CubeSurf,X+1,Y+1,Z-1,0,0) v1 = AddVertex (CubeSurf,X+1,Y+1,Z+1,1,0) v2 = AddVertex (CubeSurf,X+1,Y-1,Z-1,0,1) v3 = AddVertex (CubeSurf,X+1,Y-1,Z+1,1,1) AddTriangle CubeSurf,v0,v1,v2 AddTriangle CubeSurf,v1,v3,v2 ;TOP v0 = AddVertex (CubeSurf,X-1,Y+1,Z+1,0,0) v1 = AddVertex (CubeSurf,X+1,Y+1,Z+1,1,0) v2 = AddVertex (CubeSurf,X-1,Y+1,Z-1,0,1) v3 = AddVertex (CubeSurf,X+1,Y+1,Z-1,1,1) AddTriangle CubeSurf,v0,v1,v2 AddTriangle CubeSurf,v1,v3,v2 ;BOTTOM v0 = AddVertex (CubeSurf,X-1,Y-1,Z+1,0,0) v1 = AddVertex (CubeSurf,X+1,Y-1,Z+1,1,0) v2 = AddVertex (CubeSurf,X-1,Y-1,Z-1,0,1) v3 = AddVertex (CubeSurf,X+1,Y-1,Z-1,1,1) AddTriangle CubeSurf,v0,v2,v1 AddTriangle CubeSurf,v1,v2,v3 End Function Bei 2007 Cubes 380 FPS! So, und nu sag nach einmal Blitz wär langsam!! Muss zugeben, beim MausHalten, da isses etwas langsamer, aber das ist ned schlimm, wenn man loslässt hat man bei 100 Cubes ca 800FPS so! Wenn nicht, ist dein Rechner wohl eher zu lahm (nich bös gemeint) |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
DW, Du beschwerst Dich die ganze Zeit darüber dass Dein Auto einen steilen Berg vollbepackt nicht genausoschnell hochfahren kann wie entlang einer graden Straße wenn es unbeladen ist.
Wenn Du entities hidest, surfaces reduzierst, polys reduzierst dann ist die Beladung kleiner und die Strasse flacher. Wenn bei dem Game dann doch mal vieles auf einen Haufen passiert und deswegen die FPS in den Keller gehen, hast Du dank Frameunabhängiger Programmierung immer noch die selbe Bewegungsweite - ein Ruckeln ist dann jedoch unvermeidbar. Was Du erreichen willst ist eine konstante FPS egal was dargestellt wird. Das ist technisch nicht möglich, da irgendwann eben der Datenpayload so hoch ist dass jede GPU / CPU überlastet ist. Was Du also tun kannst ist der CPU möglichst viel Arbeit zu ersparen indem Du die zu bearbeitende Datenmenge so klein als möglich hälst. Noch ein letztes Mal: Belese Dich zu Themen wie Culling, Oktree, Single Surface. Mach Deine Meshes so polygonarm als möglich. Denk logisch mit und trickse wo es geht. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich habe 3.2 GH Intel Pentium IIII. GTA San Andreas läuft seh gut.
AMD soll besser sein, ich weiß. JunkProggers Beispiel ist gut. Danke. Sowas meinte ich. Alles wird auf dem Ram Speicher geladen. Alles was du im Bildschirm siehst und die Variabeln. Kannst du ja mal prüfen. Eine Frage noch: Was ist der Unterschied zwischen Junkproggers und Das von 5K41? Ist das nicht eigentlich fast das selbe? @Markus2: Das ist ein ziemlich blödes Kommentar. Ich habe das gemacht, um schneller mehr meshes zu erstellen und es so schneller zu prüfen. Ist doch klar. ![]() ![]() ![]() Zitat: Bei 2007 Cubes 380 FPS!
So, und nu sag nach einmal Blitz wär langsam!! Blitz ist langsam |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zusätzlich von elementarer Bedeutung ist, wieviel Grafikdaten auf dem Schirm sich verändern, denn alles was sich verändert muss von SystemRAM erst an die Grafikkarte gesandt werden, was auch zu Stocken führen kann (-> bei zuvielen Surfaces geschieht etwas ähnliches, weil dort zu viel verschiedenes gesandt werden muss weswegen anderes nicht mehr rechtzeitig gesandt werden kann)
Und du darfst etwas nicht vergessen: B3D ist eine 3D Engine die für allgemein nutzung da ist. Die Engine von GTA ist genau für diesen Zweck gemacht. GTA ist das einzige was die kann, die ist sonst für nichts zu gebrauchen. wenn du in B3D mittels eigenen Meshes und surfaces machst, wirst du ähnlich viel dynamisches hinbekommen. (für soviele dynamische Daten würde ich allerdings DarkBasic Pro empfehlen, da es dort einfacher zu machen ist dank voller Unterstützung der DirectX flexible vertex format) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man durchs Forum Tödliche Blicke schicken könnte, wärst du jetz 9999999999% TOT
Args! Wenn mans wie ich macht, dann ist Blitz Sauschnell! Hoffe du hast das mal getested ?! |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das war nur Spaß.
Ich habe es getestet. Steht da oben doch. Aber meine Frage ist nicht beantwortet: Wo ist der Unterschied zwischen JunkProggers und 5k41's Beispiel? Ist doch das selbe, oder? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz ist - schlampig programmiert- langsam, stimmt. Wer es jedoch ordentlich nutzt erhält eine flotte und zuverlässige Sprache. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Hellfront |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Also ich habe 3.2 GH Intel Pentium IIII. GTA San Andreas läuft seh gut.
AMD soll besser sein, ich weiß. Schön für dich! Und wsa oll das jetzt? Es geht nicht darum wie gut dein PC ist sondern wie gut deine Progs schreibst. Und immer noch: Wenn dein RAM noch so voll ist er wird nciht langsamer! Und gerade an deinem ach so tollen GTA SA: Das zeigt doch auch, dass die Arbeit reinstekcen um es auf möglichst vielen PCs spielbar zu machen. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du Flip 0 benutzt und ca. 450 Frames in der Sekunde hast
bei 1 Min. hättest du 27000 Würfel !? Mich wunderte es nur das du dir die Anzahl nicht anzeigen läßt , jedenfalls sah es so aus ![]() Und ohne Sync sollten es weit mehr als 450 Frames sein ... war jetzt nur so geschätzt . |
||
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wow Hacker! Kam das jetzt angeberisch vor? GTA San Andreas war nur ein Beispiel. Warum werde ich gleich angemacht, nur weil ich mal ein Beispiel gebe?
Und mit meinem Computer sagt ich nur, weil JunkProgger dachte ich hätte einen lahmen. Kann mal jemand meine Frage bitte beantworten? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Keep cool alle oder ich mache dicht. Netiquette gilt im ganzen Board und das für alle! | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
DW, benütz doch einfach ne andere Programmiersprache, wenn Dir Blitz zu langsam ist. | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie programmiere ich Mafia 2? | ||
between angels and insects |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kleines Beispiel, DW:
Du hast da deine tollen 100 Würfel. Das Problem von Blitz ist, das diese eben jeweils als einzelnes Entity gespeichert und berechnet werden. Wenn du diese 100 Würfel in ein einziges Entity packen würdest, könnten sie viel schneller berechnet werden. So funktionieren auch die sogenannten single-surface Engines und genau das macht auch JunkProgger in seinem Beispiel. Eine weitere Optimierungsmöglichkeit wäre, einfach die Seiten der Würfel, welche der Spieler sowieso gerade nicht sehen kann (das sind mindestens 3 Stück pro Würfel) heraus zu nehmen. Dadurch würde die Surfaceanzahl halbiert, und es würde nochmal wieder schneller laufen. Das wäre dann Polygonreduktion. Wie du siehst kann man jede Menge herausholen. Wer das nicht macht und sich dann beschwert dass Blitz zu langsam wäre, der gehört geschlagen. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Ray-Tracer |
![]() Antworten mit Zitat ![]() |
---|---|---|
@DW schau doch mal was Markus2 geschrieben hat
27000 Würfel ( a 12 Trisses ) = 324 000 Trisses -da macht wohl jede realtimeengine /graka/compi schlapp probiere mal Trisrendered() -dann schau mal auf [url]www.gamasutra.com/ [/url] -irgendwo bei den Artikeln ist, glaube ich ein Artikel von den San Andreas -Programmierern ( irgendwas mit Billboard - Tricks ) -bin zurzeit auf der Arbeit deswegen kann ich jetzt kein Link finden (gamasutra gesperrt ) |
||
__wunschklang__ |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das mit den Vertexes weiß ich ja. Aber ich meinte mit meiner Frage:
5K41's Beispiel ist anders als Junk Proggers(Frameunabhängig). Ist das von Junk Progger die selbe Methode oder ist es besser? |
||
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: 27000 Würfel ( a 12 Trisses ) = 324 000 Trisses
-da macht wohl jede realtimeengine /graka/compi schlapp 324k Tris sind heute nicht mehr viel. Das Problem von Blitz ist wie Dreamora schon sagt die unflexible struktur. Würde man einfach VertexBuffer und Shader definieren können, dann könntest du mit Blitz auch 500k Tris ohne Stress raushauen (mit einem VertexBuffer). Singlesurface, wenn ich das schon höre ... Warum orientiert sich Blitz nur daran, ich bin froh das man in anderen Sprache Scenemanager nutzen kann und so selbst bestimmt wonach sortiert wird ![]() Jea Bmax endlich selber ne Engine einhacken ^_^ |
||
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group