Grafik Engine
Übersicht

Gehe zu Seite Zurück 1, 2, 3 Weiter
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, kein render. Reicht hin. Ich muss die Teile dann nicht extra nochmal zeigen(Für statische meshes).
Und mit dynamischen, als z.B animierbare Character? Würde das speed klauen, wenn sie alpha 0 hätten und animieren würden? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja
Was deaktiviert werden soll, muss mit HideEntity deaktiviert werden ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Phalastos |
![]() Antworten mit Zitat ![]() |
---|---|---|
Boahh Junge, hattest wohl heute den 10. Geburtstag und meinst hier alle abnerven zu können?
Warum nutzt Du Engineoberchecker nicht einfach die A6 vom 3DGS? Mit Deinen Fähigkeiten reicht doch DX7 nicht aus, da sollte DX9 Pflicht sein. |
||
Forbiddenmagic - Warfare of Forgotten Power |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was bist du denn für einer? Ich frage wenigstens freundlich.
A6 vom 3DGS? Kenn ich nicht. Wo soll man das denn bekommen? Und wie kann B3D DirectX9 ansprechen?? Eine Frage hätte ich da noch: Sagen wir, ich würde eine kleine Partikel Engine programmieren. Wie genau müsste ich das machen? So, dass die Partikel nur für z.B bestimmte Waffen sind oder allgemein für alles nutzbar sind? Wie sollte man sowas aufbauen? |
||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So wie es dir am besten erscheint ![]() Wenn die Partikel universell einsetzbar sind, bedeutet das auch immer das Funktionen vorhanden sind die nicht genutzt werden(s. PartikelCandy(nichts gegen PC ![]() Ich bin z.B. gerade dabei einen Asteroids-Klon zu schreiben, und habe für alle "Partikel"-Arten(Ateroiden, Schüsse, Explosionen, etc.) je eine eigene Routine, einen eigenen Type und ein eigenes Surface(insgesamt hat mein Spiel 10Surfaces oder so...). Zu deinem Problem mit den Würfeln: "Copyentity" Der Effekt ist ähnlich wie von Singlesurfacemethoden, nur das man eben nicht ständig alle Polys neu erstellen muss(in meinem Spiel läufts bei 500Entitys immer noch mit 300FPS, weil ich Copyentity verwende, und deshalb nur 10Surfaces an die Graka gesendet werden müssen, und nicht 500). Ich hoffe ich konnte helfen ![]() MfG |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok. Ich versuchs.
Aber ich will eine richtige Engine schreiben. Bei meinen bisherigen Spielen(Siehe oben) habe ich für jedes immer ein type verwendet. Aber das ist keine Engine. Es soll ja Funktionen zur Verfügung stellen. Also, wie sollte man sowas machen. Eher immer Partikel für jede Waffe oder allgemein für alles. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab Dich nicht angemotzt, ich habe nur einen Fakt genannt.Das Problem ist - schon seit Wochen und über mehrere Threads verteilt - dass Du nicht verstehst / akzeptierst dass Du einen falschen Grundweg eingeschlagen hast.
15000 polys für ein Modell ist gnadenlos zuviel. Und 7000 Entities zu Rendern zwingt auch jeden Rechner in die Knie. Was Du tun musst (und ich wiederhole mich heute und hier zum letzten mal, da mir deine frech-fordernde Art langsam aber sicher gehörig auf den Zeiger geht)) ist Deine Modelle zu optimieren, möglichst viele Surfaces einzusparen und auch ansonsten Überlegungen in Richtung Sichtoptimierung anzustellen (Octree, Levelgestaltung, etc.) All dies wurde Dir schon mehrfach genannt und Du wischst es einfach weg weil es Dir nicht in Dein Gedankenkonzept passt. Es ist halt immer leichter die Schuld den Umständen zu geben als an sich selbst zu arbeiten. Nach dem Problemcode gefragt gibst Du erst mal zu keinen Code zu haben (was ja schon witzig für sich ist: Motzen ohne es richtig probiert zu haben) und postest dann ein ohne Überlegung zusammengeschustertes Beispiel hin, und das nachdem Dir dutzende Male Tipps zum verbessern gegeben wurden. Mein finaler Tipp an Dich: Arbeite an Dir selbst. Lass das Programmieren sein und werd erst mal selbst etwas reifer. Lerne mit Kritik umzugehen und Vorschläge anderer zu betrachten ohne sie als Angriff zu werten. Dann analysiere wo der Fehler wirklich liegt. Und liess Dir gottverdammtnochmal die Posts anderer vernünftig durch. Es scheint nämlich als pralle jeder Versuch Dir zu helfen einfach an Dir ab. Mir persönlich wird das hier zu viel. Ich investiere meine Zeit in Zukunft in Leute die bereit sind sich helfen zu lassen und die aktiv mitarbeiten. |
||
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 ![]() |
|
---|---|---|
Edit: Weiß zwar nicht wer die flames gelöscht hat, aber Danke!
Also nochmal zu meinem Beispiel: http://ultimative.ul.ohost.de/Forum/files/text.exe Was haltet ihr davon? Könnte man das noch sauberer machen? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das war ich, bin nun zuhause.
Also: - Deine Häuser haben ~5000 tris in 3 Surfaces pro Stück. Das ist viel zu viel. In Deinem Beispiel sind das dann 192 Surfaces und 320000 tris. Wenn Du die Gebäudemodelle vereinfachst (und mal im ernst: es sind grosse Boxen, mehr nicht) kommst du auf 12 Tris pro Haus, bei einer Surface. Ne schöne Textur drauf und Du hast dieselben Gebäude. Macht dann für dieselbe Szene 768 Tris bei 64 Surfaces. Ein klitzekleiner Unterschied, nicht wahr ? Dann sind die Häuser zwar initial mal nicht begehbar, aber das liesse sich rasch beheben (Innenraum "laden" wenn sich der Player der Tür eines Gebäudes nähert.). Bislang wurde also noch nix am Code geändert und dennoch würdest du schon nur noch einen Bruchteil an Grakaleistung benötigen. Wenn Du nun noch auf Singlesurface umsteigst (d.h. nicht mehr alle Häuser einzeln erstellst sondern sie zu einem Mesh zusammenfasst) wird sich die Performance drastisch erhöhen. Eine zweite Surface könnte dann Innenräume abdecken. Weiterer Gewinn an Leistung ist durch eine Optimierung der Levelarchitektur drin (unterteile Deine Karte in Quader. Das Quader in dem der Player ist wird normal dargestellt. Die umliegenden werden mit vereinfachten Strukturen (LOD) gezeichnet, die darum liegenden sind komplett gehidet oder werden sogar noch nicht geladen. Wenn der Player sich einer Grenze zu einem anderen Quader nähert wird dieser vorsorglich eingeladen. Und damit kratze ich nur an der Oberfläche des Machbaren. In dem Umfang in dem Du die Möglichkeiten nutzt steigt eben auch der Umfang. Vieles lässt sich jedoch durch nachdenken erreichen. Was sieht der Spieler? Welche Möglichkeiten gibt es zur Kameraführung ? etc. etc. Schon ein wenig Vorplanung lässt hier viele Probleme verschwinden. Nochmal: vereinfache deine Modelle. Hier liegt massig Potential. Mit Texturen lässt sich vieles erreichen was nach wesentlich mehr Tris aussieht. |
||
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 ![]() |
|
---|---|---|
Ok. Also, wenn Sie SingleSurface meinen, dann könnte ich das genauso gut gleich mit einem WorldEditor machen. Dann hätte ich die ganze Stadt als ein entity.
Das wäre dann die beste Möglichkeit, entities zu reduzieren. Edit: Ups. Da fällt mir wieder ein. Ich sollte das ja mit entityautofade machen, damit nicht alles rendert. Aber das ist ja ein ganzes entity. Was nun? Die Häuser haben außerdem transparente Fenster usw. Wenn ich nochmal den ganzen Kram laden müsste, hätten ich wieder das Problem mit den vielen entities. Also ich habe vor: Die Stadt mit den statischen meshes mit einem Worldeditor zu machen und die dynamischen muss ich dann im Spiel selber integrieren. Wäre das so ok? Und von mir aus lass ich den Prunk an den statischen Gebäuden weg. Aber nochmal zu einer Engine, ich bin gerade dabei eine zu schreiben. Bisher: Code: [AUSKLAPPEN] ;Virtual Engine 2006 ; ;-------------------------------------------- ;Mirror ;-------------------------------------------- Function vgCreateMirrorTexture(size,mesh) mirror_texture=CreateTexture(size,size,1+128+256) EntityTexture mesh,mirror_texture Return mirror_texture End Function Function vgCreateMirrorView() mirror_camera=CreateCamera() HideEntity mirror_camera Return mirror_camera End Function Function vgUpdateMirror(mirrortex,mirrorview,mesh) tex_size=TextureWidth(mirrortex) ShowEntity mirrorview HideEntity mesh PositionEntity mirrorview,EntityX#(mesh),EntityY#(mesh),EntityZ#(mesh) CameraViewport mirrorview,0,0,tex_size,tex_size tex_sz=tex_size CameraClsMode mirrorview,False,True SetCubeFace mirrortex,0 RotateEntity mirrorview,0,90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(mirrortex) SetCubeFace mirrortex,1 RotateEntity mirrorview,0,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(mirrortex) SetCubeFace mirrortex,2 RotateEntity mirrorview,0,-90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(mirrortex) SetCubeFace mirrortex,3 RotateEntity mirrorview,0,180,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(mirrortex) SetCubeFace mirrortex,4 RotateEntity mirrorview,-90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(mirrortex) SetCubeFace mirrortex,5 RotateEntity mirrorview,90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(mirrortex) HideEntity mirrorview ShowEntity mesh End Function Ist das eine Engine? Eigentlich schon, oder? Es stellt mir neue Funktionen zur Verfügung welche mir das Programmieren erleichtern. |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sowas nennt man Lib, da es dir nur eine sammlung von Funktionen zur verfügung stellt.
Engine müsstest du wohl oder übel mit C++ oder so machen |
||
[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 ![]() |
|
---|---|---|
Nicht ganz:
http://www.blitzbasic.com/tool...hp?tool=50 Das ist auch eine Engine. Es muss nicht in C++ geschrieben sein. KEnnst du UI? Ist auch eine GUI Engine für Blitz3D, natürlich geschrieben in Blitz3D. UI z.B ist eine Sammlung von Funktionen. Engines sind nichts weiter als "motors", die gute Funktionen zur VErfügung stellen. Oder ist das etwas anders?? Eigentlich nicht. Und meins müsste dann auch eine kleine sein, denn sie stellte neue leichtere Funktionen zur VErfügung. Oder etwa nicht? |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mh. Weiss nich so genau... es wär eine Engine auf einer Enige rogrammiert ![]() |
||
[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 ![]() |
|
---|---|---|
Jap. So ist es. Es ist aber trotzdem eine Engine, sobald es neue Funktionen zur Verfügung stellt. Bei UI z.B, kann man Windows, Buttons und und und erstellen, all dies sind Funktionen von der der Engine.
P.S: loadmesh("") ist auch nur eine Funktion. Zwar von BB direkt selber, aber Funktion ist Funktion. Ich finde Engines schreiben klasse. So kann man sich vieles erleichtern. siehe mein Beispiel oben. |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kleiner Hinweis: Würde Half-Life 2 alle Polygone eines Meshes rendern würde es auch ruckeln. Selbst mit einfacher B3D-Engine geht das Spiele machen nicht automatisch.
Der Trick besteht darin, Polygone die nicht gerendert werden müssen, weil sie nicht sichtbar sind NICHT zu rendern. Das ist garnicht so einfach und gehört definitiv zu den Profi-Themen. Ich empfehle dir dich mal um BSP-Trees zu kümmern (und die hat außer Vertex anscheinend noch KEINER hier realisieren können) oder ganz einfach aufhören zu meckern. Blitz3D-Spiele rendern nämlich Polys genauso schnell wei HL², wenn nicht sogar schneller, da kein Shader-Spielkram benutzt wird. |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Warum niemand BSP geschrieben hat: Weils für non-Shooter wertlos is ![]() Das UT Format macht da mehr sinn, nur leider ist das nicht offen nutzbar ... Bleibt Quad / OctTree und PVS überlegungen, welche für anfänger eh einfacher umzusetzen sind als pure Mathematik (die die meisten hier leider nicht beherrschen weswegen sie 3D vielleicht auch besser lassen sollte. Matrizen und Vektoren sind Grundhandwerk für 3D) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, mit meinen 14 Jahren kann ich ja wohl nicht gleich einen Half Life Klon machen. Was erwartet ihr von mir?? Mit aligntovector Zeugs kenn ich mich ein bisschen aus, Matrizen hatten wir noch garnicht in der Schule, falls man sowas überhaupt hat.
Achja: An Half Life sitzt bestimmt nicht eine Person alleine. ![]() Warum unbedingt Polys? BEi meinem BEispiel sind das 49 Gebäude, es geht eigentlich. Und wenn ich das zu einem Spiel umsetzen würde, würde ich dieses entityautofade machen und die weiter weg liegenden Häuser würden nicht gerendert werden. Ist doch alles ok. Ich muss gucken. Wir sehen uns dann, wenn weitere Probleme auftreten. Aber nochmal(An die, die meinen, es zu wissen): Ist das da oben eine Engine oder nicht. Darf man sowas engine nennen? Edit: Moment! Was ist mit TheProgrammers Spiel? Ist auch flüssig! Ist das bei seinem Spiel normal, weil da nur einige models sind oder hat der auch "getrickst"? In der showcase antwortet er ja nicht. Achja, noch was zum tollen speed; http://sonas.so.ohost.de Guckt euch die Halo Bilder an, die ich ich wärend des net Spiels gemacht habe. Da wird glaube ich nichts versteckt und es ist sau flüssig und schnell. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Begrifflichkeit (ob engine oder lib) ist doch erstmal egal. Wen interessierts, hauptsache der Code läuft.
Zu GTA, Halo und co: Die Kunst liegt ja darin so zu "tricksen" dass es der User nicht merkt. Diese Spiele kommen nicht umhin alles auszublenden was nicht unbedingt benötigt wird. Dass Du es nicht merkst heisst nur dass der Programmierer gut mit dem Leveldesigner zusammengearbeitet hat und dass beide ihr Handwerk verstanden. Übrigens erstellst Du in deinem Beispiel 64 Gebäude - beide Schleifen gehen von 0 bis 7. |
||
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 |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Naja, mit meinen 14 Jahren kann ich ja wohl nicht gleich einen Half Life Klon machen. Was erwartet ihr von mir?? Mit aligntovector Zeugs kenn ich mich ein bisschen aus, Matrizen hatten wir noch garnicht in der Schule, falls man sowas überhaupt hat.
Ich bin ebenfalls nicht viel älter als 14, und ich habe das geschrieben: https://www.blitzforum.de/foru...hp?t=18970 Alleine. 73 Gebäude, KI´s, ne Menge Sprites (für die Blutlachen etc.) und das schrotgewehr hat sogar 1000 Poly´s; und alles noch mit Toonshading (was ne Menge zieht) und Outlines. Läuft flüssig! Woran liegt´s? Ich hab´ noch nicht mals mit AddMesh() gearbeitet (was ich bald allerdings ändern werde), sondern alles was nicht gebraucht wird versteckt. CameraRange kleingestellt, und damit´s nicht blöd aussieht Nebel reingepackt, die Updates nur dann durchgeführt wenn´s nötig war, etc. So kannst du einiges raushauen, und zur Engine: furbolg hat Folgendes geschrieben: Eine "Engine" (zu Deutsch Motor) heisst das sich ein gewisser Code um bestimmte Sachen alleine kümmert (z.b. SceneGraph ums rendern etc.).
Die meisten Leute hier um Forum nutzten den Begriff Engine weil es sich besser anhört, aber teilweise sind es einfach nur Funktionen. Eine Engine muss mehr können. Nebenbei ist DX / OGL keine Engine sondern eine Pipeline. Engine verwaltet und organisiert Daten für ihren Aufgabenbereich. d.h. eine PhysikEngine wäre nicht mehr als eine Funktion die so aussehen könnte: Code: [AUSKLAPPEN] Function UpdatePhysics(obj) ;--- schwerkraft TranslateEntity obj,0,-1,0 ;--- etc. ... End Function |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ähhh....guuut. Aber das sind nicht unbedingt viele Polygone in deinem Spiel.
Ich will aber was großes machen, was schnelles. Ich finde Speed verdammt wichtig. Wenn der hin ist, dann ist das Spiel auch hin. Apropo speed: Toll. Dann kann ich ja gleich alles statische verstecken, was nicht im View ist. Aber schonmal an Gegner gedacht? Die vielleicht sogar schießen können und diese Kugel vielleicht sogar mit Gebäude kollidieren können sollen? Und was ist jetzt mit einer schnelleren 3D Engine für B3D? Gibts da was? Vielleicht eine, die DirectX 9 oder so verwendet? Achja, zu den Gebäuden, sollte man das mit arrays oder einfach mit types und fields machen? |
||
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group