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

21

09.08.2007, 14:34

Und damit käme man wieder zum Treiber-Konzept zurück ... und SDL kann auch mit Direct3D kombiniert werden, falls nötig ...
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

22

09.08.2007, 14:44

DirectX

Zitat von »"Firefly"«

...wäre ja auch ne directx version unter windows möglich


DIrectX unterscheidet sich doch sehr von OpenGL, sowohl Schnittstellen-mäßig als auch vom gesamten Aufbau her. OpenGL ist auf allen G3 verfügbar, DirectX nur auf Windows. Die gesamte Anwendung soll ja auf allen G3 mit den identen Quelltexten übersetzbar sein, nur ein ganz kleiner Teil (ein OpenGL-fähiges Fenster öffnen) wir für jedes Betriebsystem extra entwickelt.

Es gibt einen Bericht, der für alle OpenGL-Entwickler einen kleiner Schock ist: http://gameservercheck.de/news,232,Micro…dows_Vista.html

Freundlichen Gruß!

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

23

09.08.2007, 15:43

das is doch n alter hut, mittlerweile wurde opengl unterstützung intergiert nach protesten...

24

09.08.2007, 15:52

Alter Hut

Zitat von »"Firefly"«

das is doch n alter hut, mittlerweile wurde opengl unterstützung intergiert nach protesten...


Ah, ok! Entschuldigt, dass ich euch da eine längst überholte Info präsentiert habe. Hast vielleicht einen Verweis zum Bericht?

Freundlichen Gruß!

25

10.08.2007, 18:54

Internes Objektformat

Hallo Leute,

anbei eine kurze Vorstellung des internen Objektformates mit der Bitte um Kommentare/Kritik. In den Beispielen sind nur die Eckpunkte berücksichtigt (vertex data), in der "richtigen" Version kommen dann noch Normalenvektoren, Texturkoordinaten, usw. unter Verwendung der gleichen Technik dazu! Außerdem werden 3D-Objekte priorisierbar sein, hohe Prioritäten kommen zuerst in den Speicher der Grafikkarte (buffer objects), niedrige Prioritäten erst später oder gar nicht (je nach Größe des Grafikspeichers). So optimiert man (hoffentlich) die Performance ein wenig!

Anteilige Eckpunkte (vertex sharing) für Projekt XY (Name noch nicht festgelegt, Ideen sehr willkommen)

Die Darstellung von Eckpunkten in der Open Graphics Library (hier kurz OGL) und in Grafikkarten-Shadern erfolgt durch float (IEEE 754) mit 32 Bit/4 Byte pro Koordinate, im 3D-Raum werden für einen Eckpunkt (vertex) somit 12 Bytes benötigt. Für ein Dreieck (einziges verwendetes OGL-Primitiv im Projekt) werden 3 Eckpunkte benötigt, das sind nach Adam Riese 36 Bytes.

Beispiel 1 (Eckpunkte sind durch o dargestellt):

o-o
\ /
o

3 x 12 Bytes = 36 Bytes

3D-Objekte bestehen üblicherweise aus zahlreichen Dreiecken, die (fast) IMMER viele Eckpunkte teilen. Sammelt man die Eckpunkte in einer schnellen Liste (std::list), so braucht man für ein Dreieck "nur" 3 Indizes speichern, das sind 3 x 4 = 12 Bytes. Im schlechtesten Fall (worst case, 1 einzelnes Dreieck) braucht man diese 12 Bytes ZUSÄTZLICH zu den 36 Bytes, das sind also 48 Bytes (+33%).

Beispiel 2 (GL_TRIANGLE_STRIP):

o--o--o--o
| / | / | / |
o--o--o--o

Normales Dreieck-Objekt: 6 Dreiecke zu 36 Bytes ergeben 216 Bytes
Mit anteiligen Eckpunkten: 8 Punkte zu 12 Bytes ergeben 96 Bytes plus 6 Dreiecke zu 12 Bytes (je 3 Indizes) ergeben 72 Bytes, gesamt 168 Bytes (-22%)

Das ist noch nicht wirklich viel.

Beispiel 3 (Ikosaeder, 20 Dreiecke/12 Eckpunkte):

Normales Dreieck-Objekt: 20 Dreiecke zu 36 Bytes ergeben 720 Bytes
Mit anteiligen Eckpunkten: 12 Punkte zu 12 Bytes ergeben 144 Bytes plus 20 Dreiecke zu 12 Bytes ergeben 240 Bytes, gesamt 384 Bytes (-46%)

Ikosaeder dienen oft als Ausgangs-Körper für Kugeln/kugelförmige Körper (vgl. subdivision). Deshalb das Beispiel, das immerhin eine Ersparnis von 46% ermöglicht. Ich schätze, dass professionelle Programme mit noch besseren Speicherspar-Techniken arbeiten. Viel Verlust an Performance ist nicht zu erwarten (werden wir noch prüfen) da der Indexzugriff bei einer Liste schnell ist (sein sollte). Vielleicht hat jemand auch noch eine bessere Idee!

Übrigens wir suchen noch Leute, die Lust und Laune haben, bei einem kleinen/feinen Projekt mitzumischen!

Freundlichen Gruß an alle Leser!

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

26

11.08.2007, 15:37

die "anteiligen eckpunkte" sind keine neuerfindung in der welt der 3d-grafik sondern längst bekannt. indieces zum rendern der dreiecke zu verwenden ist relativ geläufig ^^

Zitat von »"Chris"«


Ich schätze, dass professionelle Programme mit noch besseren Speicherspar-Techniken arbeiten.


ich denke nicht. viel eher versuchen sie die dreiecke gar nicht erst zu rendern :)
"Don't trust your eyes: They are a hell of a lot smarter than you are"

27

11.08.2007, 18:36

Zwischenstand

Zitat von »"ChrisJ"«

die "anteiligen eckpunkte" sind keine neuerfindung/viel eher versuchen sie die dreiecke gar nicht erst zu rendern :)


Hallo ChrisJ,

die Vorstellung des Objektformates war nicht als neue Technologie gedacht. :D Ideen, von denen ich glaube dass sie möglicherweise neu sein könnten, poste ich erstmal nicht in einem Forum. Mit dem hidden-surface-removal hab ich mich übrigens ansatzweise auch schon beschäftigt! Übrigens, was machst du so? :roll: Dein Arbeitsplatz (sofern er es ist), sieht nämlich ähnlich aus wie meiner... Hast nicht Bock, nebenbei mit uns zusammen was zu machen (proggen, designen, brainstormen)?

Freundlichen Gruß an alle Leser!

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

28

11.08.2007, 19:13

Re: Zwischenstand

Zitat von »"Chris Forone"«

Dein Arbeitsplatz (sofern er es ist), sieht nämlich ähnlich aus wie meiner...


also noch einer, der viel wert auf ordnung legt xD

Zitat von »"Chris Forone"«

Hast nicht Bock, nebenbei mit uns zusammen was zu machen (proggen, designen, brainstormen)?


ROFL :) mann, ich habe seit ein paar tagen mit dir email kontakt und rede mit dir über das projekt, und dann sowas :D :D :D
"Don't trust your eyes: They are a hell of a lot smarter than you are"

29

11.08.2007, 19:21

Fettnäpfchenalarm

Zitat von »"ChrisJ"«

ROFL :) mann, ich habe seit ein paar tagen mit dir email kontakt und rede mit dir über das projekt, und dann sowas :D :D :D


:D :D :D Ups, jetzt check ichs, du bist ja du :D :D :D Alles klar! :idea:

Übrigens, hab heut eine kleine Klasse zum Laden von .tga Dateien für Texturen geschrieben. Damit können wir eigentlich mit dem Objektformat die ersten Tests starten (Handhabung, Performance, Erweiterbarkeit).

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

30

11.08.2007, 19:26

nochmal zum thema:
hidden-surface-removal != scenemanagement
"Don't trust your eyes: They are a hell of a lot smarter than you are"

Werbeanzeige