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

CodingCat

1x Contest-Sieger

  • »CodingCat« ist der Autor dieses Themas

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

1

01.06.2008, 19:42

breezEngine (Update: Bonny Nightmare Game TechDemo)

Hi,

nachdem ich kürzlich meine Website (http://www.alphanew.net/) wiederbelebt bzw. rundum erneuert habe, und diese nun in meinen Augen auch wieder angemessen gefüllt ist, möchte auch ich dieses Forum hier nutzen, um mein Projekt vorzustellen, damit ich meine Updates und Erläuterungen nicht umsonst veröffentliche, weil die Seite niemand kennt. ;-)

Mein aktuelles Projekt fügt sich als Realtime 3D Engine gut in die Reihe der anderen in letzter Zeit veröffentlichten Projekte ein - ja, eine weitere Engine. :roll:
Wie außerdem auf meiner Website zu sehen ist, handelt es sich nicht um meinen ersten Versuch, eine Engine zu schreiben. Ich habe das Projekt abgebrochen und von vorne begonnen. Warum? Zum einen aufgrund von schlechtem Design (wie so oft), zum anderen aufgrund des großen Wandels, was die zugrundeliegende Technik betrifft. Wie alle möchte auch ich es diesmal besser machen, insbesondere was das Design betrifft. Entsprechend habe ich vor, im Laufe der Zeit, wie bereits begonnen, weitere Teile der Engine in ihrer Funktionsweise und in ihrer Gestaltung auf meiner Website oder bei Rückfragen auch hier zu erläutern. :-)

Konzept
Das Grundkonzept ist kurz: so einfach wie möglich - daher der Name. Mein Ziel ist es, mit möglichst wenig Aufwand (Verwaltung) möglichst gute (zeitgemäße) Resultate zu erzielen. Dennoch ist das Design ein wichtiger Aspekt - so einfach wie möglich soll nicht heißen, dass der Quellcode starr einen einzigen festen Ablauf vorgibt - Ziel ist es, mit geringem Verwaltungsaufwand die notwendige Flexibilität zu gewähren, ohne dass eine vollkommen generische Arbeitsweise die sinnfreiste Funktionalität an den unmöglichsten Stellen bietet. Es geht also nicht darum, eine omnipotente Engine aka eierlegende Wollmilchsau zu entwickeln, vielmehr darum, eine Basis für eigene (möglicherweise später auch anderer) Projekte zu schaffen, eine Bibliothek, die das zur Verfügung stellt, was ich brauche.

Angesichts der Tatsache, dass bereits einige gute Engines bereitstehen, vorneweg Ogre3D, welche mir besonders zusagt, war ich mir zunächst unschlüssig, ob ich einen weiteren Versuch wagen sollte. Dennoch ist es vorwiegend die Technik dahinter, die mich interessiert, weshalb ich mich zu einem erneuten Versuch mit erhöhter Achtsamkeit entschieden habe. Dabei ist von vorneherein klar, dass ich wohl kaum eine derartige Größe erreichen werde, allerdings strebe ich auch keine derartige Allgemeingültigkeit aud Austauschbarkeit an, und hoffe somit, trotzdem zu ähnlichen Resultaten kommen zu können.

Technik
Die Engine arbeitet momentan mit DirectX 9, bereits auf DirectX 10 ähnliche Form gebracht, womit ein DirectX 10 Modul folgen könnte. Ein OpenGl Modul ist nicht geplant, eben aus Gründen der Einfachheit, sonst käme ich wohl nie über den Grafik-API-Wrapper hinaus. Einer der wichtigsten Entscheidungen war die Verabschiedung von der Fixed-Function-Pipeline, sowie die Mindestanforderung Shader Model 2.0, da genau hier der Knackpunkt beim letzten Versuch lag - die grundlegend verschiedenen Arten zu rendern brauchten zu grundlegend verschiedene Ausgangsdaten.
Eine weitere wichtige Entscheidung war die Dokumentation mit doxygen-kompatiblen Kommentaren, um die Engine von vorneherein darauf auszulegen, auch einmal anderen dienlich sein zu können.
Zusätzlich verwendete Biblitheken sind TinyXML, PhysX und LUA - Python wird wieder zum Schreiben eines Blenderexporters zum Einsatz kommen.

Screenshots

(Link)

Depth Blur, ermöglicht durch das gerade hinzugekommene Post-Processing Framework.


(Link)

Glow / Bloom, ebenfalls ein Effekt zum Testen des PP Frameworks.


(Link)

Noch ein Testeffekt: Umkehrung der Farben und tiefenbasierte Kantenfindung.


(Link)

Die Testszene noch ohne Post-Processing, mit dynamischer Beleuchtung durch ein Point- und ein Spotlight.

Die Szene umfasst 2500 mehr oder weniger zufällig platzierte Würfel, das Rendering geschieht momentan noch brute foce, also nicht zu sehr über die Framerate wundern.

Zum Aufbau werde ich in nächster Zeit auf hier und auf meiner Website immer mal wieder etwas schreiben, Fragen, Critics & Comments erwünscht. :-)
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

01.06.2008, 20:04

Kling gut, sieht gut aus. Weiter so! ;)

Besonders gefällt mir deine Design Entscheidungen!

Auch die Seite find ich OK.

Sicaine

unregistriert

3

01.06.2008, 20:09

Mh sieht interessant aus. Wie alt bist du? Was machst du?(Schule/uni/Ausbildung?).

Hast du UML-Digramm zum aktuellen Projekt?

CodingCat

1x Contest-Sieger

  • »CodingCat« ist der Autor dieses Themas

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

4

01.06.2008, 21:14

@Sicaine
Ich bin seit kurzem 18, in der Schule 12. Klasse. Vor mir liegt ein halbes Pfund bekritzeltes Papier auf dem Schreibtisch, in digitaler Form existieren leider momentan keine Diagramme.
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

CodingCat

1x Contest-Sieger

  • »CodingCat« ist der Autor dieses Themas

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

5

08.06.2008, 19:04

Offener Testlauf

Angesichts der Tatsache, dass die Rendering Pipeline inklusive Post-Processing Framework nun prinzipiell funktionieren, würde ich gerne einen kleinen öffentlichen Test durchführen, bevor ich mich an die weitere Ausarbeitung mache bzw. darauf aufbaue: http://www.alphanew.net/extern/breeze%20PP%20Demo.zip

Die Steuerung ist recht gewöhnlich: Klick/Rechtsklick: Maussteuerung an/aus, Mittelgedrückthalten: Kamera geraderichten (rollen), W/A/S/D/Shift/Space, +/- Punktlichtradius, c/r Scheinwerfer mitnehmen/loslassen

Voraussetzung ist eine SM 2.0 Grafikkarte, kompiliert wurde mit DX Nov 2007 SDK (entsprechende Runtime könnte von Nöten sein) und der Treiber sollte einigermaßen aktuell sein (DX 9). Testen auf eigene Gefahr. ;-)

Die Batch-Datei zeigt die FPS in der Titelleiste an - in der *.exe aus, weil dies auf Systemen mit aufwändigeren Themes bereits zu groben Rucklern geführt hat.

Im Data/Shaders/Default/Processing/ Verzeichnis findet ihr weitere Shader, wer möchte, kann diese nacheinander in Bloom.fx umbennen, um den entsprechenden Effekt anzuschauen. Die Effekte sind nur zum Test da, entsprechend ist der Bloom viel zu stark (wie immer in solchen Demos) und auch die übrigen Effekte wurden nur quick'n'easy implementiert.

Das Framework kann schon einiges, was die Verarbeitung von Effect Semantics angeht, das Schreiben neuer Effekte ist äußerst intuitiv - die Implementierung aller Post-Processing Effekte geschieht ausschließlich in den .FX Dateien.

Rückmeldung erwünscht, insbesondere Grafikkarte und Framerate. Bei Fehlermeldungen bitte den entsprechenden Eintrag in der Log-Datei posten. :)
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

Anonymous

unregistriert

6

08.06.2008, 19:23

Läuft einwandfrei. Intel 965GM (X3100) +-10fps xpsp3 dx9

Zitat

*****************************************************
breeze Info Stream v1.2 (c) Tobias Zirr
*****************************************************

beCore : Online
beEntityS~: Online
beScene : Online
beRender : Online

beRender : *****************************************************
beRender : Graphics Device Initialization
beRender : *****************************************************
beRender : Mobile Intel(R) 965 Express Chipset Family (\\.\DISPLAY1)
beRender : Driver: igxprd32.dll p6 v14.10 #4935
beRender : Shader Model 3.0
beRender : Device created:
beRender : Windowed: 1
beRender : Resolution: 1024 x 768
beRender : Hardware Acceleration: 1
beRender : Multi sampling: 0 (0)
beRender : High definition: 0 (0)

beRender : *****************************************************

beRender : Max texture dimensions: 4096x4096(x256)
beRender : Adding texture "SimulationTarget.DepthBuffer"
beRender : Adding texture "SimulationTarget.DepthTexture"
beRender : Adding texture "SimulationTarget.ColorTexture"

beRender : *****************************************************
beRender : FX file compilation
beRender : *****************************************************
beRender : Creating "c:/Download/Data/Shaders/Default/Processing/Bloom.fx"
beRender : Adding as "Bloom.fx"

beRender : *****************************************************


beRender : *****************************************************
beRender : FX file compilation
beRender : *****************************************************
beRender : Creating "c:/Download/Data/Shaders/Default/Clay Light.fx"
beRender : Adding as "Clay Light.fx"

beRender : *****************************************************

beRender : Adding texture "SimulationTarget.PostProcessing.Intermediate"
beRender : Adding texture "SimulationTarget.PostProcessing.Intermediate"
beRender : Adding texture "SimulationTarget.PostProcessing.Intermediate"
beRender : Adding texture "SimulationTarget.PostProcessing.Intermediate"
beRender : Adding texture "SimulationTarget.PostProcessing.Intermediate"
beRender : Offline
beScene : Offline
beEntityS~: Offline
beCore : Offline

Zitat

*****************************************************
breeze Garbage Tracker v1.0 (c) Tobias Zirr
*****************************************************


*****************************************************
Memory Leaks
*****************************************************
None found!

*****************************************************

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

08.06.2008, 19:56

Bei mir läufts auch gut. ~60 FPS (Geforce 6800 Go)

(Die Wellen haben mich ein wenig verwirrt. :lol: )

8

08.06.2008, 20:23

Jou, bei mir auch alles bestens. -> Vista, GeForce 8500GT, ~70 FPS

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

9

08.06.2008, 20:32

lauft bestens ruckelstark:

pentium 4 1,6hgz
1024 mb ram
geforce fx 5700

7 frames im aritmetischem mittel^^

10

08.06.2008, 20:45

Task Manager aufruf => Absturz ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige