Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Apr 19, 2024 11:57

Foren-Übersicht » Sonstiges » Community-Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 50 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 18, 2005 01:57 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Stimmt schon (das hab ich im Technikpfad auch andeuten wollen) aber woher genug verschiedene Artikel nehmen, um einen Shaderpfad zu rechtfertigen. Ich hätte die Shader gerne im Beleuchtungspfad ausführlich durchgesprochen (denn dort könnte man neben Beleuchtung und Shadern auch noch Materialien mit einbauen). Das wäre dann bestimmt genug Material.

Das Grundproblem bei den Shadern ist im Moment der mangel an Artikeln zum Thema. Wir haben einen großen von Sascha und das wars glaub ich. Wenn wir mehr hätten dann könnte man nochmal drüber nachdenken ;) .

Überhaupt: Beleuchtungspfad is nur ein Name. Der hätte auch anders heißen können. Nur den Inhalt wollte ich halt so gruppieren, dass Shader und Beleuchtung zusammenkommen.

Aber ich bin da durchaus offen für Meinungen und Ideen. (Is ja net mein Wiki 8) )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 18, 2005 13:39 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Wenn der Beleuchtungspfad noch als Untertitel "Materialeigenschaften" oder sowas erhält (oder auch nur für sowas gedacht ist) dann kann ich mich damit natürlich auch anfreunden. Wobei man hier eine Diskussion anzetteln könnte vonwegen: ist ein Vertexprogramm wirklich eine Materialeigenschaft? Aber ich denk das passt schon so :-).

Ach ja ... ich besitze derzeit übrigens selbst noch keine Shaderfähige Grafikkarte, demnach kann ich da auch eher wenig darüber schreiben, denn praktische Erfahrung dürfte doch etwas mehr bringen als ein paar Papers darüber.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 18, 2005 18:02 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nun deine Artikel im Wiki waren bisher alle sehr gut, ich kann daher nur hoffen, dass du trotzdem weitere Artikel Nachschiebst.

Unser Shaderforum is ja auch noch relativ wenig frequentiert. Man kann nur hoffen, dass die mit Shadererfahrung das auch im Wiki bisl breittragen. (*VorsichtZaunpfahl* ;) ) Muss ja nicht immer Sascha sein. (kann aber trozdem :twisted: )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 18, 2005 21:38 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Bei den Shadern könnte man ja eine Sammlung von verschiedensten Shadern im Wiki einrichten. So eine Art Code-Library für Shader.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 19, 2005 00:07 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich hatte mal ne Idee im Wiki eine Bibiothek mit Materialspezifikationen einzurichten. ALso z.B. Wenn du Fließen willst nutze die Reflektionswerte, Gummi hat diese, Teppich jede etc.

Da würde ein Shaderbibiothek sicherlich gut mit ran passen.

Man könnte der obigen Bibiothek auch noch reibungskoeffizienten etc. mitgeben, sollte jemand mit Newton arbeiten wollen. Dann würde unser Wiki ne anlaufstelle für Grafik und Spielecoder aus allen möglichen bereichen werden. 8)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 19, 2005 17:02 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
nein fließen will ich nicht, aber n fliesenboden wäre schon schön.... *duden wirft*

sry, aber in dem fall is es schon missverständlich. :wink:

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 06, 2006 10:57 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
So...hab gerade nochmal den aktuellen Stand des Wikis versucht in die DGL_Wiki_Phasen einzuordnen. Und siehe da, wir sind schon richtig gut vorangekommen.

Was noch fehlt sind die Trampelpfade. Da hat sich schon laaaange nix mehr getan.

Wenn die fertig wären, fehlen nur noch 2(!) Artikel um auch noch die Phase VI abzuschließen. Und damit könnten wir dann wohl entgültig sagen: "Wer was über OpenGL wissen will, sollte zuerst mal ins DGL-Wiki gucken." 8)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 25, 2006 14:54 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Ich schlage mal einen Next Generation Pfad vor. Es sollte folgendes umfassen:

VBOs (Ohne gehen neu Technicken nicht)
FBOs (Ohne Keine Reflektionen und Schatten)
PBOs (Man kommt auch recht gut ohne aus. DIe brauch man erst sehr spät)
GLSL (Die sind wohl der Haupteil)

Die dazu gehöhrigen Techniken sind:
Shaderoptimierung
Schatten
Reflektionen
GPUbasierende Pseudopartikelsysteme (Partikel wird über eine feste Funktion gesteuert, die nur abhängig von der Zeit ist)
GPU basierende Partikelsysteme (Jedes Partikel wird durch ein Framgmentprogramm gesteurt
Instancing (Ist dringenst nötig und wird in den 9xxx treibern von Nvidia implementiert. Bei ATI keine Ahnung)


Passend Dazu könnte man auch einen Lastgenerationpfad aufbauen:
Multitexturing
Registercombiniers
gluquadrics
usw


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 26, 2006 08:08 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Trampelpfade sollen einen Vorschlag machen, welche Artikel (die es bereits im Wiki gibt!) der User lesen soll. D.h. es sollte nach möglichkeit eine "Geschichte"(kein Märchen, einfach ein Text zum Thema) gesponnen werden, welche dem User Links auf interessante Artikel bietet.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 26, 2006 12:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
@Oc2k1
ATI unterstützt eine Form Instancing schon mit der R200 Reihe.
TrueForm heisst es und es wertet Flächen mit unterteilung in mehere Polygone und neupositionierung auf.
http://www.3dconcept.ch/artikel/npatches/2.htm

@Trampelpfad
Ich hab ja vor sehr langer Zeit den Engine Trampelpfad gemacht und bis auf einer rechtschreib Korrektur ist da auch nichts weiter passiert.
Das würde einem Next Generation Pfad genau so ergehen.[/url]

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 26, 2006 14:20 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
TAK2004 hat geschrieben:
@Oc2k1
ATI unterstützt eine Form Instancing schon mit der R200 Reihe.
TrueForm heisst es und es wertet Flächen mit unterteilung in mehere Polygone und neupositionierung auf.
http://www.3dconcept.ch/artikel/npatches/2.htm

TruForm wurde wieder deaktiviert.
Mit der X-Reihe oder sogar mit der 9er Reihe hat die Hardwareunterstützung gefehlt oder so ähnlich. Jedenfalls wurde es wieder entfernt.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 26, 2006 15:32 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich bin vom Engine Trampelpfad auch noch nicht so wirklich überzeugt. Er ist, sag ich jetzt einfach mal, zu oberflächlich um interessant zu sein. Das selbe problem sehe ich beim "Verwendungspfad" und beim "Einsteigerpfad". Im Grunde genommen ist nur der Technikpfad gelungen.

Wieso? Ich beschreib mal den Sinn der Trampelpfade so: Der User kommt ins Wiki und interessiert sich für Infos zu einem Bereich. Der Trampelpfad bietet ihm dann einen Überblick über den Bereich und verlinkt auf Artikel welche er interessant finden könnte.

Das Problem beim z.B. Enginepfad ist, dass er mir persönlich nicht fundiert genug ist. Auch die Artikel die der Pfad verlinkt sind etwas "oberflächlich" ("ausm Bauch raus" vs. "fachlich fundiert"). Das mag auch damit zusammenhängen, dass die Artikel extra für den Pfad geschrieben wurden. Das ist meiner Meinung nach aber die falsche Herangehensweise.
Zuerst sollen Artikel entstehen, und dann werden diese quasi in einem Trampelpfad gebündelt.

Für mich ist also ein Trampelpfad ein Prosa-Textbasiertes Linkverzeichnis wobei die Links zu 90% Wikiintern sind.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 27, 2006 00:18 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
Bzgl. Enginepfad ... hier hast du 2 etwas größere Probleme:

1. Bei einer Engine handelt es sich nicht selten um Projekte die größer sind als sagen wir mal 100.000 Zeilen Quellcode, wodurch alles was man so über die Entwicklung von größerer Software wissen sollte auch hier relevant wird.

2. Wenn du eine Engine entwickeln willst, dann wird > 90% der Artikel im Wiki für dich interessant sein. OGL-Funktionen sind mal Grundlage, Hintergrundwissen wäre auch nicht schlecht und ohne Techniken und Algorithmen wird man nichts ordentliches zusammen bekommen.

Aber hier mal ein Vorschlag wie ich den Pfad ungefähr schreiben würde. Aber bevor ich jetzt den bestehenden überschreibe würde ich doch gerne wissen ob du dir das auch ungefähr so vorstellst oder nicht:

Zitat:
Was soll hier nicht behandelt werden:
Grundlagen zur Programmierung, auch Design Patterns fallen hierbei unter die Grundlagen die man beherschen sollte.
OpenGL Funktionalität, hierfür gibt es den Einsteigerpfad oder auch den Bereich Hintergrundwissen.
Allgemeine Probleme der Entwicklung von größeren Projekten, hierfür raten wir zum Kauf eines entsprechenden Buches oder einer intensiveren Recherche im Internet.

=Das Ziel definieren=
Wenn ihr eine [[Engine]] entwickeln möchtet, so solltet ihr euch zuerst darüber klar werden was ihr mit dieser [[Engine]] erreichen möchtet. Häufig steht hier der Wunsch es einfach einmal von Grund auf selbst gemacht zu haben. Nicht selten möchte man nun mit der eigenen Engine auch noch ein Spiel entwickeln, damit die Engine nicht ausschließlich zur eigenen Weiterbildung geschrieben wird. Hier also zwei Hinweise welche mehr mit Softwareentwicklung denn mit OpenGL zu tun haben:
# Verwendet bestehende Software, ihr solltet nicht alles selbst machen. Beispielsweise eine bestehende Physik-Engine wie Newton oder Sound-Bibliotheken wie fmod werden (wenn es dem Programmierer primär um die Grafikprogrammierung geht) gerne verwendet. Auch Objekt- oder Leveleditoren sollte man sich natürlich nur selbst schreiben wenn man gute Gründe dafür hat, ansonnsten sollte man bestehende verwenden und ggf. (zwecks mehr Komfort) einen Exporter dafür schreiben. Bei den [[Link]]s findet ihr sicherlich einige Ressourcen die euch bei eurem Projekt unterstützen werden.
# Überlegt euch vor eurem wirklichen Start was ihr alles benötigt. Grundlegende Dinge kann man natürlich vorher bewältigen, also beispielsweise ein Virtual File System, spezielle Kontainer-Klassen, OGL- und Fensterklassen, Routinen für mathematische (und bei Bedarf auch physikalische) Berechnungen, ... . Aber bevor ihr das klassische "3D-/2D-Objekt" erstellt solltet ihr schon ziemlich genau wissen was ihr später alles damit machen möchtet. Hierfür hilft beispielsweise eine Liste von Use-Cases sowie ggf. eine Liste der Objekte die ihr in eurem späteren Spiel haben möchtet. Hier solltet ihr auch bereits eine gute Vorstellung der verwendeten Tools besitzen und wenn ihr auf etwas stoßt was von einem Tool kaum oder gar nicht unterstützt wird (beispielsweise Bone-Animationen, ...) so solltet ihr hier die verwendeten Tools überdenken oder eine Lösung für das Problem finden.

Und beim Ziel sei auch noch angemerkt dass die Performance ebenfalls ein Teil des festgelegten Zieles sein sollte. Es ist einfach eine Engine zu erstellen welche alle geometrie-Daten darstellen kann (lassen wir hier erstmal die grafischen Effekte raus). Es ist dafür umso schwerer eine Engine zu machen welche die benötigte Geometrie auch effizient darstellt.

=Objekte in der Welt=
Wie Objekte in die Welt eingefügt werden ist ein weiterer wichtiger Aspekt einer Engine. Obwohl die Frage nach den Attributen eines allgemeinen 3D- oder 2D- Objektes ebenfalls sehr viel mit Softwareentwicklung allgemein zu tun haben, ist diese Frage dennoch verhältnismäßig spezifisch für Engines zu beantworten. Grundlegend können wir sagen, dass ein Objekt folgende Arten von Daten benötigen wird:
* Position
* Aussehen
* Physikalische Eigenschaften
* Sound
* Engine spezifische Daten
Und in der Zukunft vielleicht sogar Daten über Geruch oder Geschmack.

==Position==
Die Position ist meistens ein essenzieller Bestandteil der Objektverwaltung. Die Position muss hierbei nicht nur eine 3D Koordinate sein sondern kann ggf. auch Aufschluss darüber geben ob sich dieses Objekt in oder an einem anderen Objekt befindet. Die Position eines Objektes wird häufig als Matrix (oder auch als [[Quaternion]] in Verbindung mit einer [[Translation]]) zum hierachisch übergeordneten Objekt angegeben, wodurch beispielsweise die 4 Reifen eines Autos 4 Objekte mit der selben Geometrie und einer fixen Translation, jedoch einer variablen Rotation angegeben werden könnten. Da sich üblicherweise in einer Welt verhältnismäßig wenig Objekte bewegen, könnte man zusätzlich zur Transformation bzgl. des übergeordneten Knoten auch noch bei jeder Bewegung eines übergeordneten Knoten oder dieses Knotens eine neue absolute Transformation berechnen.

Zusäztlich zur Position kann (oder sollte) auch noch eine Geschwindigkeit und ggf. sogar ein Beschleunigungs-Vektor für ein Objekt vorhanden sein. Im Endeffekt könnte es aus der Sicht eines Softwareentwicklers wünschenswert sein, dass alle Attribute der Position zusammen mit den Physik-Attributen alle relevanten Informationen für physikalische Berechnungen liefern und alle Attribute für Aussehen zusammen mit der Position alle relevanten Informationen zur Darstellung liefern. Somit wären physikalische Attribute und Aussehen voneinander komplett unabhängig.

==Aussehen==
Die Attribute welche mit dem Aussehen eines Objektes zusammenhängen sind in Bezug auf das Thema dieses Wikis wohl besonders interessant. Hier können wir die typischen Eigenschaften auch weiter unterteilen:
* Geometrie: Wenn wir hier wiederum das Auto mit seinen 4 Reifen her nehmen, so können wir für die Geometrie ggf. [[Display Liste]]n verwenden. Die Geometrie kann bei animierten Objekten auch abhängig von den Animationsdaten sein. Zusätzlich kann man hier noch [[LOD]] Algorithmen verwenden um die Performance zu steigern sofern die Anwendung [[Vertexlimitiert]] oder ggf. auch [[Bandbreitenlimitiert]] ist. Im Falle von prozedualen Grafiken wie beispielsweise [[Partikelsysteme]] kann die Geometrie auch erst während der Laufzeit für jedes Frame neu berechnet werden.
* Animationen: Die häufigsten Animationsarten sind [[Bone-Animation]]en und [[Keyframe-Animation]]. Diese können ggf. die darzustellende Geometrie ändern.
* Verwendete Texturen: Wenn die Anwendung [[Bandbreitenlimitierung|Bandbreitenlimitiert]] ist und mehr Texturen verwendet werden als in den Grafikkartenspeicher Platz finden, so kann eine Sortierung nach den Texturen wichtig sein.
* ggf. relevante Lichter (wobei diese eher zu den Engine spezifischen Daten zu zählen sind)
* Sonnstige Materialeigenschaften und/oder Shader

==Physikalische Eigenschaften==
Verwendet man eine bestehende Physik Engine, so hat man meistens bereits einen recht guten Einblick welche Daten hier benötigt werden. Die Eigenschaften können hier anfangen bei Kollisionsvolumen und hin gehen zu Gewicht und Reibung. Wenn man eine Welt besitzt welche über das terrestrische hinaus geht, so kann beispielsweise auch noch Gravitation eine Rolle spielen. Die ungewöhnlicheren physikalischen Eigenschaften die ein Objekt besitzen muss werden meistens bereits bei der Spielidee klar und sind nicht selten auch ein wichtiger Bestandteil davon. Häufig begnügt man sich jedoch auch ausschließlich mit Kollisionsinformationen, welche ebenfalls einen Level of Detail besitzen können.

==Sound==
Ein Objekt kann ggf. eine Soundquelle sein und vor allem wenn man 3D Sound haben möchte, so spielt vor allem die Position und Geschwindigkeit des Objektes auch hier eine wichtige Rolle. Komplexere Objekte (Häuser oder allgemein Levels) könnten ggf. auch Daten über Echowirkung oder ähnliches besitzen, meist wird man derartige Daten natürlich zumindest für jeden Raum eines komplexeren Objektes angeben.

==Engine spezifische Daten==
Hier findet das wahre Leben der Engine statt. Angefangen von Daten welche für die [[Raumunterteilung]] nötig sind, bis hin zu Daten welche für die künstliche Intelligenz benötigt werden. Häufige andere Arten von Daten sind:
* [[Bounding Volumen]], also beispielsweise eine [[Bounding Sphere]] welche sowohl für physikalische Berechnungen, als auch für die Sichtbarkeitsberechnungen von Objekten verwendet werden kann.
* Ereignisse, welche von Animationen, Geräuschen und dem verschwinden eines Objektes oder dem erstellen eines neuen Objektes bis hin zu komplexeren Vorgängen wie es ein Lift oder Teleporter bietet alles auslösen können. Die Eigenschaften können durch die Verwendung von Scripten sehr flexibel gestaltet werden ohne etwas am Hardcode ändern zu müssen.
* Spezielle Daten für spezielle Objekte, beispielsweise durchscheinende Objekte können nach ihrer Tiefe sortiert werden, Lichter können ihren Einflussbereich bekannt geben, Portale ihre Zielkoordinaten und natürlich können auch Listen von Objekten erstellt werden welche in jedem Frame animiert oder transformiert werden.

=Verwaltung der Objekte=
Nehmen wir einmal an wir besitzen ein allgemeines 3D- (bzw. 2D-) Objekt und wir möchte viele dieser Objekte in unserer Engine verwalten. Die einfachste Variante ist natürlich, dass wir eine Liste besitzen in welche alle zu verwaltenden Objekte aufgenommen werden und diese können wir natürlich sehr einfach zeichnen und wir können auch Kollisionsabfragen durchführen. Wenn wir jedoch keine weiteren Informationen über diese Objekte besitzen, so müssen wir jedes Objekt mit jedem anderen Objekt auf eine Kollision prüfen, wir müssen jedes Objekt auf seine Sichtbarkeit prüfen (um zumindest etwas effizienter zu rendern), wir müssen für jedes Objekt alle Lichter berechnen usw. Hier können Raumunterteilungstechniken Abhilfe schaffen. Anzumerken sei noch, dass wir zum einen mehrere Raumunterteilungstechniken kombinieren können (so können wir beispielsweise komplexere Objekte wie Häuser auf einer Landschaft in einen Octree verwalten und jedes dieser komplexeren Objekte besitzt auch noch Portale um auch die Innenräume der Häuser effizient aus dem Zeichenvorgang auszuschließen). Wir können auch für unterschiedliche Verwendungszwecke unterschiedliche Algorithmen verwenden. Ein (etwas extremeres) Beispiel für unterschiedliche Algorithmen wäre:
* [[PVS]] und/oder [[Portale]] sowie ggf. zusätzlich noch einen [[Octree]] für Sichtbarkeitsabfragen
* Einen [[BSP-Baum]] für Kollisionsabfragen, ggf. auch hier zusätzlich noch ein [[Octree]]
* Ein Octree für das herausfinden von Objekten welche durch ein Licht beleuchtet werden können (wenn keine Hindernisse im Weg stehen).
Man könnte auch für Aussenlandschaften und Indoor unterschiedliche Algorithmen zur Verwaltung der Objekte verwenden. Die Verwaltung der Objekte ist einer der ausschlaggebenden Faktoren dafür, wofür die Engine geeignet ist und wofür sie weniger geeignet ist.

Des weiteren stellt sich natürlich die Frage ob spezielle Objekte wie Lichter, (teilweise) transparente oder durchscheinende Objekte, ggf. Portale, ggf. Octree-Knoten, ... im selben Kontainer landen sollten wie geometrische Objekte oder nicht. Dies ist jedoch wiederum eine Frage welche eher im Bereich der allgemeinen Softwareentwicklung von größeren Projekten angesiedelt ist.


Ist jetzt noch nicht fertig und nur mal so auf die schnelle geschrieben, aber mal ein Anfang. Wie du siehst sind auch verhältnismäßig wenig Links drinnen aber wie gesagt ist nicht so einfach. Aber bevor ich da jetzt weiter schreibe würde ich wie gesagt gerne wissen ob ihr das überhaupt gut heissen würdet den Trampelpfad in dieser Art aufzubauen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 27, 2006 08:46 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich finde das geht in die Richtige Richtung. Ein Punkt der im bisherigen Pfad gut gemacht war, ist das Vorstellen von Entwicklungsschritten die bei jeder Engine von Zentraler bedeutung sind. z.B. das GUI-Libs und Editor, Map-Editor, Einheiten-Editor etc. keine Zusatztools sind, sondern Zentrale Punkte die schon früh in der Entwicklung entstehen und damit die Entwicklung selbst erleichtern und die Datenmodelle konkretisieren.
Ein Verweis auf die Softwareentwicklungstutorials wäre vielleicht auch noch angebrahct, damit man einen formalen Entwurfsprozess, zumindest mal gesehen hat.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 27, 2006 11:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Heute würde ich auch einiges anders schreiben aber ich bin mehr damit beschäftigt meine Engine zu schreiben als über die Engine Entwicklung zu schreiben. Ich hab schon angefangen wichtige Themen für Engines in meinem Wiki zu dokumentieren.
Das Problem ist das ist in der Regel nicht Allgemein sind. 2 Themen werden aber nach fertigstellung, lohnenswert zu linken.
Es ist einmal RTTI, dann RTTI und LUA und dann Lua selber. Wenn man das Wissen von diesen beiden Artikeln hat, dann kann man ohne Probleme folgende dinge realisieren.
-Materials(Lua Script mit GLSL anbindung und einigen mehr)
-KI(Lua based Statemachine)
-Game Scripts(Türen, Partikel, Abläufe, Türschlüssel,...)
-GUI(XML und Lua kann man die Komplette GUI der Demo outsourcen und dann z.B. einem Grafiker geben der keine Programmierkentnisse braucht)
-Editoren für GameStuff(durch RTTI wird sehr viel Code gespart und ist wesentlich flexibeler)
und noch dinge die mir selbst noch nicht eingefallen sind.

Mein VFS ist auch fast fertig und das Modelformat geht auch auf die Zielgerade ein.
VFS ist ja eher was für Projekte mit vielen Datein und Sicherheit vor veränderungen.
Da zugriffe auf viele Datein recht langsam ist, kann man alle datein zu einer zusammenfassen und aus dieser lesen.
Das erhöht den Lesedurchsatz erheblich. Mein VFS ermöglicht noch wesentlich mehr aber das sind eher features.
Das Modelformat nutzt XD_Data aka DGL Meshformat aka GL_Data und ermöglicht Materials, Bones und in Kürze auch Animationen über Vertex Shader(es gibt Probleme mit dem Blender Exporter).

Das wichtiges Thema für den Engine Pfad wäre auf jedenfall der SceneGraph, das Herz jeder guten Engine.
Mein erster versuch mit einem SceneGraph war schon sehr erfolgreich und ich will mit dem 2. Versuch ein wirklich gut nutzbaren SG realisieren. Die Doku dazu wäre ein muss.

Nachher kommen noch ein paar Punkte.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 50 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Foren-Übersicht » Sonstiges » Community-Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 38 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.299s | 17 Queries | GZIP : On ]